[documentation] Issues with curl 7.64 and HTTP/2 POST requests #26

Open
opened 2019-12-13 14:58:51 +01:00 by mrngm · 4 comments
Collaborator

@Minnozz experienced strange timeouts when POSTing files using curl 7.64.1 (x86_64-apple-darwin19.0) libcurl/7.64.1 (SecureTransport) LibreSSL/2.8.3 zlib/1.2.11 nghttp2/1.39.2.

These timeouts did not occur when using curl 7.67.0 (x86_64-pc-linux-gnu) libcurl/7.67.0 OpenSSL/1.1.1d zlib/1.2.11 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh2/1.9.0 nghttp2/1.39.2

Some (curl 7.64.1) debuglogs from nginx later (curl 7.67.0), it seems we may be hitting this fixed bug.

The current spread of curl versions in production (scales to number of pastes):

# zgrep POST hashru.link.access.log* | grep -oP 'curl/\d.\d+\.\d+' | sort | uniq -c
      2 curl/7.64.0
     14 curl/7.64.1
      1 curl/7.65.3
      1 curl/7.66.0
     32 curl/7.67.0

The bug was fixed since 7.65.2. It might be good to document a workaround (e.g. using --http1.1 in the request).

@Minnozz experienced strange timeouts when `POST`ing files using `curl 7.64.1 (x86_64-apple-darwin19.0) libcurl/7.64.1 (SecureTransport) LibreSSL/2.8.3 zlib/1.2.11 nghttp2/1.39.2`. These timeouts did not occur when using `curl 7.67.0 (x86_64-pc-linux-gnu) libcurl/7.67.0 OpenSSL/1.1.1d zlib/1.2.11 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh2/1.9.0 nghttp2/1.39.2` [Some](https://hashru.link/uploads/d8cf27d47aaa4db0b92128b0c2b8c6ef/hashru.link.error-debug.txt) (curl 7.64.1) debuglogs from nginx [later](https://hashru.link/uploads/aec198902cad4a53b2d214a0e83d5b89/hashru.link.error-debug-mine.txt) (curl 7.67.0), it seems we may be hitting [this fixed bug](https://github.com/curl/curl/pull/4068). The current spread of `curl` versions in production (scales to number of pastes): ``` # zgrep POST hashru.link.access.log* | grep -oP 'curl/\d.\d+\.\d+' | sort | uniq -c 2 curl/7.64.0 14 curl/7.64.1 1 curl/7.65.3 1 curl/7.66.0 32 curl/7.67.0 ``` The bug was fixed since [7.65.2](https://curl.haxx.se/changes.html#7_65_2). It might be good to document a workaround (e.g. using `--http1.1` in the request).
Owner

Just add --http1.1 to the examples on the index page for now?

Just add `--http1.1` to the examples on the index page for now?
electricdusk added the
question
label 2019-12-13 16:58:39 +01:00
Collaborator

We could also (temporarily?) disable HTTP/2 on the nginx side. I don't think HTTP/2 has many advantages over HTTP/1.1 for rushlink.

We could also (temporarily?) disable HTTP/2 on the nginx side. I don't think HTTP/2 has many advantages over HTTP/1.1 for rushlink.
Author
Collaborator

Latest spread of curl versions:

# zgrep -E '(POST|DELETE)' hashru.link.access.log* | grep -oP 'curl/\d.\d+\.\d+' | sort | uniq -c
      3 curl/7.64.1
      5 curl/7.67.0
      2 curl/7.68.0
      1 curl/7.69.1
     24 curl/7.70.0

Latest spread of `curl` versions: ``` # zgrep -E '(POST|DELETE)' hashru.link.access.log* | grep -oP 'curl/\d.\d+\.\d+' | sort | uniq -c 3 curl/7.64.1 5 curl/7.67.0 2 curl/7.68.0 1 curl/7.69.1 24 curl/7.70.0 ```
Owner

We should add the curl --http1.1 to @mara 's upload script, maybe even with a check if the curl is version <7.65.2.

We should add the curl `--http1.1` to @mara 's upload script, maybe even with a check if the curl is version `<7.65.2`.
Sign in to join this conversation.
No Milestone
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: electricdusk/rushlink#26
No description provided.