On Tue, Apr 12, 2022 at 08:01:59AM -0600, Shawn Heisey wrote:
> On 4/12/22 02:22, Amaury Denoyelle wrote:
> > then you can display the traces with the following command :
> > $ show events buf0
> > > For the h3 layer, the trace mechanism is not currently implemented. You
> > should instead recompile your haproxy binary with the DEBUG options :
> >   -DDEBUG_H3 -DDEBUG_QPACK
> > and watch for the stderr output for your process.
> I got some traces.  URL below for accessing it.  There's a LOT of data.
> https://paste.elyograg.org/view/8678c875
> I didn't do the H3 debug yet, if you still need it after looking at the
> traces, let me know.  You'll also need to tell me how to make those debugs
> active when I build haproxy.

We analyzed the output of the traces but there is nothing of particular
interest here. What may be useful is to activate the H3 traces.

However, I notice that the -dev5 does not compile with H3 traces
activated. So first, you have to apply the attached patch before
recompiling. To do this, save the attachment and execute the following
command in your source folder :

$ patch -p1 < 0001-BUG-MINOR-h3-fix-build-with-DEBUG_H3.patch

Alternatively, you can also use the latest master with contains the
mentionned patch. However, I think it's safer to stay on the -dev5 tag
for the moment.

Once the patch is applied, recompile your haproxy binary with DEBUG_H3
and DEBUG_QPACK flags. Here is a make example, complete it with your
usual set of flags :

$ make TARGET=linux-glibc USE_QUIC=1 DEBUG="-DDEBUG_H3 -DDEBUG_QPACK" ...

You can now restart your process and watch the stderr output and report
it to us.

Again, thank you very much for your help,

-- 
Amaury Denoyelle
>From bb970422546c0db08b244d5e5a12a795a605dd64 Mon Sep 17 00:00:00 2001
From: Amaury Denoyelle <[email protected]>
Date: Tue, 12 Apr 2022 16:40:52 +0200
Subject: [PATCH] BUG/MINOR: h3: fix build with DEBUG_H3

qcs by_id field has been replaced by a new field named "id". Adjust the
h3_debug_printf traces. This is the case since the introduction of the
qc_stream_desc type.
---
 src/h3.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/h3.c b/src/h3.c
index e39c54135..2d450d8b8 100644
--- a/src/h3.c
+++ b/src/h3.c
@@ -231,7 +231,7 @@ static int h3_decode_qcs(struct qcs *qcs, int fin, void 
*ctx)
        struct buffer *rxbuf = &qcs->rx.buf;
        int ret;
 
-       h3_debug_printf(stderr, "%s: STREAM ID: %llu\n", __func__, 
qcs->by_id.key);
+       h3_debug_printf(stderr, "%s: STREAM ID: %lu\n", __func__, qcs->id);
        if (!b_data(rxbuf))
                return 0;
 
@@ -333,7 +333,7 @@ static int h3_control_recv(struct h3_uqs *h3_uqs, void *ctx)
        struct buffer *rxbuf = &h3_uqs->qcs->rx.buf;
        struct h3 *h3 = ctx;
 
-       h3_debug_printf(stderr, "%s STREAM ID: %llu\n", __func__,  
h3_uqs->qcs->by_id.key);
+       h3_debug_printf(stderr, "%s STREAM ID: %lu\n", __func__,  
h3_uqs->qcs->id);
        if (!b_data(rxbuf))
                return 1;
 
-- 
2.35.1

Reply via email to