<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>65323</bug_id>
          
          <creation_ts>2011-07-28 10:17:11 -0700</creation_ts>
          <short_desc>REGRESSION: r91931 causes NOTREACHED to be hit via StorageTracker</short_desc>
          <delta_ts>2011-07-28 16:02:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrienne Walker">enne</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>beidson</cc>
    
    <cc>enne</cc>
    
    <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>443540</commentid>
    <comment_count>0</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-07-28 10:17:11 -0700</bug_when>
    <thetext>After http://trac.webkit.org/changeset/91931/, a number of Chromium tests are hitting a NOTREACHED in debug mode.

Stack trace from fast/js/global-constructors.html on Chromium Win Debug:

SHOULD NEVER BE REACHED
Backtrace:
	WebCore::SQLiteFileSystem::appendDatabaseFileNameToPath [0x0165E819+25] (e:\b\build\slave\webkit_win__dbg__2_\build\src\third_party\webkit\source\webcore\platform\sql\chromium\sqlitefilesystemchromium.cpp:68)
	WebCore::StorageTracker::trackerDatabasePath [0x0152D917+103] (e:\b\build\slave\webkit_win__dbg__2_\build\src\third_party\webkit\source\webcore\storage\storagetracker.cpp:100)
	WebCore::StorageTracker::openTrackerDatabase [0x0152DA01+193] (e:\b\build\slave\webkit_win__dbg__2_\build\src\third_party\webkit\source\webcore\storage\storagetracker.cpp:114)
	WebCore::StorageTracker::syncImportOriginIdentifiers [0x0152DD64+148] (e:\b\build\slave\webkit_win__dbg__2_\build\src\third_party\webkit\source\webcore\storage\storagetracker.cpp:159)
	WebCore::LocalStorageTask::performTask [0x0152AE05+117] (e:\b\build\slave\webkit_win__dbg__2_\build\src\third_party\webkit\source\webcore\storage\localstoragetask.cpp:94)
	WebCore::LocalStorageThread::threadEntryPoint [0x01528833+131] (e:\b\build\slave\webkit_win__dbg__2_\build\src\third_party\webkit\source\webcore\storage\localstoragethread.cpp:69)
	WebCore::LocalStorageThread::threadEntryPointCallback [0x0152879B+11] (e:\b\build\slave\webkit_win__dbg__2_\build\src\third_party\webkit\source\webcore\storage\localstoragethread.cpp:63)
	WTF::threadEntryPoint [0x020CA305+149] (e:\b\build\slave\webkit_win__dbg__2_\build\src\third_party\webkit\source\javascriptcore\wtf\threading.cpp:67)
	WTF::wtfThreadEntryPoint [0x008C18D9+89] (e:\b\build\slave\webkit_win__dbg__2_\build\src\third_party\webkit\source\javascriptcore\wtf\threadingwin.cpp:209)
	_callthreadstartex [0x00A7E783+83] (f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c:348)
	_threadstartex [0x00A7E724+164] (f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c:331)
	GetModuleFileNameA [0x7C80B729+442]

Full set of tests:

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&amp;tests=fast%2Fjs%2Fglobal-constructors.html%2Cfast%2Floader%2Fchild-frame-add-after-back-forward.html%2Cfast%2Floader%2Fdocument-with-fragment-url-1.html%2Cfast%2Floader%2Fdocument-with-fragment-url-4.html%2Cfast%2Floader%2Fiframe-crash-on-missing-image.xhtml%2Cfast%2Floader%2Fjavascript-url-encoding-2.html%2Cfast%2Floader%2Fstateobjects%2Fdocument-destroyed-navigate-back-with-fragment-scroll.html%2Cfast%2Floader%2Fstateobjects%2Fpopstate-after-load-complete-body-attribute.html%2Cfast%2Floader%2Fstateobjects%2Fpushstate-clears-forward-history.html%2Cfast%2Floader%2Fstateobjects%2Freplacestate-updates-location.html%2Chttp%2Ftests%2Fappcache%2Flocal-content.html%2Chttp%2Ftests%2Fhistory%2Fback-to-post.php%2Chttp%2Ftests%2Finspector%2Fchange-iframe-src.html%2Chttp%2Ftests%2Finspector%2Fconsole-cd.html%2Chttp%2Ftests%2Finspector%2Fconsole-resource-errors.html%2Chttp%2Ftests%2Finspector%2Fconsole-websocket-error.html%2Chttp%2Ftests%2Finspector%2Fconsole-xhr-logging.html%2Chttp%2Ftests%2Finspector%2Finspect-iframe-from-different-domain.html%2Chttp%2Ftests%2Finspector%2Fnetwork-preflight-options.html%2Chttp%2Ftests%2Finspector%2Fresource-har-conversion.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443558</commentid>
    <comment_count>1</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-07-28 10:49:49 -0700</bug_when>
    <thetext>This doesn&apos;t appear to happen in Safari, even in Debug builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443564</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-07-28 11:16:15 -0700</bug_when>
    <thetext>Oh dear...

