Hello Dmitry,
On Fri, Nov 23, 2012 at 10:01:46AM +0400, Dmitry Sivachenko wrote:
Hello!
Every time I do graceful restart (haproxy -sf oldpid) for -dev13
old process dumps core:
Very interesting. I have only observed a 100% CPU loop for a few seconds
but not the core.
Core was generated by `haproxy'.
Program terminated with signal 11, Segmentation fault.
#0 0x000801567d8c in free () from /lib/libc.so.7
[New Thread 801c07400 (LWP 205381/haproxy)]
(gdb) bt
#0 0x000801567d8c in free () from /lib/libc.so.7
#1 0x00406f64 in deinit () at src/haproxy.c:1108
OK, looks like a double free during deinit. Quite frankly I'm really
bored by this deinit thing. We did this to please valgrind users who
complained that valgrind estimated there were memory leaks, and since
the day we introduced this thing, things got worse and we even caused
segfaults at runtime due to the way we have to manage incomplete structs
upon config errors. I'd really be tempted to definitely remove this
crap and ignore valgrind complaints. It's really a sham when using such
a tool induces bugs in the code as side effects :-(
#2 0x004078c7 in main (argc=Variable argc is not available.
) at src/haproxy.c:1519
(gdb)
I observe this with several different configs so i think it should be easy to
reproduce. I can send coredump+config if necessary.
I'd be interested in knowing if your config enables compression, because
that's an area where we very recently introduced new pools, so there could
be a relation.
Thanks!
Willy