Bug 56978 - REGRESSION: Infinite recursion in recursiveCheckLoadComplete()/checkLoadCompleteForThisFrame()/stopLoading()
Summary: REGRESSION: Infinite recursion in recursiveCheckLoadComplete()/checkLoadCompl...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Page Loading (show other bugs)
Version: 528+ (Nightly build)
Hardware: Mac (Intel) OS X 10.6
: P1 Normal
Assignee: Alexey Proskuryakov
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2011-03-23 17:24 PDT by Alexey Proskuryakov
Modified: 2011-03-23 17:51 PDT (History)
3 users (show)

See Also:


Attachments
proposed fix (2.27 KB, patch)
2011-03-23 17:35 PDT, Alexey Proskuryakov
no flags Details | Formatted Diff | Diff
updated patch (2.63 KB, patch)
2011-03-23 17:43 PDT, Alexey Proskuryakov
mjs: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Proskuryakov 2011-03-23 17:24:37 PDT
There are many crashes reported in WebKit2 with the following repetitive part:

FrameLoader::recursiveCheckLoadComplete()
FrameLoader::checkLoadComplete()
FrameLoader::mainReceivedCompleteError()
DocumentLoader::mainReceivedError()
DocumentLoader::stopLoading()
FrameLoader::checkLoadCompleteForThisFrame() /* provisional state */

Unfortunately, there are no steps to reproduce.

<rdar://problem/9041670>
Comment 1 Alexey Proskuryakov 2011-03-23 17:29:06 PDT
Our best guess is that this is caused by the way plug-in loads are stopped - there are asynchronous messages sent, so DocumentLoader keeps thinking that it has plug-in loads unless it receives an IPC response, which it doesn't. But I couldn't make a test.
Comment 2 Alexey Proskuryakov 2011-03-23 17:35:11 PDT
Created attachment 86725 [details]
proposed fix

This passes regression tests. It's difficult to confidently say that there are no leaks, because loader and http regression tests leak a lot already.
Comment 3 Alexey Proskuryakov 2011-03-23 17:43:19 PDT
Created attachment 86726 [details]
updated patch

Oops, lost the condition rewrite somehow.
Comment 4 Maciej Stachowiak 2011-03-23 17:44:27 PDT
Comment on attachment 86726 [details]
updated patch

r=me
Comment 5 WebKit Review Bot 2011-03-23 17:44:57 PDT
Attachment 86726 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/ChangeLog', u'Source/WebCor..." exit_code: 1

Source/WebCore/loader/FrameLoader.cpp:2401:  More than one command on the same line in if  [whitespace/parens] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 6 Alexey Proskuryakov 2011-03-23 17:49:19 PDT
Committed <http://trac.webkit.org/changeset/81831>
Comment 7 Early Warning System Bot 2011-03-23 17:51:11 PDT
Attachment 86726 [details] did not build on qt:
Build output: http://queues.webkit.org/results/8236098
Comment 8 Alexey Proskuryakov 2011-03-23 17:51:20 PDT
Typo fix in <http://trac.webkit.org/changeset/81832>.