Title: [132950] trunk/Source/WebKit2
Revision
132950
Author
[email protected]
Date
2012-10-30 15:44:43 -0700 (Tue, 30 Oct 2012)

Log Message

Crash in WebProcess at com.apple.WebCore: WebCore::ResourceLoader::start
<rdar://problem/12596761> and https://webkit.org/b/100792

Reviewed by Tim Hatcher.

In release builds we can sometimes end up with a null ResourceLoader due to a race condition
with the WebProcess telling the NetworkProcess to remove a resource load at the very same time
the NetworkProcess is about to start that load.

Until we can resolve that race condition an early return will be necessary.

* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::startResourceLoad):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (132949 => 132950)


--- trunk/Source/WebKit2/ChangeLog	2012-10-30 22:37:58 UTC (rev 132949)
+++ trunk/Source/WebKit2/ChangeLog	2012-10-30 22:44:43 UTC (rev 132950)
@@ -1,3 +1,19 @@
+2012-10-30  Brady Eidson  <[email protected]>
+
+        Crash in WebProcess at com.apple.WebCore: WebCore::ResourceLoader::start
+        <rdar://problem/12596761> and https://webkit.org/b/100792
+
+        Reviewed by Tim Hatcher.
+
+        In release builds we can sometimes end up with a null ResourceLoader due to a race condition
+        with the WebProcess telling the NetworkProcess to remove a resource load at the very same time
+        the NetworkProcess is about to start that load.
+
+        Until we can resolve that race condition an early return will be necessary.
+
+        * WebProcess/Network/WebResourceLoadScheduler.cpp:
+        (WebKit::WebResourceLoadScheduler::startResourceLoad):
+
 2012-10-30  Jesse van den Kieboom  <[email protected]>
 
         Fixed transfer annotation for default web context

Modified: trunk/Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp (132949 => 132950)


--- trunk/Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp	2012-10-30 22:37:58 UTC (rev 132949)
+++ trunk/Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp	2012-10-30 22:44:43 UTC (rev 132950)
@@ -192,7 +192,14 @@
 void WebResourceLoadScheduler::startResourceLoad(ResourceLoadIdentifier identifier)
 {
     RefPtr<ResourceLoader> loader = m_pendingResourceLoaders.take(identifier);
+    
+    // <rdar://problem/12596761> and http://webkit.org/b/100792
+    // There is a race condition where the WebProcess might tell the NetworkProcess to remove a resource load identifier
+    // at the very time the NetworkProcess is telling the WebProcess to start that particular load.
+    // We'd like to remove that race condition but it makes sense for release builds to do an early return.
     ASSERT(loader);
+    if (!loader)
+        return;
     
     LOG(Network, "(WebProcess) WebResourceLoadScheduler::startResourceLoad starting load for '%s'", loader->url().string().utf8().data());
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to