[sldev] SNOW-2 (Curl crash) update

Tofu Linden tofu.linden at lindenlab.com
Fri Jul 3 05:18:43 PDT 2009


This fix in libcurl 7.18.1 looks like a really plausible candidate
for the 7.16.4 bug:

# sharing DNS cache between easy handles running in multiple threads
could lead to crash

Philippe Bossut (Merov Linden) wrote:
> Hi,
> 
> I've been investigating that bug quite a bit this week, writing unit  
> tests and instrumenting the code. I don't have a fix yet (mostly  
> because I don't have a repro case) but I'm narrowing it down to the  
> use of one class: LLCurlRequest.
> 
> I've been also digging through the 1000+ crash reports we got on  
> Snowglobe 1.0.2.2451 and found some clear patterns that you might find  
> interesting:
>      * All the Curl crashes happened with Windows Vista (81) or  
> Windows XP (41). Not one on Linux or Mac. So that seems to be platform  
> specific.
>      * All show the exact same trace at the end (through the exe entry  
> point is slightly different between XP and Vista but that's due to how  
> the system wrap the thread):
>        [0] Curl_llist_insert_next [snowgloberelease.exe unknownfile]
>        [1] Curl_hash_add [snowgloberelease.exe unknownfile]
>        [2] Curl_cache_addr [snowgloberelease.exe unknownfile]
>        [3] curl_getdate [snowgloberelease.exe unknownfile]
>        [4] Curl_addrinfo4_callback [snowgloberelease.exe unknownfile]
>        [5] Curl_cookie_clearall [snowgloberelease.exe unknownfile]
>      * Out of 122 crashers I explored, all but 8 used the map during  
> the session
>      * Out of those 114 crashers, more than 100 happen while using the  
> map
> 
> Looking into the code and instrumenting LLCurl, I found out that:
>      * The LLCurlRequest class is only used for map tiles fetching
>      * All other curl requests go through LLCurlEasyRequest and are  
> mostly concentrated at the beginning of a session
> 
> So, in conclusion, it seems that we're having a thread safety issue  
> with a piece of LLCurl that has never been exercised (hence tested) in  
> the viewer before. That crash is Windows specific and has a very  
> specific trace signature. Anyone knows of any Windows specific Curl  
> thread issue with curl 7.16.4? Insight there would be great as it  
> might prompt us to upgrade that library.
> 
> Once I'm done with the 2483 merge, I'll commit some changes to LLCurl  
> that add extra llassert_always() and checks so that we have a chance  
> to catch oddities before we call into curl.
> 
> Cheers,
> - Merov
> 
> _______________________________________________
> Policies and (un)subscribe information available here:
> http://wiki.secondlife.com/wiki/SLDev
> Please read the policies before posting to keep unmoderated posting privileges


More information about the SLDev mailing list