It&apos;s not at all clear to me from this backtrace exactly what&apos;s going on - why 91931 caused this.  I was under the impression that Chromium didn&apos;t make use of the StorageTracker (I remember when we were adding it there was a lot of hubbub about making sure it doesn&apos;t affect Chromium because they didn&apos;t want it)

91931 simple deferred StorageTracker initialization until the first time a storage area is accessed by the DOM.  That code path is common and always has to happen on the main thread.

From the background storage thread perspective, it is bizarre that there&apos;s any visible behavior change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443565</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-07-28 11:18:31 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Oh dear...
&gt; 
&gt; It&apos;s not at all clear to me from this backtrace exactly what&apos;s going on - why 91931 caused this.  I was under the impression that Chromium didn&apos;t make use of the StorageTracker (I remember when we were adding it there was a lot of hubbub about making sure it doesn&apos;t affect Chromium because they didn&apos;t want it)
&gt; 
&gt; 91931 simple deferred StorageTracker initialization until the first time a storage area is accessed by the DOM.  That code path is common and always has to happen on the main thread.
&gt; 
&gt; From the background storage thread perspective, it is bizarre that there&apos;s any visible behavior change.

Oh duh, I think I realized what&apos;s going on.  By moving the initialization from WebKit to WebCore without platform guards, now *everyone* is getting an active, initialized StorageTracker.

