Bug 161494 - [GTK][STABLE] REGRESSION(r202939): page loads forever when load fails
Summary: [GTK][STABLE] REGRESSION(r202939): page loads forever when load fails
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: Other
Hardware: PC Linux
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-09-01 11:04 PDT by Michael Catanzaro
Modified: 2016-09-05 02:48 PDT (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Catanzaro 2016-09-01 11:04:46 PDT
WebKitGTK+ 2.12.4 loads forever when attempting to display a customer's internal page. It's a regression from 2.12.3 and I'm bisecting it on the 2.4 branch now.

When running with a debug build, instead of loading forever, we hit this assertion:

ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key)
../../Source/WTF/wtf/HashTable.h(585) : void WTF::HashTable<Key, Value, Extractor, HashFunctions, Traits, KeyTraits>::checkKey(const T&) [with HashTranslator = WTF::IdentityHashTranslator<WTF::IntHash<long unsigned int> >; T = long unsigned int; Key = long unsigned int; Value = WTF::KeyValuePair<long unsigned int, WTF::RefPtr<WebKit::WebResourceLoader> >; Extractor = WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<long unsigned int, WTF::RefPtr<WebKit::WebResourceLoader> > >; HashFunctions = WTF::IntHash<long unsigned int>; Traits = WTF::HashMap<long unsigned int, WTF::RefPtr<WebKit::WebResourceLoader> >::KeyValuePairTraits; KeyTraits = WTF::HashTraits<long unsigned int>]
1   0x7f429f149371 /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(WTFCrash+0x1e) [0x7f429f149371]
2   0x7f42a47e173c /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3WTF9HashTableImNS_12KeyValuePairImNS_6RefPtrIN6WebKit17WebResourceLoaderEEEEENS_24KeyValuePairKeyExtractorIS6_EENS_7IntHashImEENS_7HashMapImS5_SA_NS_10HashTraitsImEENSC_IS5_EEE18KeyValuePairTraitsESD_E8checkKeyINS_22IdentityHashTranslatorISA_EEmEEvRKT0_+0x54) [0x7f42a47e173c]
3   0x7f42a47e1629 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3WTF9HashTableImNS_12KeyValuePairImNS_6RefPtrIN6WebKit17WebResourceLoaderEEEEENS_24KeyValuePairKeyExtractorIS6_EENS_7IntHashImEENS_7HashMapImS5_SA_NS_10HashTraitsImEENSC_IS5_EEE18KeyValuePairTraitsESD_E12inlineLookupINS_22IdentityHashTranslatorISA_EEmEEPS6_RKT0_+0x23) [0x7f42a47e1629]
4   0x7f42a47e15f1 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3WTF9HashTableImNS_12KeyValuePairImNS_6RefPtrIN6WebKit17WebResourceLoaderEEEEENS_24KeyValuePairKeyExtractorIS6_EENS_7IntHashImEENS_7HashMapImS5_SA_NS_10HashTraitsImEENSC_IS5_EEE18KeyValuePairTraitsESD_E6lookupINS_22IdentityHashTranslatorISA_EEmEEPS6_RKT0_+0x23) [0x7f42a47e15f1]
5   0x7f42a47e1599 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3WTF9HashTableImNS_12KeyValuePairImNS_6RefPtrIN6WebKit17WebResourceLoaderEEEEENS_24KeyValuePairKeyExtractorIS6_EENS_7IntHashImEENS_7HashMapImS5_SA_NS_10HashTraitsImEENSC_IS5_EEE18KeyValuePairTraitsESD_E6lookupERKm+0x23) [0x7f42a47e1599]
6   0x7f42a47e14b3 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZNK3WTF7HashMapImNS_6RefPtrIN6WebKit17WebResourceLoaderEEENS_7IntHashImEENS_10HashTraitsImEENS7_IS4_EEE3getERKm+0x23) [0x7f42a47e14b3]
7   0x7f42a47e148d /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZNK6WebKit17WebLoaderStrategy30webResourceLoaderForIdentifierEm+0x27) [0x7f42a47e148d]
8   0x7f42a47e120a /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit24NetworkProcessConnection17didReceiveMessageERN3IPC10ConnectionERNS1_14MessageDecoderE+0x74) [0x7f42a47e120a]
9   0x7f42a453fde8 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC10Connection15dispatchMessageERNS_14MessageDecoderE+0x3a) [0x7f42a453fde8]
10  0x7f42a453ff4c /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC10Connection15dispatchMessageESt10unique_ptrINS_14MessageDecoderESt14default_deleteIS2_EE+0x160) [0x7f42a453ff4c]
11  0x7f42a454012a /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC10Connection18dispatchOneMessageEv+0xc8) [0x7f42a454012a]
12  0x7f42a453fc32 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(+0x42fdc32) [0x7f42a453fc32]
13  0x7f42a4541436 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(+0x42ff436) [0x7f42a4541436]
14  0x7f42a4514ee2 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZNKSt8functionIFvvEEclEv+0x32) [0x7f42a4514ee2]
15  0x7f429f163d61 /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(_ZN3WTF7RunLoop11performWorkEv+0xdb) [0x7f429f163d61]
16  0x7f429f19c85e /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(+0x1f2285e) [0x7f429f19c85e]
17  0x7f429f19c882 /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(+0x1f22882) [0x7f429f19c882]
18  0x7f429f19c7fe /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(+0x1f227fe) [0x7f429f19c7fe]
19  0x7f429f19c82d /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(+0x1f2282d) [0x7f429f19c82d]
20  0x7f42990543ed /home/mcatanzaro/src/jhbuild/install/lib/libglib-2.0.so.0(+0x493ed) [0x7f42990543ed]
21  0x7f4299056d31 /home/mcatanzaro/src/jhbuild/install/lib/libglib-2.0.so.0(g_main_context_dispatch+0x32) [0x7f4299056d31]
22  0x7f4299056e8b /home/mcatanzaro/src/jhbuild/install/lib/libglib-2.0.so.0(+0x4be8b) [0x7f4299056e8b]
23  0x7f429905723f /home/mcatanzaro/src/jhbuild/install/lib/libglib-2.0.so.0(g_main_loop_run+0x18c) [0x7f429905723f]
24  0x7f429f19cdde /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(_ZN3WTF7RunLoop3runEv+0xac) [0x7f429f19cdde]
25  0x7f42a4a40ac9 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit16ChildProcessMainINS_10WebProcessENS_14WebProcessMainEEEiiPPc+0x82) [0x7f42a4a40ac9]
26  0x7f42a4a40930 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(WebProcessMainUnix+0x20) [0x7f42a4a40930]
27  0x400c0a /home/mcatanzaro/src/jhbuild/install/libexec/webkit2gtk-4.0/WebKitWebProcess(main+0x34) [0x400c0a]
28  0x7f429449f731 /lib64/libc.so.6(__libc_start_main+0xf1) [0x7f429449f731]
29  0x400b09 /home/mcatanzaro/src/jhbuild/install/libexec/webkit2gtk-4.0/WebKitWebProcess(_start+0x29) [0x400b09]

