<?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>81504</bug_id>
          
          <creation_ts>2012-03-19 02:43:34 -0700</creation_ts>
          <short_desc>[chromium] DRT crashes at shutdown.</short_desc>
          <delta_ts>2012-03-19 22:43:15 -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>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hao Zheng">zhenghao</reporter>
          <assigned_to name="Hao Zheng">zhenghao</assigned_to>
          <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>581709</commentid>
    <comment_count>0</comment_count>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2012-03-19 02:43:34 -0700</bug_when>
    <thetext>In debug build of DRT, it crashes randomly at shutdown. I think it&apos;s due to a race condition. I can trigger the crash easily by this test:

out/Debug/DumpRenderTree /usr/local/code/webkit.git/LayoutTests/compositing/iframes/overlapped-nested-iframes.html

The stacktrace:

ASSERTION FAILED: !CCLayerTreeHost::anyLayerTreeHostInstanceExists()
Source/WebKit/chromium/src/WebCompositorImpl.cpp(78) : static void WebKit::WebCompositorImpl::shutdown()
1   0x48fd50
2   0x48fbbf
3   0x46cc36
4   0x4378d3
5   0x7fb676dcac4d __libc_start_main
6   0x422fd9
[30647:30647:19876206991:ERROR:process_util_posix.cc(142)] Received signal 11
        base::debug::StackTrace::StackTrace() [0x7315c6]
        base::(anonymous namespace)::StackDumpSignalHandler() [0x6ec18d]
        0x7fb676ddfaf0
        WebKit::WebCompositorImpl::shutdown() [0x48fd5a]
        WebKit::WebCompositor::shutdown() [0x48fbbf]
        TestShell::~TestShell() [0x46cc36]
        main [0x4378d3]
        0x7fb676dcac4d
        0x422fd9</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581752</commentid>
    <comment_count>1</comment_count>
      <attachid>132574</attachid>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2012-03-19 07:08:11 -0700</bug_when>
    <thetext>Created attachment 132574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581756</commentid>
    <comment_count>2</comment_count>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2012-03-19 07:14:53 -0700</bug_when>
    <thetext>I&apos;m wrong in the first comment. This is not random; it definitely happens after compositing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581910</commentid>
    <comment_count>3</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-03-19 10:26:00 -0700</bug_when>
    <thetext>This looks sane to me, but I&apos;m not familiar with this code.  Adding people who are.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581956</commentid>
    <comment_count>4</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-19 11:12:36 -0700</bug_when>
    <thetext>I think we have to shut down WebKit::WebCompositor before we stop threading - when does that happen in DRT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581998</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-03-19 11:44:09 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I think we have to shut down WebKit::WebCompositor before we stop threading - when does that happen in DRT?

When exiting main(), we ~WebKitSupportTestEnvironment gets run, which calls webkit_support::TearDownTestEnvironment(), which calls WebKit::shutdown().  I believe that&apos;s when threading is stopped.  So, it&apos;s still after the new location of WebCompositor::shutdown().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582053</commentid>
    <comment_count>6</comment_count>
      <attachid>132574</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-19 12:29:36 -0700</bug_when>
    <thetext>Comment on attachment 132574
Patch

OK, that should be fine then!  We definitely should be shutting down after all WebViews are gone</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582076</commentid>
    <comment_count>7</comment_count>
      <attachid>132574</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-19 12:46:23 -0700</bug_when>
    <thetext>Comment on attachment 132574
Patch

Clearing flags on attachment: 132574

Committed r111220: &lt;http://trac.webkit.org/changeset/111220&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582077</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-19 12:46:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582772</commentid>
    <comment_count>9</comment_count>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2012-03-19 22:43:15 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; I think we have to shut down WebKit::WebCompositor before we stop threading - when does that happen in DRT?
&gt; 
&gt; When exiting main(), we ~WebKitSupportTestEnvironment gets run, which calls webkit_support::TearDownTestEnvironment(), which calls WebKit::shutdown().  I believe that&apos;s when threading is stopped.  So, it&apos;s still after the new location of WebCompositor::shutdown().

Thanks for your explanation, Tony. I found it kind of tricky to load a blank page in ~WebViewHost, which is called by ~TestShell. Howerver, loading a page results in some function calls eventually going back into TestShell again, which is at the state of destruction then. This is kind of dangerous to me.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132574</attachid>
            <date>2012-03-19 07:08:11 -0700</date>
            <delta_ts>2012-03-19 12:46:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81504-20120319220809.patch</filename>
            <type>text/plain</type>
            <size>2332</size>
            <attacher name="Hao Zheng">zhenghao</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwOTQ1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWJkMTlkNjNjNDUyYmE5MmViM2QzNjAzNzY0NzAzY2E0
