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 _______________________________________________ Policies and (un)subscribe information available here: http://wiki.secondlife.com/wiki/SLDev Please read the policies before posting to keep unmoderated posting privileges
