facebook / proxygen

A collection of C++ HTTP libraries including an easy to use HTTP server.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

StreamError details

hadisajj2 opened this issue · comments

I am using proxygen and keep on getting StreamError. I have gone through ProxyGen code and I believe this error arises because there is an HTTP error (abort unacknowledged message) when sending/ or receiving. Is there a way to obtain more insight/granularity on whether the error is from a HTTP request or response?

Do you mean kErrorStreamUnacknowledged? This happens when the peer sends a message indicating that your HTTP request was not accepted and can be safely retried. If you could include any more specific details, log messages, or code snippets it would help.

My logs just show that ProxyGen is throwing a "StreamAbort" error, I am trying to find out what are the potential causes of StreamAbort to dig deeper in my code base. To my understanding its either from sending or receiving an HTTP message, but I want to know if there is a way to tell if its send or receive or does error mean something else?

CORRECTION: I wrote StreamError in the question, whereas it should have been StreamAbort.

StreamAbort means we received a H2 or H3 RST_STREAM. Try enabling VLOG 4 and you can see a bunch more detail that might give you insight about the reason.

Please reopen with more details if you still need help

Okay thank you!

@afrind Hi, I am actually not using HTTP1 (all my versions are set to 1) and by default its set to 1. Is it possible that any HTTP1 message will throw a StreamAbort message? Or perhaps folly/proxygen setting http2 somewhere?

I think StreamAbort is only generated from HTTPSession::onAbort, which is not called by the HTTP1xCodec, so it's probably using HTTP/2. Please try turning on verbose logging level 4 (-v 4) and paste your output for additional help.