Bug 64951

Summary: [Chromium] fast/frames/meta-refresh-user-gesture.html is crashy on Windows.
Product: WebKit Reporter: John Knottenbelt <jknotten>
Component: Tools / TestsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: jnd, rniwa
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   

Description John Knottenbelt 2011-07-21 08:35:59 PDT
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&tests=fast%2Fframes%2Fmeta-refresh-user-gesture.html

fast/frames/meta-refresh-user-gesture.html is crashing on Vista and Win 7.

Vista stack trace:

Backtrace:
	url_util::`anonymous namespace'::DoLowerCaseEqualsASCII<char const *> [0x01257B23+19] (e:\b\build\slave\webkit_vista\build\src\googleurl\src\url_util.cc:53)

This looks like it might be related to https://bugs.webkit.org/show_bug.cgi?id=64948 which is also crashing in DoLowerCaseEqualsASCII
Comment 1 Johnny(Jianning) Ding 2011-07-21 17:51:33 PDT
Thanks for report John.
If there is no collision, I will look at this today.
Comment 2 Johnny(Jianning) Ding 2011-07-25 02:34:20 PDT
*** Bug 64948 has been marked as a duplicate of this bug. ***
Comment 3 Johnny(Jianning) Ding 2011-07-25 02:36:18 PDT
cause by a race condition, a patch will be provided later.
Comment 4 Johnny(Jianning) Ding 2011-07-26 00:54:58 PDT
This bug was caused by different threads in DRT chromium port may try to initialize the standard_schemes global variable at same time. 
According to the InitStandardSchemes implementation in url_util.cc, when one thread was calling InitStandardSchemes, another thread might think the standard_schemes is completed, then called LowerCaseEqualsASCII to compare whether the specified scheme is one of standard schmemes, but standard_schemes->at(i) might return null pointer at this point (see method DoIsStandard in url_util.cc). There was a similar bug on http://code.google.com/p/google-url/issues/detail?id=17.

The fix is pretty easy and provided in http://code.google.com/p/google-url/issues/detail?id=17. Which is to call standard_schemes initialization when initializing the program before other threads generate GURL object.
From my understanding, we should call the URL library Initialization in webkit_support::SetUpTestEnvironment which is in Chromium source path.

A fix may be submitted to Chromium, let's keep this bug open. Will close it when the CL landed in Chromium.
Comment 5 Johnny(Jianning) Ding 2011-07-26 06:16:26 PDT
chromium bug: http://code.google.com/p/chromium/issues/detail?id=90503
Comment 6 Johnny(Jianning) Ding 2011-07-26 18:54:27 PDT
fix in chromium http://src.chromium.org/viewvc/chrome?view=rev&revision=94216
Comment 7 Johnny(Jianning) Ding 2011-07-27 19:09:39 PDT
*** Bug 64920 has been marked as a duplicate of this bug. ***