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.

Re: How to debug cULR multi handle timeout caused by not writing to socket

From: Jason Qian via curl-library <>
Date: Fri, 29 Oct 2021 10:00:37 -0400

Hi Yongkang,

I have run into the same issue as you described. Please let me know if you
got solution.


On Tue, Oct 26, 2021 at 7:59 PM Yongkang Huang via curl-library <> wrote:

> Following t*he previous email, I know that’s a high level description,
> but how could I debug with more visibility?*
> *Thanks in advance!*
> *From: *Yongkang Huang <>
> *Date: *Tuesday, October 26, 2021 at 4:57 PM
> *To: * <>
> *Subject: *How to debug cULR multi handle timeout caused by not writing
> to socket
> Hi!
> Following the thread I sent previously, now I’m working on an application
> that structured as the following way
> 1. A thread holds a static curl multi handle and running as the event
> base
> 2. When t*here’s a user request to do a HTTP call, a easy handle would
> be created and passing to *the thread holding the curl multi handle.
> 3. The curl multi thread will add the easy handle to the multi handle,
> and drive the IO with the event base.
> 4. Once a request finished, return the easy handle to the thread
> dealing with user request
> This model working fine when I do the request sequentially on a single
> thread with user traffic, but when there’s multiple request scheduled
> concurrently, there’s a wired bug that the write to a socket would stuck
> until a timeout finished (tcpdump shows a the tcp stuck on sending the
> application data instead of waiting for remote ack), usually it’s either
> the connect timeout we set to connect to proxy, or the total timeout
> without the connect timeout. For example if the connect timeout is 10s, and
> total timeout is 30, a lot of request will finished in 10 second or 20
> seconds, even waiting indefinitely until the total timeout passed.
> --
> Unsubscribe:
> Etiquette:

Received on 2021-10-29