Le 31/03/2021 à 13:28, Maciej Zdeb a écrit :
Hi,
Well it's a bit better situation than earlier because only one thread is looping
forever and the rest is working properly. I've tried to verify where exactly the
thread looped but doing "n" in gdb fixed the problem :( After quitting gdb
session all threads were idle. Before I started gdb it looped about 3h not
serving any traffic, because I've put it into maintenance as soon as I observed
abnormal cpu usage.
Hi Maciej,
I'm puzzled. It seems to be a different issue than the first one. You reported
an issue during reloads, on the old processes. There was a loop because of a
deadlock, but the traces showed the watchdog was fired, probably because of the
lua (this must be confirm though).
Here, it is a loop on a living process, right ? Reading the trace, it is for now
a bit hard to figure out what happens. If it is reproducible, you may try to use
"perf top" command, selecting the right thread ID with "-t" argument.
In addition, if the loop always falls in the H2 multiplexer, it could be good to
print the h2C structure to have more info on its internal state.
And to be complete, the output of "show activity", "show fd" and "show sess all"
may help. Because it still loops with no traffic, it should be small. "show
threads" may be good, but HAProxy should be compiled with USE_THREAD_DUMP=1 to
have an advanced dump.
Sorry to ask you so much work, it is pretty hard to track this kind of bug.
Thanks !
--
Christopher Faulet