Thanks, Amaury!

We'll give it a shot. Can we enable this selectively? We'll take a look at that 
to isolate it to just the sessions that are problematic.

Best,
Luke

—
Luke Seelenbinder
Stadia Maps | Founder & CEO
stadiamaps.com

> On Jul 29, 2025, at 18:11, Amaury Denoyelle <adenoye...@haproxy.com> wrote:
> 
> On Tue, Jul 29, 2025 at 04:10:12PM +0300, Luke Seelenbinder wrote:
>> Hi list,
>> We're working on debugging a quic/h3 issue on 3.2.3.
>> The client shows a QUIC error (on Chrome v138). The server shows CD--, and 
>> the connections timeout. The client then retries after ~6s on http2, and 
>> everything succeeds.
>> We're seeing the following debug details on the connections:
>> fs=< qcs=0x7ff797f4ca00 .id=176 .st=HCR .flg=0x0181 .rx=486/1474200 rxb=0(1) 
>> .tx=0 0/6291456  buf=0(0)/0 .ti=30148/29785/0 qcc=0x7ff798552200(F) 
>> qc=0x7ff797fe0000 .st=INIT .sc=11 .hreq=11 .flg=0x0028 .tx=8133047 
>> 8133047/15728640 bwnd=492506/491520 conn.flg=0x803c0300 
>> qc.wnd=511307/491520> bs=< h1s=0x7ff7954c7fc0 h1s.flg=0x14094 
>> .req.state=MSG_DONE .res.state=MSG_DATA .meth=GET status=200 
>> .sd.flg=0x106c0a01 .sd.evts=E1 .sc.flg=0x00035211 .sc.app=0x7ff797857c00 
>> .sc.evts=S1 .subs=(nil) h1c.flg=0x80004800 .sub=0 
>> .ibuf=15568@0x7ff78cf96500+800/16384 .obuf=0@(nil)+0/0 .evts=M1 
>> .task=0x7ff79251eec0 .exp=<NEVER> conn.flg=0x080300 conn.err_code=0 
>> conn.evts=F1>
> 
> At first glance, I'm seeing value 0x0181 for QCS instances, which can be
> translated as QC_SF_HREQ_RECV | QC_SF_TO_RESET | QC_SF_SIZE_KNOWN.
> 
> The second flag is probably the issue here : the stream has been
> resetted by haproxy. This can occur due to several reasons :
> * a STOP_SENDING frame was received
> * an error during HTTP/3 decoding
> * stream is shut prematurely by its upper haproxy layer
> 
> To further investigate on the issue, the easiest solution would be to
> activate traces, so that we can detect which one of the condition above
> was encountered. The simplest way is to use the following command-line
> argument to haproxy : '-dt qmux:developer:minimal', to output debug
> traces on stderr. This will be really verbose, if not suitable a traces
> section can be configured to redirect output on a sink.
> 
> Regards,
> 
> -- 
> Amaury Denoyelle
> 
> 

Reply via email to