-
-
Notifications
You must be signed in to change notification settings - Fork 46
Async::HTTP::Internet yielding blank Response #201
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Thanks for your report, this is surprising. I will investigate the issue. |
Are you able to capture logs using |
Thanks for looking into this. Here they are. I don't see much except that the connection is recognized by as non-reusable by async-pool. Perhaps you'll notice something I don't though. FWIW, also tried with the client locked to http/1.1 to see what would happen. No errors in that case, so this might be specific to h2 somehow. Logs
|
Seeing an issue where this block yields a Response with all
nil
values:The POST is being sent every 60 seconds, with the interval managed by a separate task and an Async::Notification to the http task. As such, it's a nearly perfect 60 second interval every time. The server runs nginx (as a proxy) and connections are using h2.
The empty Response reliably happens every 61 minutes. So, it works fine 61 times and then fails on the 62nd time. Then works for another 61, and fails on the 62nd again.
When the client yields the empty Response, the nginx logs still show the request and the normal, expected 204 response. The backend behind nginx correctly shows the post'd data from the request as well. So, it appears to be an issue on the client, or perhaps something between the client and nginx.
It feels like a race condition in combination with a maximum h2 session length, but I'm not sure a max session timeout even exists, so that could be way off. Thoughts on what this might be or how to debug it further?
async-http 0.87.0
async-pool 0.10.3
async 2.23.1
ruby 3.3.6
nginx 1.27.3
The text was updated successfully, but these errors were encountered: