Skip to content
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

HTTP/2 POST gives timeout/protocol error after upgrade from 8.1.2 to 8.2.0 #11485

Closed
OlekMazur opened this issue Jul 20, 2023 · 1 comment
Closed
Assignees

Comments

@OlekMazur
Copy link

I did this

I did the same query as in #11194, and found a regression in 8.2.0 compared to 8.1.2.
Full output:

* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
> POST /api/v1/XXXXXX HTTP/2
> Host: eu-gb.functions.appdomain.cloud
> User-Agent: curl/8.2.0
> Accept: */*
> Content-Type: text/csv
> Content-Length: 0
> 
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
     ... stucks here for 60s ...
* HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1)
curl: (92) HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1)

curl/libcurl version

curl 8.2.0 (x86_64-pc-linux-gnu) libcurl/8.2.0 OpenSSL/3.0.9 zlib/1.2.13 brotli/1.0.9 zstd/1.5.5 nghttp2/1.52.0
Release-Date: 2023-07-19
Protocols: http https imap imaps smtp smtps
Features: AsynchDNS brotli HTTP2 HTTPS-proxy Largefile libz NTLM SSL threadsafe zstd

operating system

Linux 6.3.11-200.fc38.x86_64 #1 SMP PREEMPT_DYNAMIC Sun Jul 2 13:17:31 UTC 2023 x86_64 GNU/Linux

@icing icing self-assigned this Jul 20, 2023
icing added a commit to icing/curl that referenced this issue Jul 20, 2023
- refs curl#11485
- a regression introduced by c9ec851
  where optimization of small POST bodies leads to a new code path
  for such uploads that did not trigger the "done sending" event
- add triggering this event for early "upload_done" situations
@icing
Copy link
Contributor

icing commented Jul 20, 2023

I am very sorry that you got hit with that again. Please see #11487 for a fix.

This regression was introduced by c9ec851 which uncovered a missing internal event for signalling the EOF to the server. Unfortunately, our test servers are too tolerant of such requests to detect this.

@bagder bagder closed this as completed in f9314f3 Jul 20, 2023
ptitSeb pushed a commit to wasix-org/curl that referenced this issue Sep 25, 2023
- a regression introduced by c9ec851
  where optimization of small POST bodies leads to a new code path
  for such uploads that did not trigger the "done sending" event
- add triggering this event for early "upload_done" situations

Fixes curl#11485
Closes curl#11487
Reported-by: Aleksander Mazur
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

3 participants