-
Notifications
You must be signed in to change notification settings - Fork 191
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
9.1.0 regression: doesn't parse message following 100 response #249
Comments
No worries. |
Sorry, I was testing in 9.1.2 originally, it's not working for us. I just tested some older releases to see where the behaviour changed. |
I wonder if we could figure out a way to run some of our test suite in your CI, could be helpful to detect regressions. I think we have easily 100+ tests that exercise llhttp. |
That would be sick! |
They are Python tests, and many of them test functionality of our client and server, not directly the parser output. e.g. The test that caught this is verifying that we get a 404 response from an Expect 100 request. This test fails because llhttp isn't parsing the 2nd message. So, I think the only way we could make it work, is if we tried to add a new test job that cloned our repo, rebuilt the parser with the current llhttp code, and then executed a curated selection of our test suite. So, I think it would all be done a separate job that doesn't touch anything else in your repo. |
I see. |
I was thinking I could just make a job on this repo that performs those steps, I'll try playing with it in the next few weeks. |
Amazing! |
As the primary maintainer of the GitHub plumbing is not my strong suit, but I’m here if there’s anything I can do to help. |
That's not going to be possible with GHA because:
This could be achieved by making a stateful GitHub App but it's a bigger effort to maintain. Other possibilities:
I think that (4) is the most realistic path forward. |
@ShogunPanda Any idea when you'll get to look at this? We're still blocked on making a new release currently. |
@ShogunPanda @Dreamsorcerer Now that Python 3.12 is out, it'd be great to have aiohttp working on it! |
This is blocking |
Downstream packages and projects depending on @ShogunPanda Please merge #250, figure out the regression in In 9.1.x and release a new version of Thank you. |
I'm on it at the moment. Will hope to give an update within a hour. @cdce8p Thanks for the bisecting. Will take a look right now. |
I found the issue. Releasing in few minutes. |
Released v9.1.3. |
@Dreamsorcerer Does it work with v9.1.3. Because https://github.com/nodejs/llhttp/actions/runs/6394836947 failed. EDIT: Or is this due to the wording of an error message being changed. If so, please update. |
Yes it does. The one test should be adjusted in aiohttp itself. The error message changed slightly, so the regex doesn't match anymore. That can easily be fixed. |
@ShogunPanda Sorry to bother you again, while updating everything and running our full test suite, it appears we've found a regression introduced in 9.1.0.
When given a response like this:
HTTP/1.1 100 Continue\r\n\r\nHTTP/1.1 404 Not Found\r\nContent-Type: text/plain; charset=utf-8\r\nContent-Length: 14\r\nDate: Fri, 15 Sep 2023 19:47:23 GMT\r\nServer: Python/3.10 aiohttp/4.0.0a2.dev0\r\n\r\n404: Not Found
In 9.1+ this only parses the initial 100 response and nothing more. In older releases this would parse the 100 response and then parse the 404 response. This causes our client to hang and then timeout, thinking that the server never sent a response.
The text was updated successfully, but these errors were encountered: