Following the previous email, I know that’s a high level description, but how 
could I debug with more visibility?

Thanks in advance!

From: Yongkang Huang <[email protected]>
Date: Tuesday, October 26, 2021 at 4:57 PM
To: [email protected] <[email protected]>
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 there’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: https://lists.haxx.se/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Reply via email to