Hi Chris, On Fri, Feb 13, 2015 at 01:02:22AM +0100, Lukas Tribus wrote: > > "service haproxy status" returns: > > haproxy dead but pid file exists > > > > and /var/log/messages shows: > > Feb 12 22:46:20 ip-10-72-128-136 kernel: [100695.296333] haproxy[32373]: > > segfault at 8 ip 000000000046b030 sp 00007fff2372f4c0 error 6 in > > haproxy[400000+b5000] > > Can you provide the output of "haproxy -vv", coredump or backtraces > (see http://permalink.gmane.org/gmane.comp.web.haproxy/7992)?
Thanks for the backtraces that you passed to Lukas, they were very helpful. The bug is stupid and is the result of an incomplete change introduced in 1.6. I've fixed it and pushed the fix upstream. Here comes the patch attached if you're interested. Best regards, Willy
>From 2d7ec46b046c3615b2ed3dbf2384dccff9bc342c Mon Sep 17 00:00:00 2001 From: Willy Tarreau <[email protected]> Date: Sat, 14 Feb 2015 14:14:57 +0100 Subject: BUG/MAJOR: peers: initialize s->buffer_wait when creating the session Commit bf883e0 ("MAJOR: session: implement a wait-queue for sessions who need a buffer") introduced in 1.6 forgot to initialize the buffer_wait list when the session is initiated by an applet for a peer, resulting in a crash. Thanks to Chris Kopp for reporting the issue. --- src/peers.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/peers.c b/src/peers.c index 23c4ea3..2357c0c 100644 --- a/src/peers.c +++ b/src/peers.c @@ -1134,6 +1134,7 @@ static struct session *peer_session_create(struct peer *peer, struct peer_sessio LIST_ADDQ(&sessions, &s->list); LIST_INIT(&s->back_refs); + LIST_INIT(&s->buffer_wait); s->flags = SN_ASSIGNED|SN_ADDR_SET; -- 1.7.12.2.21.g234cd45.dirty

