On Fri, Dec 29, 2017 at 04:48:13PM +0000, Lucas Rolff wrote:
> > If you're willing to run another test, I can prepare a debugging patch 
> > which will try to report every single error path in the H2 and HPACK code 
> > so that we can try to understand where the code was upset
> 
> I'd love to run another test or 10 - in the end, we'll all benefit from it 
> (hopefully)

OK great, let's start with an easy one. This patch will output a line on
stderr for every function and line number where we go through a goto (most
goto in the code are error handling and most error handling is unrolled
using goto). For me it seldom prints :

   h2_process_demux:1759

When the client doesn't immediately send because it sees a partial request.
But with FF I'm not even seeing this one.

With a bit of luck you'll find one or a few lines that only happen when you
observe the problem, and the sequence will help us figure what code path
we're following.

If it doesn't work we'll try to do better.

Thanks!
Willy
diff --git a/src/mux_h2.c b/src/mux_h2.c
index 71660f8..8e1c821 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -167,6 +167,9 @@ enum h2_ss {
 #define H2_SF_HEADERS_SENT      0x00001000  // a HEADERS frame was sent for 
this stream
 #define H2_SF_OUTGOING_DATA     0x00002000  // set whenever we've seen 
outgoing data
 
+
+#define goto while (fprintf(stderr, "%s:%d\n", __FUNCTION__, __LINE__),1) goto
+
 /* H2 stream descriptor, describing the stream as it appears in the H2C, and as
  * it is being processed in the internal HTTP representation (H1 for now).
  */

Reply via email to