[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