That's not a very good backtrace. I'll try to get a better one, but I have to do it manually as coredumpctl is broken in Fedora  ATM.

Another user is complaining that ubuntu.com loads forever. I couldn't reproduce the issue on that page, though.
Comment 1 Michael Catanzaro 2016-09-01 11:08:33 PDT
(In reply to comment #0)
> WebKitGTK+ 2.12.4 loads forever when attempting to display a customer's
> internal page. It's a regression from 2.12.3 and I'm bisecting it on the 2.4
> branch now.

Er, I meant "2.12 branch" of course.
Comment 2 Michael Catanzaro 2016-09-01 11:23:03 PDT
(In reply to comment #0)
> Another user is complaining that ubuntu.com loads forever. I couldn't
> reproduce the issue on that page, though.

Confirmed this as a 2.12.4 regression as well, so it's probably the same issue.
Comment 3 Michael Catanzaro 2016-09-01 12:59:01 PDT
d0896358a290ab2f9ab11b6b4d788d62fc738ac4 is the first bad commit
commit d0896358a290ab2f9ab11b6b4d788d62fc738ac4
Author: carlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Aug 23 11:16:02 2016 +0000

    Merge r202939 - Fix crash when sending failure message to closed WebProcess
    https://bugs.webkit.org/show_bug.cgi?id=159526
    <rdar://problem/26767037>
    
    Reviewed by Brady Eidson.
    
    * NetworkProcess/NetworkResourceLoader.cpp:
    (WebKit::NetworkResourceLoader::didFailLoading):
    Check to see if there is a connection before using it to send a message.
    Sometimes it was null.
    I think this could be tested if we had real network loading from TestWebKitAPI
    by cancelling slow loads and closing WebProcesses around the same time, but no such infrastructure exists yet.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-﷒1﷓ 268f45cc-cd09-0410-ab3c-d52691b4dbfc

:040000 040000 205aecbb5ee69adfdaa7e995f9c18cb4ed156f4d 54738d451ff116c923e99e6258635120ed1438b2 M	Source
Comment 4 Michael Catanzaro 2016-09-01 13:20:48 PDT
I talked to Alex Christensen. We need to backport r202940 to the 2.12 branch.
Comment 5 Michael Catanzaro 2016-09-01 14:15:15 PDT
Turns out it's an page with a TLS certificate error (i.e. the ubuntu.com issue is something different). I thought I tested this yesterday to rule that out, but I must have messed up my testing somehow.
Comment 6 Michael Catanzaro 2016-09-01 19:41:48 PDT
(In reply to comment #5)
> Turns out it's an page with a TLS certificate error

(any page with any network error)
Comment 7 Carlos Garcia Campos 2016-09-01 22:22:24 PDT
Oh, I'm sorry, I usually check the revision number is not mentioned in other commits before merging it to ensure it hasn't been rolled out or to catch follow ups, but it seems I made this release too quickly. I'll fix it and make a new release.
Comment 8 Michael Catanzaro 2016-09-03 07:40:28 PDT
Hm, it's not just when load fails. It also broke patch preview with 'webkit-patch upload'. (It's fixed by r202940.)
Comment 9 Michael Catanzaro 2016-09-03 07:41:54 PDT
Also it's worth mentioning that Alex said this broke hundreds of tests. We didn't notice because bots don't run on the stable branch. It would probably be worth running tests manually before making a release and looking for large unexpected changes; I know that would take a while, but that would have caught this.
Comment 10 Carlos Garcia Campos 2016-09-05 02:48:56 PDT
Merged in r205432