Bug 125515

Summary: [WK2] [SOUP] Asserts in DocumentLoader::dataReceived() if the network process is enabled
Product: WebKit Reporter: Alberto Garcia <berto>
Component: WebKit2Assignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: cgarcia
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 108832    

Description Alberto Garcia 2013-12-10 07:28:45 PST
Here's the backtrace:

ASSERTION FAILED: !m_response.isNull()
../../Source/WebCore/loader/DocumentLoader.cpp(819) : virtual void WebCore::DocumentLoader::dataReceived(WebCore::CachedResource*, const char*, int)
1   0x7fef70de3014 /home/berto/devel/WebKit/build/.libs/libjavascriptcoregtk-3.0.so.0(WTFCrash+0x1e) [0x7fef70de3014]
2   0x7fef6be911af /home/berto/devel/WebKit/build/.libs/libwebkit2gtk-3.0.so.25(_ZN7WebCore14DocumentLoader12dataReceivedEPNS_14CachedResourceEPKci+0xe9) [0x7fef6be911af]
3   0x7fef6be6ff87 /home/berto/devel/WebKit/build/.libs/libwebkit2gtk-3.0.so.25(_ZN7WebCore17CachedRawResource28notifyClientsDataWasReceivedEPKcj+0x79) [0x7fef6be6ff87]
4   0x7fef6be6fd1c /home/berto/devel/WebKit/build/.libs/libwebkit2gtk-3.0.so.25(_ZN7WebCore17CachedRawResource13addDataBufferEPNS_14ResourceBufferE+0xce) [0x7fef6be6fd1c]
5   0x7fef6bef4c79 /home/berto/devel/WebKit/build/.libs/libwebkit2gtk-3.0.so.25(_ZN7WebCore17SubresourceLoader22didReceiveDataOrBufferEPKciN3WTF10PassRefPtrINS_12SharedBufferEEExNS_15DataPayloadTypeE+0x1f1) [0x7fef6bef4c79]
6   0x7fef6bef4a17 /home/berto/devel/WebKit/build/.libs/libwebkit2gtk-3.0.so.25(_ZN7WebCore17SubresourceLoader14didReceiveDataEPKcixNS_15DataPayloadTypeE+0x51) [0x7fef6bef4a17]
7   0x7fef6b5a9ba6 /home/berto/devel/WebKit/build/.libs/libwebkit2gtk-3.0.so.25(_ZN6WebKit17WebResourceLoader14didReceiveDataERKN7CoreIPC13DataReferenceEl+0xea) [0x7fef6b5a9ba6]
[...]

The problem is that DocumentLoader::responseReceived() is never
reached.

We do handle->client()->didReceiveResponse() in ResourceHandleSoup,
but that's a no-op since NetworkResourceLoader does not implement that
method.
Comment 1 Alberto Garcia 2013-12-10 11:30:54 PST
Actually NetworkResourceLoader used to implement that but it was
renamed to didReceiveResponseAsync() in r147952.

Either way, we also assert in ResourceHandle::continueDidReceiveResponse()
via AsynchronousNetworkLoaderClient::didReceiveResponse().
Comment 2 Carlos Garcia Campos 2013-12-19 12:11:20 PST
Patch in bug https://bugs.webkit.org/show_bug.cgi?id=126006 probably fixes these asserts too.
Comment 3 Alberto Garcia 2014-01-07 06:30:12 PST
Fixed after bug 126006