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 0x0000000801567d8c in free () from /lib/libc.so.7 > [New Thread 801c07400 (LWP 205381/haproxy)] > (gdb) bt > #0 0x0000000801567d8c in free () from /lib/libc.so.7 > #1 0x0000000000406f64 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 0x00000000004078c7 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

