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