On 10/17/25 04:27, Stefan Eissing via curl-library wrote:
> 
> 
>> Am 17.10.2025 um 01:45 schrieb Vadim Grinshpun via curl-library 
>> <[email protected]>:
>>
>> Hi folks,
>> I'm working on a project that makes use of libcurl.
>> After upgrading libcurl from 8.14.1 to 8.16.0, I've noticed an unexpected 
>> behavior change.
>> Specifically, I'm observing a large number of curl_thread_create_thunk 
>> threads, all of which 
>> appear to have a backtrace like the one shown below. 
>>
>> Since the only thing that changed is the libcurl version,
>> I want to double-check a few things:
>> - are there any known issues in 8.16.0 that might have symptoms like this?
>> - has anything changed between 8.14.1 and 8.16.1 that might lead to this 
>> behavior?
>> - is it possible to misuse libcurl in a way that can lead to this behavior?
> 
> curl 8.16.0 uses pthread_cancel() to make threads terminate early when the 
> results are no longer needed. This was reverted in 
> de3fc1d7adb78c078e4cc7ccc48e550758094ad3, as it proved to be unreliable due 
> to unsoundness of libc's implementations. See 
> https://eissing.org/icing/posts/rip_pthread_cancel/ for my analysis of this.
> 
> What you see in the stacktraces seem to be exactly that. libc holds a lock 
> and does not release it on a pthread_cancel, leading to all other started 
> resolver threads to wait on this.
> 
> The workarounds are either to apply the mentioned patch or to build curl 
> using c-ares for resolving. Or try our recent release candidate 
> https://curl.se/rc/ for curl 8.17 due on November 5.
> 
> - Stefan

Should distros build with c-ares by default?  I'm wondering if
getaddrinfo() is just too poor an interface.
-- 
Sincerely,
Demi Marie Obenour (she/her/hers)

Attachment: OpenPGP_0xB288B55FFF9C22C1.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

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

Reply via email to