Hello, everyone

I'm stuck with a problem and asking for a help.


Context:

we have a project that contains a HTTP client with Lua API implemented using Curl library, sources are [3] and [4].

This Lua HTTP client used in another closed-source Lua module that implements an etcd client in Lua.

Before Curl version 8.4.0 everything worked fine (exactly with Curl 8.3.0), but after updating Curl to 8.4.0 in our HTTP client

some tests for etcd-client Lua module became failed from time to time.

There are test logs for passed and failed cases with enabled debug in curl: [5] and [6] and diff [7].


Observations:

1. The problem is specific for HTTP/2 protocol, because problem is gone

if force HTTP 1.1 protocol with CURL_HTTP_VERSION_1_1.

2. Problem is triggered by commit [3] introduced in Curl 8.4.0 [4],

because the problem is gone after reverting aforementioned commit.


Symptoms:

curl library with enabled debug prints a message below before a test fail:

> readwrite, dselect_bits, early return on PAUSED

This message was introduced in aforementioned commit to curl library.


Current version of Curl library: 8.5.0

OS: Ubuntu x86_64 22.04


What could cause a problem? As I got a debug message right connection become paused

and no one unpause it. Curl callback 'curl_easy_io_read_cb' returns CURL_READFUNC_PAUSE

and on next read httpc_request_io_write unpauses connection with CURLPAUSE_SEND_CONT.



1. https://github.com/tarantool/tarantool/blob/master/src/curl.c

2. https://github.com/tarantool/tarantool/blob/master/src/httpc.c

3. https://github.com/curl/curl/commit/6b9a591bf7d82031f463373706d7de1cba0adee6

4. https://curl.se/changes.html#8_4_0

5. https://github.com/ligurio/snippets/blob/master/curl-question/curl-fail.log

6. https://github.com/ligurio/snippets/blob/master/curl-question/curl-pass.log

7. https://github.com/ligurio/snippets/blob/master/curl-question/curl-diff.log

--
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html

Reply via email to