Le 29/10/2019 à 15:33, Ing. Andrea Vettori a écrit :

On 29 Oct 2019, at 10:20, Christopher Faulet <[email protected] <mailto:[email protected]>> wrote: Please consider to use nghttp if possible. Curl does not give enough details at the protocol layer. Also enable HTTP logs (option httplog in your defaults section and the info level on the log line in your global section instead of warning).


I’m collecting a few tests using nghttp and to do so I aligned the dev web server configuration with those in production (to compare the outputs). While doing this haproxy emitted this error and I think it’s related to a connection that seemed stuck.


haproxy[20636]: A bogus STREAM [0x7efd240595f0] is spinning at 189145 calls per second and refuses to die, aborting now! Please report this error to developers [strm=0x7efd240595f0 src=ipaddr fe=dev be=dev-ssl-servers dst=webdev rqf=c40e060 rqa=0 rpf=8000a020 rpa=0 sif=CLO,c8000 sib=CON,280191 af=(nil),0 csf=0x7efd24027420,0 ab=(nil),0 csb=0x7efd240577b0,800 cof=0x7efcdc05cb50,243300:H2(0x7efd24056c10)/SSL(0x7efd24057d70)/tcpv4(306) cob=0x7efd24021a70,202306:H2(0x7efd2403a960)/RAW((nil))/tcpv4(6) ]


I guess you hit the bug fixed by the commit 27ebcefd4 ("BUG/MAJOR: stream-int: Don't receive data from mux until SI_ST_EST is reached") in the 2.0. Are you sure your server supports non-TLS HTTP/2 (without upgrade) ? This bug was fixed after the 2.0.8. It could also be a problem with the H2 settings exchanged with your server (from the protocol point of view).

BTW, the abort is probably not responsible to your truncated responses because here the stream is aborted during the connection to the server. At this stage, nothing was yet sent to the server and thus nothing was received. But it explains your connection issues.

If I'm right, try to fix your platform issues first. Truncated responses may just be a side effect. But for now, it is hard to track a possible bug.

At this stage, a solution could be to install HAProxy 2.1 to have the H2 traces. It is a live debug mechanism. But it is pretty verbose. Before that, a solution would also be to get a network capture on the HAProxy server. At least on the server side.

Finally, now that you are able to send requests using nghttp, could you share the verbose output of a h2 request sent to HAProxy and the same sent to your H2 server please ?

Thanks,
--
Christopher Faulet

Reply via email to