curl / Mailing Lists / curl-library / Single Mail
Buy commercial curl support from WolfSSL. We help you work out your issues, debug your libcurl applications, use the API, port to new platforms, add new features and more. With a team lead by the curl founder himself.

problem with unpaused connection

From: Sergey Bronnikov via curl-library <curl-library_at_lists.haxx.se>
Date: Thu, 18 Jan 2024 13:46:34 +0300

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
Received on 2024-01-18