That was a pretty bad mistake on my part.  My apologies - I&apos;m working on a fix now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443567</commentid>
    <comment_count>4</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-07-28 11:20:30 -0700</bug_when>
    <thetext>(In reply to comment #3)
 
&gt; That was a pretty bad mistake on my part.  My apologies - I&apos;m working on a fix now.

Thanks for taking a look, even though this looked ostensibly like a Chromium-only problem.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443579</commentid>
    <comment_count>5</comment_count>
      <attachid>102274</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-07-28 11:37:34 -0700</bug_when>
    <thetext>Created attachment 102274
Patch v1 - Flip the initialization flag to have &quot;needs initialization&quot; meaning, and only set it when ::initializeTracker() has been called (which Chromium doesn&apos;t do)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443611</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-07-28 12:28:01 -0700</bug_when>
    <thetext>Okay http://trac.webkit.org/changeset/91943 should make this go away.  Please close once you&apos;ve seen things clear up on your tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443691</commentid>
    <comment_count>7</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-07-28 16:02:59 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Okay http://trac.webkit.org/changeset/91943 should make this go away.  Please close once you&apos;ve seen things clear up on your tests.

Slow debug builders are slow.  Finally, all green.  Thanks again.  :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102274</attachid>
            <date>2011-07-28 11:37:34 -0700</date>
            <delta_ts>2011-07-28 12:25:53 -0700</delta_ts>
            <desc>Patch v1 - Flip the initialization flag to have &quot;needs initialization&quot; meaning, and only set it when ::initializeTracker() has been called (which Chromium doesn&apos;t do)</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>2886</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkxOTQwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDctMjggIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02NTMyMworICAgICAgICByOTE5MzEgY2F1c2VzIE5PVFJFQUNI
RUQgdG8gYmUgaGl0IHZpYSBTdG9yYWdlVHJhY2tlcgorCisgICAgICAgIENoYW5nZSB0aGUgbWVh
bmluZyBvZiB0aGUgImhhcyBiZWVuIGluaXRpYWxpemVkIiBmbGFnIHRvICJuZWVkcyBpbml0aWFs
aXphdGlvbiIsIGFuZCBvbmx5IHNldCBpdCB0byB0cnVlCisgICAgICAgIGlmIHRoZSA6OmluaXRp
YWxpemVUcmFja2VyKCkgbWV0aG9kIGhhcyBiZWVuIGNhbGxlZC4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OmluaXRpYWxpemVUcmFja2Vy
KTogU2V0IG1fbmVlZHNJbml0aWFsaXphdGlvbiB0byB0cnVlIHNpbmNlIHRoZSBjYWxsaW5nIFdl
YktpdCBwb3J0IGV4cGVjdHMgZnVsbAorICAgICAgICAgIGluaXRpYWxpemF0aW9uIGluc3RlYWQg
b2YgYSBkdW1teSB0cmFja2VyLgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6Omlu
dGVybmFsSW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6dHJh
Y2tlcik6IE9ubHkgaW5pdGlhbGl6ZSB0aGUgdHJhY2tlciBpZiBpdCB3YXMgY3JlYXRlZCBpbiB0
aGUgYWJvdmUgaW5pdGlhbGl6ZVRyYWNrZXIoKS4KKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VU
cmFja2VyOjpTdG9yYWdlVHJhY2tlcik6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlVHJhY2tl
ci5oOgorCiAyMDExLTA3LTI4ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAK
ICAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvNjUyODk+IFJlbW92ZSBHZW9sb2NhdGlvblBv
c2l0aW9uQ2FjaGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIu
Y3BwCShyZXZpc2lvbiA5MTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRy
YWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw3IEBAIHZvaWQgU3RvcmFnZVRy
YWNrZXI6OmluaXRpYWxpemVUcmFja2VyKGMKICAgICAgICAgc3RvcmFnZVRyYWNrZXIgPSBuZXcg
U3RvcmFnZVRyYWNrZXIoc3RvcmFnZVBhdGgpOwogICAgIAogICAgIHN0b3JhZ2VUcmFja2VyLT5t
X2NsaWVudCA9IGNsaWVudDsKKyAgICBzdG9yYWdlVHJhY2tlci0+bV9uZWVkc0luaXRpYWxpemF0
aW9uID0gdHJ1ZTsKIH0KIAogdm9pZCBTdG9yYWdlVHJhY2tlcjo6aW50ZXJuYWxJbml0aWFsaXpl
KCkKQEAgLTcyLDE0ICs3MywxNCBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjppbnRlcm5hbEluaXRp
YWxpemUoCiAgICAgc3RvcmFnZVRyYWNrZXItPm1fdGhyZWFkLT5zdGFydCgpOyAgCiAgICAgc3Rv
cmFnZVRyYWNrZXItPmltcG9ydE9yaWdpbklkZW50aWZpZXJzKCk7CiAgICAgCi0gICAgbV9pc0lu
aXRpYWxpemVkID0gdHJ1ZTsKKyAgICBtX25lZWRzSW5pdGlhbGl6YXRpb24gPSBmYWxzZTsKIH0K
IAogU3RvcmFnZVRyYWNrZXImIFN0b3JhZ2VUcmFja2VyOjp0cmFja2VyKCkKIHsKICAgICBpZiAo
IXN0b3JhZ2VUcmFja2VyKQogICAgICAgICBzdG9yYWdlVHJhY2tlciA9IG5ldyBTdG9yYWdlVHJh
Y2tlcigiIik7Ci0gICAgaWYgKCFzdG9yYWdlVHJhY2tlci0+bV9pc0luaXRpYWxpemVkKQorICAg
IGlmIChzdG9yYWdlVHJhY2tlci0+bV9uZWVkc0luaXRpYWxpemF0aW9uKQogICAgICAgICBzdG9y
YWdlVHJhY2tlci0+aW50ZXJuYWxJbml0aWFsaXplKCk7CiAgICAgCiAgICAgcmV0dXJuICpzdG9y
YWdlVHJhY2tlcjsKQEAgLTkwLDcgKzkxLDcgQEAgU3RvcmFnZVRyYWNrZXI6OlN0b3JhZ2VUcmFj
a2VyKGNvbnN0IFN0cgogICAgICwgbV9jbGllbnQoMCkKICAgICAsIG1fdGhyZWFkKExvY2FsU3Rv
cmFnZVRocmVhZDo6Y3JlYXRlKCkpCiAgICAgLCBtX2lzQWN0aXZlKGZhbHNlKQotICAgICwgbV9p
c0luaXRpYWxpemVkKGZhbHNlKQorICAgICwgbV9uZWVkc0luaXRpYWxpemF0aW9uKGZhbHNlKQog
ewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5oCShyZXZp
c2lvbiA5MTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMTEyLDcgKzExMiw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPExv
Y2FsU3RvcmFnZVRocmVhZD4gbV90aHJlYWQ7CiAgICAgCiAgICAgYm9vbCBtX2lzQWN0aXZlOwot
ICAgIGJvb2wgbV9pc0luaXRpYWxpemVkOworICAgIGJvb2wgbV9uZWVkc0luaXRpYWxpemF0aW9u
OwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="97483"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="97484"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>