> De: "Cyril Bonté" <cyril.bo...@free.fr> > À: "Willy Tarreau" <w...@1wt.eu> > Cc: "HAProxy" <haproxy@formilux.org> > Envoyé: Mardi 21 Août 2018 16:09:55 > Objet: haproxy-1.9-dev [0c026f49e]: 100% CPU when a server goes DOWN with > option redispatch > > Hi Willy, > Here is another issue seen today with the current dev branch [tests > were also made after pulling recent commit 3bcc2699b]. > > Since 0c026f49e, when a server status is set to DOWN and option > redispatch is enabled, the haproxy process hits 100% CPU. > Even more, with the latest commits, if haproxy is compiled with > DEBUG_FULL, it will simply segfault.
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 #1 0x00007ffff703f2f1 in __GI_abort () at abort.c:79 #2 0x000055555558040f in __spin_lock (line=<optimized out>, file=<optimized out>, func=<optimized out>, l=<optimized out>, lbl=<optimized out>) at include/common/hathreads.h:725 #3 pendconn_redistribute (s=0x555555786d80) at src/queue.c:411 #4 0x00005555555e7842 in srv_update_status () at src/server.c:4680 #5 0x00005555555e89a1 in srv_set_stopped.part () at src/server.c:966 #6 0x00005555555e8bd1 in srv_set_stopped (s=<optimized out>, reason=<optimized out>, check=<optimized out>) at src/server.c:948 #7 0x0000555555639358 in process_chk_conn (state=<optimized out>, context=0x5555557871d0, t=0x555555783290) at src/checks.c:2265 #8 process_chk () at src/checks.c:2304 #9 0x00005555556a2293 in process_runnable_tasks () at src/task.c:384 #10 0x00005555556408b9 in run_poll_loop () at src/haproxy.c:2386 #11 run_thread_poll_loop () at src/haproxy.c:2451 #12 0x0000555555581e4b in main () at src/haproxy.c:3053 #13 0x00007ffff702ab17 in __libc_start_main (main=0x555555580e50 <main>, argc=3, argv=0x7fffffffdfa8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdf98) at ../csu/libc-start.c:310 #14 0x0000555555583d0a in _start () > Here is the minimal configuration for the test: > listen crash > bind :9000 > option redispatch > server non-existent 127.0.0.1:9999 check > > I'll look at it later if nobody has fixed it in the mean time ;) > Cyril > >