-
-
Notifications
You must be signed in to change notification settings - Fork 6.5k
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
curl reuses connection when non-chunked data has not entirely been sent #11678
Comments
Here's a somewhat complicated reproduction procedure, but it also seems pretty reliable: In xterm 1 run:
In xterm 2 run:
In xterm 3 run:
As soon as you run the command in xterm 3, wait for the next period to appear in xterm 2, then immediately paste the clipboard into xterm 1. You should see a new set of headers from curl appear in xterm 1, then the system will hang. Examining the curl trace log should show substantially the same conditions mentioned in the bug report (although curl will likely have sent 128 KiB of data in the first connection instead of only 64 KiB). |
In this situation, only part of the data has been sent before aborting so the connection is no longer usable. Assisted-by: Jay Satiro Fixes curl#11678 Closes curl#11679
I did this
I caught a case where test 357 hung, while running the test suite under CPU starvation conditions. What seems to happen is this:
Expect: 100-continue
with HTTP/1.1Expect: 100-continue
(again, in non-chunked mode)Here is an annotated excerpt from the trace log for the hanging test 357:
That's 65536 bytes, when the server is expecting 1053701 bytes.
That's the smoking gun ^^^
I expected the following
In step 6, curl should close the existing connection (since it is incomplete) and start a new one instead.
curl/libcurl version
8.3.0-DEV
operating system
Linux x86_64
The text was updated successfully, but these errors were encountered: