Bug 188880

Summary: Assert in NetworkBlobRegistry::unregisterBlobURL after network process had terminated
Product: WebKit Reporter: Ryosuke Niwa <rniwa>
Component: WebKit2Assignee: Ryosuke Niwa <rniwa>
Status: RESOLVED FIXED    
Severity: Normal CC: achristensen, ews-watchlist, ggaren, rniwa, ryanhaddad, saam, webkit-bug-importer, youennf
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=188911
Bug Depends on:    
Bug Blocks: 188426    
Attachments:
Description Flags
Removes the assertion
none
Removes the assertion
none
Archive of layout-test-results from ews101 for mac-sierra
none
Patch for landing none

Ryosuke Niwa
Reported 2018-08-22 22:55:25 PDT
When a network process terminates, it obviously loses track of the registered blobs. When WebContent process then tries to unregister a blob, we hit a debug assertion in NetworkBlobRegistry::unregisterBlobURL.
Attachments
Removes the assertion (8.96 KB, patch)
2018-08-22 23:01 PDT, Ryosuke Niwa
no flags
Removes the assertion (8.96 KB, patch)
2018-08-22 23:07 PDT, Ryosuke Niwa
no flags
Archive of layout-test-results from ews101 for mac-sierra (2.44 MB, application/zip)
2018-08-22 23:57 PDT, EWS Watchlist
no flags
Patch for landing (10.37 KB, patch)
2018-08-23 00:04 PDT, Ryosuke Niwa
no flags
Ryosuke Niwa
Comment 1 2018-08-22 23:01:07 PDT
Created attachment 347902 [details] Removes the assertion
EWS Watchlist
Comment 2 2018-08-22 23:03:03 PDT
Attachment 347902 [details] did not pass style-queue: ERROR: LayoutTests/ChangeLog:9: Line contains tab character. [whitespace/tab] [5] Total errors found: 1 in 7 files If any of these errors are false positives, please file a bug against check-webkit-style.
Ryosuke Niwa
Comment 3 2018-08-22 23:07:10 PDT
Created attachment 347903 [details] Removes the assertion
Saam Barati
Comment 4 2018-08-22 23:38:43 PDT
Comment on attachment 347903 [details] Removes the assertion r=me
EWS Watchlist
Comment 5 2018-08-22 23:57:10 PDT
Comment on attachment 347903 [details] Removes the assertion Attachment 347903 [details] did not pass mac-ews (mac): Output: https://webkit-queues.webkit.org/results/8954594 New failing tests: fast/files/blob-network-process-crash.html
EWS Watchlist
Comment 6 2018-08-22 23:57:12 PDT
Created attachment 347911 [details] Archive of layout-test-results from ews101 for mac-sierra The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews101 Port: mac-sierra Platform: Mac OS X 10.12.6
Ryosuke Niwa
Comment 7 2018-08-22 23:59:58 PDT
Oh oops, clearly we have to skip this test in Wk1.
Ryosuke Niwa
Comment 8 2018-08-23 00:04:13 PDT
Created attachment 347913 [details] Patch for landing
Ryosuke Niwa
Comment 9 2018-08-23 00:04:25 PDT
Comment on attachment 347913 [details] Patch for landing Waiting for EWS
EWS Watchlist
Comment 10 2018-08-23 00:06:45 PDT
Attachment 347913 [details] did not pass style-queue: ERROR: LayoutTests/platform/wk2/TestExpectations:744: expecting "[", "#", or end of line instead of "Pass" [test/expectations] [5] ERROR: LayoutTests/platform/wk2/TestExpectations:744: Path does not exist. [test/expectations] [5] ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/wk2/TestExpectations:744: expecting "[", "#", or end of line instead of "Pass" [test/expectations] [5] ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/wk2/TestExpectations:744: Path does not exist. [test/expectations] [5] Total errors found: 4 in 9 files If any of these errors are false positives, please file a bug against check-webkit-style.
Alex Christensen
Comment 11 2018-08-23 10:15:31 PDT
Comment on attachment 347913 [details] Patch for landing View in context: https://bugs.webkit.org/attachment.cgi?id=347913&action=review > LayoutTests/TestExpectations:393 > +# testRunner.terminateNetworkProcess() only works in WebKit2 > +fast/files/blob-network-process-crash.html [ Skip ] We could've just put if (testRunner.terminateNetworkProcess) instead of this.
Ryosuke Niwa
Comment 12 2018-08-23 13:49:29 PDT
(In reply to Alex Christensen from comment #11) > Comment on attachment 347913 [details] > Patch for landing > > View in context: > https://bugs.webkit.org/attachment.cgi?id=347913&action=review > > > LayoutTests/TestExpectations:393 > > +# testRunner.terminateNetworkProcess() only works in WebKit2 > > +fast/files/blob-network-process-crash.html [ Skip ] > > We could've just put if (testRunner.terminateNetworkProcess) instead of this. But then the test doesn't do anything useful.
Ryosuke Niwa
Comment 13 2018-08-23 13:49:54 PDT
(In reply to Ryosuke Niwa from comment #12) > (In reply to Alex Christensen from comment #11) > > Comment on attachment 347913 [details] > > Patch for landing > > > > View in context: > > https://bugs.webkit.org/attachment.cgi?id=347913&action=review > > > > > LayoutTests/TestExpectations:393 > > > +# testRunner.terminateNetworkProcess() only works in WebKit2 > > > +fast/files/blob-network-process-crash.html [ Skip ] > > > > We could've just put if (testRunner.terminateNetworkProcess) instead of this. > > But then the test doesn't do anything useful. That is, since this test isn't useful in DRT, there is no point in running it there.
Ryosuke Niwa
Comment 14 2018-08-23 13:51:22 PDT
Radar WebKit Bug Importer
Comment 15 2018-08-23 13:52:19 PDT
Ryan Haddad
Comment 16 2018-08-23 16:02:53 PDT
The layout test added with this change is timing out on the bots: https://build.webkit.org/results/Apple%20High%20Sierra%20Release%20WK2%20(Tests)/r235245%20(6350)/results.html https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Ffiles%2Fblob-network-process-crash.html --- /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/fast/files/blob-network-process-crash-expected.txt +++ /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/fast/files/blob-network-process-crash-actual.txt @@ -1,2 +1,6 @@ -This tests unregistering a Blob object after the network process to which it was registered crashed. -WebKit should not hit a debug assertion in the network process. +CONSOLE MESSAGE: Unhandled Promise Rejection: TypeError: WebKit encountered an internal error +#PID UNRESPONSIVE - com.apple.WebKit.WebContent.Development (pid 38955) +FAIL: Timed out waiting for notifyDone to be called + +#EOF +#EOF
Ryosuke Niwa
Comment 17 2018-08-23 16:59:17 PDT
Investigating...
Ryosuke Niwa
Comment 18 2018-08-23 17:44:08 PDT
This is super weird. Timer sometimes never fires in this test. Tracking this bug in https://bugs.webkit.org/show_bug.cgi?id=188911. Temporarily worked around the issue in <https://trac.webkit.org/changeset/235264 to unflake the test.
Note You need to log in before you can comment on or make changes to this bug.