<?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>33972</bug_id>
          
          <creation_ts>2010-01-21 14:39:37 -0800</creation_ts>
          <short_desc>Assertion failure in FrameLoader::checkLoadComplete()</short_desc>
          <delta_ts>2010-01-21 15:21:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>29692</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>183321</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-01-21 14:39:37 -0800</bug_when>
    <thetext>I&apos;m frequently seeing assertion failure in FrameLoader::checkLoadComplete():

    ASSERT(m_client-&gt;hasWebView());

I couldn&apos;t make a test case, but the sequence of events if roughly as follows:
- a subframe is detached (FrameLoader::detachFromParent is called);
- this results in a Frame::pageDestroyed() call (which is a lie, as Page is not destroyed);
- after a while, FrameLoader&apos;s checkTimer fires;
- since Frame::m_page is null now, m_client-&gt;hasWebView() returns false.

This doesn&apos;t always happen, because usually, Frame is destructed before checkTimer has a chance to fire, canceling the timer. But Frame destruction is not totally deterministic, and I see Frame::m_lifeSupportTimer timer sometimes keep it alive long enough for FrameLoader::checkTimer to fire.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183322</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-01-21 14:40:02 -0800</bug_when>
    <thetext>&lt;rdar://problem/7545095&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183325</commentid>
    <comment_count>2</comment_count>
      <attachid>47147</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-01-21 14:47:57 -0800</bug_when>
    <thetext>Created attachment 47147
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183345</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-01-21 15:21:24 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/53655&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47147</attachid>
            <date>2010-01-21 14:47:57 -0800</date>
            <delta_ts>2010-01-21 15:11:10 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>FuzzerAssertion.txt</filename>
            <type>text/plain</type>
            <size>1308</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MzY1MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDEtMjEgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzOTcyCisgICAgICAgIEFz
c2VydGlvbiBmYWlsdXJlIGluIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZSgpCisKKyAg
ICAgICAgSSBjb3VsZG4ndCBtYWtlIGEgdGVzdCBmb3IgdGhpcywgYWZ0ZXIgdHJ5aW5nIHJhdGhl
ciBoYXJkLiBJJ20gbm90IHRvbyB3b3JyaWVkLCBiZWNhdXNlIHN1Y2gKKyAgICAgICAgYSB0ZXN0
IGhhcyB0byBkZXBlbmQgb24gZGV0YWlscyBvZiBjdXJyZW50IGltcGxlbWVudGF0aW9uIHNvIGlu
dGltYXRlbHkgdGhhdCBpdCB3b3VsZCBiZWNvbWUKKyAgICAgICAgaW5lZmZlY3RpdmUgdmVyeSBx
dWlja2x5IGFueXdheS4KKworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6IChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMpOiBTdG9wIHRoZSBjaGVjayB0aW1lciwg
d2UKKyAgICAgICAgZG9uJ3QgbmVlZCBpdCBhZnRlciBhYm9ydGluZyBsb2FkLgorCiAyMDEwLTAx
LTIxICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCBidWlsZGZpeCBhZnRlciByNTM2NDQuCkluZGV4OiBXZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CShyZXZpc2lvbiA1MzU3MikKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjMxMCw2ICsyMzEwLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3RvcEFs
bExvYWRlcnMoRGF0YWJhcwogICAgIGlmIChtX2RvY3VtZW50TG9hZGVyKQogICAgICAgICBtX2Rv
Y3VtZW50TG9hZGVyLT5jbGVhckFyY2hpdmVSZXNvdXJjZXMoKTsKIAorICAgIG1fY2hlY2tUaW1l
ci5zdG9wKCk7CisKICAgICBtX2luU3RvcEFsbExvYWRlcnMgPSBmYWxzZTsgICAgCiB9CiAK
</data>
<flag name="review"
          id="29546"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>