<?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>166986</bug_id>
          
          <creation_ts>2017-01-12 14:02:14 -0800</creation_ts>
          <short_desc>ASSERTION FAILED: !m_bodyLoader</short_desc>
          <delta_ts>2017-02-13 16:17:53 -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>WebCore Misc.</component>
          <version>WebKit 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="Keith Rollin">krollin</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>krollin</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1266276</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2017-01-12 14:02:14 -0800</bug_when>
    <thetext>This assertion occasionally triggers when running a new PLT mechanism that&apos;s under development. As part of this mechanism, a number of pages are being loaded in sequence, including:

...
http://www.Facebook.com
http://www.Fc2.com
http://www.Github.com
http://www.Globo.com
http://www.Godaddy.com
http://www.Google.com
http://www.Huffingtonpost.com
http://www.Imdb.com
...

I find that the ASSERT usually triggers when loading huffingtonpost.com, but I have at least one instance of globo.com crashing. Since the ASSERT is related to cancelling a loader, it&apos;s possible that the issue is with the previous page (github.com or google.com).

The backtrace of the ASSERT is:

ASSERTION FAILED: !m_bodyLoader
/Volumes/Data/dev/WebKit/branches/record_playback/OpenSource/Source/WebCore/Modules/fetch/FetchResponse.cpp(340) : virtual void WebCore::FetchResponse::stop()
1   0x114b73d5d WTFCrash
2   0x117d41e8c WebCore::FetchResponse::stop()
3   0x11980e58e WebCore::ScriptExecutionContext::stopActiveDOMObjects()
4   0x117b0f2a5 WebCore::Document::stopActiveDOMObjects()
5   0x117b0efb5 WebCore::Document::prepareForDestruction()
6   0x1176512b9 WebCore::CachedFrame::destroy()
7   0x117662379 WebCore::CachedPage::~CachedPage()
8   0x117662465 WebCore::CachedPage::~CachedPage()
9   0x11928f63c WebCore::PageCache::prune(WebCore::PruningReason)
10  0x1192902bf WebCore::PageCache::addIfCacheable(WebCore::HistoryItem&amp;, WebCore::Page*)
11  0x117ebf487 WebCore::FrameLoader::commitProvisionalLoad()
12  0x117b8c47c WebCore::DocumentLoader::commitIfReady()
13  0x117b8fe9c WebCore::DocumentLoader::commitLoad(char const*, int)
14  0x117b8fe47 WebCore::DocumentLoader::dataReceived(char const*, int)
15  0x117b90554 WebCore::DocumentLoader::dataReceived(WebCore::CachedResource&amp;, char const*, int)
16  0x117662d88 WebCore::CachedRawResource::notifyClientsDataWasReceived(char const*, unsigned int)
17  0x117662c12 WebCore::CachedRawResource::addDataBuffer(WebCore::SharedBuffer&amp;)
18  0x119b09c87 WebCore::SubresourceLoader::didReceiveDataOrBuffer(char const*, int, WTF::RefPtr&lt;WebCore::SharedBuffer&gt;&amp;&amp;, long long, WebCore::DataPayloadType)
19  0x119b09a92 WebCore::SubresourceLoader::didReceiveData(char const*, unsigned int, long long, WebCore::DataPayloadType)
20  0x10ddbb998 WebKit::WebResourceLoader::didReceiveData(IPC::DataReference const&amp;, long long)
21  0x10ddc029c void IPC::callMemberFunctionImpl&lt;WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(IPC::DataReference const&amp;, long long), std::__1::tuple&lt;IPC::DataReference, long long&gt;, 0ul, 1ul&gt;(WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(IPC::DataReference const&amp;, long long), std::__1::tuple&lt;IPC::DataReference, long long&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul&gt;)
22  0x10ddc0078 void IPC::callMemberFunction&lt;WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(IPC::DataReference const&amp;, long long), std::__1::tuple&lt;IPC::DataReference, long long&gt;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul&gt; &gt;(std::__1::tuple&lt;IPC::DataReference, long long&gt;&amp;&amp;, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(IPC::DataReference const&amp;, long long))
23  0x10ddbf69d void IPC::handleMessage&lt;Messages::WebResourceLoader::DidReceiveData, WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(IPC::DataReference const&amp;, long long)&gt;(IPC::Decoder&amp;, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(IPC::DataReference const&amp;, long long))
24  0x10ddbeff6 WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
25  0x10d65bd5d WebKit::NetworkProcessConnection::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
26  0x10d3e6783 IPC::Connection::dispatchMessage(IPC::Decoder&amp;)
27  0x10d3dbd28 IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)
28  0x10d3e6d80 IPC::Connection::dispatchOneMessage()
29  0x10d3ffa0d IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_14::operator()()
30  0x10d3ff969 WTF::Function&lt;void ()&gt;::CallableWrapper&lt;IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_14&gt;::call()
31  0x114ba06de WTF::Function&lt;void ()&gt;::operator()() const

