Hi, On Wed, May 08, 2019 at 07:11:27AM +0200, Willy Tarreau wrote: > Hi Maciej, > > On Tue, May 07, 2019 at 07:08:47PM +0200, Maciej Zdeb wrote: > > Hi, > > > > I've got another bug with 100% CPU on HAProxy process, it is built from > > HEAD of 1.9 branch. > > > > One of processes stuck in infinite loop, admin socket is not responsive so > > I've got information only from gdb: > > > > 0x0000000000484ab8 in h2_process_mux (h2c=0x2e8ff30) at src/mux_h2.c:2589 > > 2589 if (h2s->send_wait->events & SUB_CALL_UNSUBSCRIBE) > > (gdb) n > (...) > > CCing Olivier. Olivier, I'm wondering if this is not directly related to > what you addressed with this fix merged in 2.0 but not backported : > > 998410a ("BUG/MEDIUM: h2: Revamp the way send subscriptions works.") > > From what I'm seeing there's no error, the stream is in the sending list, > there's no blocking flag, well, everything looks OK, but we're looping > on SUB_CALL_UNSUBSCRIBE which apprently should not if I understand it > right. Do you think we should backport this patch ? > > Remaining of the trace below for reference. > > THanks, > Willy >
I can't seem to remember :) I remember a bug involving the h2s being added to the send_list twice, and thus leading to an infinite loop when parsing the send_list, but it was fixed by 9a0f559676c4d309edbe42ba33197e7dd8935f1c, and backported. For me, this one was mostly to make me happier about the code, and stop abusing SUB_CALL_UNSUBSCRIBE, and if I didn't mention it should be backported it's probably I considered the code in 1.9 was OK (or I just forgot), but it's still flagged as "BUG" too (but that could be me having "BUG/MEDIUM" hardcoded in my finger). I think that patch is safe to backport anyway, but I wouldn't swear it solves Maciej's issue. Regards, Olivier