This only happens when a connection error is detected or when the H2
connection is in ERR/ERR2 state. The demux buffer is explicitly reset. In
that case, it is important to remove the flag reporting this buffer as full.
It is probably worth to backport this patch to 3.2. But it is not mandatory
on older versions because it does not fix any known issue.
if (h2c->glitches != prev_glitches && !(h2c->flags & H2_CF_IS_BACK))
session_add_glitch_ctr(h2c->conn->owner, h2c->glitches - prev_glitches);
- if (h2c->st0 >= H2_CS_ERROR || (h2c->flags & H2_CF_ERROR))
+ if (h2c->st0 >= H2_CS_ERROR || (h2c->flags & H2_CF_ERROR)) {
b_reset(&h2c->dbuf);
+ h2c->flags &= ~H2_CF_DEM_DFULL;
+ }
}
was_blocked |= !!(h2c->flags & H2_CF_DEM_MROOM);
h2_send(h2c);