The ASSERT was added in commit 51223ca642f79c170c43408c3c57b22ba73ec220, svn r199641, which made this change:

void FetchResponse::stop()
{
+    RefPtr&lt;FetchResponse&gt; protect(this);
    FetchBodyOwner::stop();
    if (m_bodyLoader) {
-        RefPtr&lt;FetchResponse&gt; protect(this);
        m_bodyLoader-&gt;stop();
-        m_bodyLoader = Nullopt;
+        ASSERT(!m_bodyLoader);
    }
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266285</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-01-12 14:20:23 -0800</bug_when>
    <thetext>Thanks for the information.
This ASSERT is important to ensure that m_bodyLoader is nullified and we unset pending activity correctly.

I think some refactoring of the code might help though.
For instance, it might be clearer to  set/unset pending activities in body loader constructor/destructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268264</commentid>
    <comment_count>2</comment_count>
      <attachid>299289</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-01-19 17:13:53 -0800</bug_when>
    <thetext>Created attachment 299289
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268270</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-01-19 17:29:55 -0800</bug_when>
    <thetext>Keith, would you be able to test this patch in your environment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268282</commentid>
    <comment_count>4</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2017-01-19 17:48:13 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Keith, would you be able to test this patch in your environment?

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268301</commentid>
    <comment_count>5</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2017-01-19 18:51:28 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Keith, would you be able to test this patch in your environment?
&gt; 
&gt; Sure.

Looks good. No crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276430</commentid>
    <comment_count>6</comment_count>
      <attachid>299289</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-13 16:17:48 -0800</bug_when>
    <thetext>Comment on attachment 299289
Patch

Clearing flags on attachment: 299289

Committed r212257: &lt;http://trac.webkit.org/changeset/212257&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276431</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-13 16:17:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299289</attachid>
            <date>2017-01-19 17:13:53 -0800</date>
            <delta_ts>2017-02-13 16:17:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166986-20170119171201.patch</filename>
            <type>text/plain</type>
            <size>3962</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU0NDcwNjE1YzdkMGEy
NjdhYzBjNDAwNWM0MmU2NjNmYjgzOTQ0Zi4uNGVhZmI2Yzg3MjQ3ZDVjNWYwYmQ1M2VhMzQ5MmIw
NDI2Y2I2ZDNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE3LTAxLTE5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBU1NFUlRJT04gRkFJTEVE
OiAhbV9ib2R5TG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjY5ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZWZhY3RvcmluZyB0byBtYWtlIHRoZSB1bnNldC9zZXQgcGVuZGluZyBhY3Rpdml0
eSBwYXJ0IG9mIGJvZHkgbG9hZGVyLgorICAgICAgICBUaGlzIGFsbG93cyBlbnN1cmluZyB0byBu
b3QgZm9yZ2V0IHRvIGRvIHRoYXQgYnkgc2ltcGx5IGRlbGV0aW5nIHRoZSBib2R5IGxvYWRlci4K
KworICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJl
c3BvbnNlOjpCb2R5TG9hZGVyOjpkaWRTdWNjZWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
UmVzcG9uc2U6OkJvZHlMb2FkZXI6OmRpZEZhaWwpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hS
ZXNwb25zZTo6Qm9keUxvYWRlcjo6Qm9keUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpGZXRj
aFJlc3BvbnNlOjpCb2R5TG9hZGVyOjp+Qm9keUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpG
ZXRjaFJlc3BvbnNlOjpzdG9wKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9u
c2UuaDoKKwogMjAxNy0wMS0xNyAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAK
ICAgICAgICAgS2lsbCB0aGUgcHJlc2VudGF0aW9uIGF0dHJpYnV0ZSBjYWNoZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCmluZGV4IDM1ZmIwOGJj
M2MwYTAxNTE1YTVmNjgzNTVlYTU4OWFmN2E2MTVlNjguLjdmOGMzMTM4ZGFkZDM2ZmNjMmFkMmM3
NzJjMTY0N2YwODliNjkzNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hSZXNwb25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlc3BvbnNlLmNwcApAQCAtMTAyLDkgKzEwMiw2IEBAIHZvaWQgRmV0Y2hSZXNwb25zZTo6
ZmV0Y2goU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmV0Y2hSZXF1ZXN0JiByZXF1
ZXN0CiB7CiAgICAgYXV0byByZXNwb25zZSA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXNwb25zZShj
b250ZXh0LCBGZXRjaEJvZHk6OmxvYWRpbmdCb2R5KCksIEZldGNoSGVhZGVyczo6Y3JlYXRlKEZl
dGNoSGVhZGVyczo6R3VhcmQ6OkltbXV0YWJsZSksIHsgfSkpOwogCi0gICAgLy8gU2V0dGluZyBw
ZW5kaW5nIGFjdGl2aXR5IHVudGlsIEJvZHlMb2FkZXIgZGlkRmFpbCBvciBkaWRTdWNjZWVkIGNh
bGxiYWNrIGlzIGNhbGxlZC4KLSAgICByZXNwb25zZS0+c2V0UGVuZGluZ0FjdGl2aXR5KHJlc3Bv
bnNlLnB0cigpKTsKLQogICAgIHJlc3BvbnNlLT5tX2JvZHlMb2FkZXIuZW1wbGFjZShyZXNwb25z
ZS5nZXQoKSwgV1RGTW92ZShwcm9taXNlKSk7CiAgICAgaWYgKCFyZXNwb25zZS0+bV9ib2R5TG9h
ZGVyLT5zdGFydChjb250ZXh0LCByZXF1ZXN0KSkKICAgICAgICAgcmVzcG9uc2UtPm1fYm9keUxv
YWRlciA9IHN0ZDo6bnVsbG9wdDsKQEAgLTEyNyw5ICsxMjQsMTAgQEAgdm9pZCBGZXRjaFJlc3Bv
bnNlOjpCb2R5TG9hZGVyOjpkaWRTdWNjZWVkKCkKICAgICAgICAgbV9yZXNwb25zZS5jbG9zZVN0
cmVhbSgpOwogI2VuZGlmCiAKLSAgICBpZiAobV9sb2FkZXItPmlzU3RhcnRlZCgpKQorICAgIGlm
IChtX2xvYWRlci0+aXNTdGFydGVkKCkpIHsKKyAgICAgICAgUmVmPEZldGNoUmVzcG9uc2U+IHBy
b3RlY3RvcihtX3Jlc3BvbnNlKTsKICAgICAgICAgbV9yZXNwb25zZS5tX2JvZHlMb2FkZXIgPSBz
dGQ6Om51bGxvcHQ7Ci0gICAgbV9yZXNwb25zZS51bnNldFBlbmRpbmdBY3Rpdml0eSgmbV9yZXNw
b25zZSk7CisgICAgfQogfQogCiB2b2lkIEZldGNoUmVzcG9uc2U6OkJvZHlMb2FkZXI6OmRpZEZh
aWwoKQpAQCAtMTQ3LDE2ICsxNDUsMjIgQEAgdm9pZCBGZXRjaFJlc3BvbnNlOjpCb2R5TG9hZGVy
OjpkaWRGYWlsKCkKICNlbmRpZgogCiAgICAgLy8gQ2hlY2sgd2hldGhlciBkaWRGYWlsIGlzIGNh
bGxlZCBhcyBwYXJ0IG9mIEZldGNoTG9hZGVyOjpzdGFydC4KLSAgICBpZiAobV9sb2FkZXItPmlz
U3RhcnRlZCgpKQorICAgIGlmIChtX2xvYWRlci0+aXNTdGFydGVkKCkpIHsKKyAgICAgICAgUmVm
PEZldGNoUmVzcG9uc2U+IHByb3RlY3RvcihtX3Jlc3BvbnNlKTsKICAgICAgICAgbV9yZXNwb25z
ZS5tX2JvZHlMb2FkZXIgPSBzdGQ6Om51bGxvcHQ7Ci0KLSAgICBtX3Jlc3BvbnNlLnVuc2V0UGVu
ZGluZ0FjdGl2aXR5KCZtX3Jlc3BvbnNlKTsKKyAgICB9CiB9CiAKIEZldGNoUmVzcG9uc2U6OkJv
ZHlMb2FkZXI6OkJvZHlMb2FkZXIoRmV0Y2hSZXNwb25zZSYgcmVzcG9uc2UsIEZldGNoUHJvbWlz
ZSYmIHByb21pc2UpCiAgICAgOiBtX3Jlc3BvbnNlKHJlc3BvbnNlKQogICAgICwgbV9wcm9taXNl
KFdURk1vdmUocHJvbWlzZSkpCiB7CisgICAgbV9yZXNwb25zZS5zZXRQZW5kaW5nQWN0aXZpdHko
Jm1fcmVzcG9uc2UpOworfQorCitGZXRjaFJlc3BvbnNlOjpCb2R5TG9hZGVyOjp+Qm9keUxvYWRl
cigpCit7CisgICAgbV9yZXNwb25zZS51bnNldFBlbmRpbmdBY3Rpdml0eSgmbV9yZXNwb25zZSk7
CiB9CiAKIHZvaWQgRmV0Y2hSZXNwb25zZTo6Qm9keUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc291cmNlUmVzcG9uc2UpCkBAIC0zMzcsNyArMzQx
LDcgQEAgdm9pZCBGZXRjaFJlc3BvbnNlOjpzdG9wKCkKICAgICBGZXRjaEJvZHlPd25lcjo6c3Rv
cCgpOwogICAgIGlmIChtX2JvZHlMb2FkZXIpIHsKICAgICAgICAgbV9ib2R5TG9hZGVyLT5zdG9w
KCk7Ci0gICAgICAgIEFTU0VSVCghbV9ib2R5TG9hZGVyKTsKKyAgICAgICAgbV9ib2R5TG9hZGVy
ID0gc3RkOjpudWxsb3B0OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoUmVzcG9uc2UuaAppbmRleCA2ODhkODY5N2U5ODcxZDI0MjJmMzA2YTg2ZjE0NWUy
ZTYzNDk2MWM1Li5iNGQ4NGY5ZTc3NWUxNjc5NGNkYWZhYTliMzFmM2JlM2EyOGZkNzVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaApAQCAtMTAwLDYg
KzEwMCw3IEBAIHByaXZhdGU6CiAgICAgY2xhc3MgQm9keUxvYWRlciBmaW5hbCA6IHB1YmxpYyBG
ZXRjaExvYWRlckNsaWVudCB7CiAgICAgcHVibGljOgogICAgICAgICBCb2R5TG9hZGVyKEZldGNo
UmVzcG9uc2UmLCBGZXRjaFByb21pc2UmJik7CisgICAgICAgIH5Cb2R5TG9hZGVyKCk7CiAKICAg
ICAgICAgYm9vbCBzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgRmV0Y2hSZXF1
ZXN0Jik7CiAgICAgICAgIHZvaWQgc3RvcCgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>