YWM2YmQyMC4uZTQyZjhiMzUyM2E4Zjc0NzhmNWYwNTUyMzc0NGI4MWEzZmI5NWRhMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDEyLTAzLTE5ICBIYW8gWmhlbmcgIDx6aGVuZ2hhb0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW2Nocm9taXVtXSBEUlQgY3Jhc2hlcyBhdCBzaHV0ZG93bi4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNTA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29tcG9zaXRvciBtdXN0IGJlIGRl
c3Ryb3llZCBhZnRlciBXZWJWaWV3IGlzIHByb3Blcmx5IGRlc3Ryb3llZCwKKyAgICAgICAgb3Ig
c29tZSBjb21wb3NpdG9yIG9iamVjdHMgbGlrZSBDQ0xheWVyVHJlZUhvc3QgbWF5IG5vdCBiZSBk
ZXN0cm95ZWQuCisgICAgICAgIEhvd2V2ZXIsIGl0IGlzIHJlYWxseSBoYXJkIHRvIG1ha2UgdGhl
IGRlc3RydWN0aW9uIG9yZGVyIGNvcnJlY3QKKyAgICAgICAgZXhwbGljaXRseSBpbiB+VGVzdFNo
ZWxsLiBTbyBtb3ZlIGl0IG91dCB0byBEdW1wUmVuZGVyVHJlZS4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKG1haW4pOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHA6CisgICAgICAg
IChUZXN0U2hlbGw6On5UZXN0U2hlbGwpOgorCiAyMDEyLTAzLTE1ICBBZGFtIEJhcnRoICA8YWJh
cnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVGhlIGNvbW1pdC1xdWV1ZSBzaG91bGQgZmFzdC10
cmFjayBwYXRjaGVzIHRoYXQgaGF2ZSBhbHJlYWR5IHBhc3NlZCB0aGUgdGVzdGluZyBFV1MgYm90
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRy
ZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3Bw
CmluZGV4IGFhYzM1NzYzNmMyZjk3NTcwZWFiM2MxMjc3MDJmNDg5MWIwZmI2Y2QuLmU0YzRjYjFl
YWVkN2NjNTU3ZjE5ODI5YmE1YzQ4MDUzZTk1YjcwYjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgIlRlc3RTaGVsbC5oIgorI2luY2x1ZGUgIldl
YkNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5o
IgogI2luY2x1ZGUgPHY4L2luY2x1ZGUvdjgtdGVzdGluZy5oPgogI2luY2x1ZGUgPHY4L2luY2x1
ZGUvdjguaD4KQEAgLTI4Niw1ICsyODcsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJn
dltdKQogICAgICAgICBzaGVsbC5yZXNldFRlc3RDb250cm9sbGVyKCk7CiAgICAgfQogCisgICAg
Ly8gU2h1dGRvd24gV2ViQ29tcG9zaXRvciBhZnRlciBUZXN0U2hlbGwgaXMgZGVzdHJ1Y3RlZCBw
cm9wZXJseS4KKyAgICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNodXRkb3duKCk7CisKICAgICBy
ZXR1cm4gRVhJVF9TVUNDRVNTOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFNoZWxsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RTaGVsbC5jcHAKaW5kZXggMDllODY3NjUxMmFjNTNlMDk4ZTFkZDk5NTMyMGUzMGYxOWFiYWI4
Ny4uZWFjYTJiYjE1MzY2MGYxNjM4ZDI1MTRlYjk0MmEzNGNjMjYzYWUzZiAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCkBAIC0xNzYsOCArMTc2LDYgQEAg
VGVzdFNoZWxsOjp+VGVzdFNoZWxsKCkKIAogICAgIC8vIERlc3Ryb3kgdGhlIFdlYlZpZXcgYmVm
b3JlIGl0cyBXZWJWaWV3SG9zdC4KICAgICBtX2RydERldlRvb2xzQWdlbnQtPnNldFdlYlZpZXco
MCk7Ci0KLSAgICBXZWJDb21wb3NpdG9yOjpzaHV0ZG93bigpOwogfQogCiB2b2lkIFRlc3RTaGVs
bDo6Y3JlYXRlRFJURGV2VG9vbHNDbGllbnQoRFJURGV2VG9vbHNBZ2VudCogYWdlbnQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>