Bug 56062
| Summary: | Reproducible ASSERTION failure going to NYTimes.com | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Jessie Berlin <jberlin> |
| Component: | WebCore JavaScript | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | aestes, alice.barraclough, ap, darin, jberlin, yong.li.webkit |
| Priority: | P2 | Keywords: | InRadar |
| Version: | 528+ (Nightly build) | ||
| Hardware: | All | ||
| OS: | All | ||
Jessie Berlin
This is also reproducible going to other major websites.
After some bisecting, the assertion failure appears to have started around http://trac.webkit.org/changeset/80478.
> 1 com.apple.WebCore 0x103775887 WebCore::SuspendableTimer::resume() + 0x5b (SuspendableTimer.cpp:76)
2 com.apple.WebCore 0x103775825 non-virtual thunk to WebCore::SuspendableTimer::resume() + 0x25
3 com.apple.WebCore 0x10369b46e WebCore::ScriptExecutionContext::resumeActiveDOMObjects() + 0x104 (ScriptExecutionContext.cpp:259)
4 com.apple.WebCore 0x102836762 WebCore::Document::resumeScheduledTasks() + 0xf0 (Document.cpp:4772)
5 com.apple.WebCore 0x102ae64f8 WebCore::FrameLoader::setDefersLoading(bool) + 0x196 (FrameLoader.cpp:263)
6 com.apple.WebCore 0x1033834e1 WebCore::Page::setDefersLoading(bool) + 0xa5 (Page.cpp:548)
7 com.apple.WebKit2 0x1010b4a30 WebKit::WebPage::setDefersLoading(bool) + 0x44 (WebPage.cpp:454)
8 com.apple.WebKit2 0x101146bb7 WKBundlePageSetDefersLoading + 0x37 (WKBundlePage.cpp:114)
This also appears to have caused some inspector test failures:
https://bugs.webkit.org/show_bug.cgi?id=55941
Should we roll out this change? It is getting rather annoying to work with this assertion failure getting triggered so often (happens within 10 seconds of browsing)
<rdar://problem/9098548>
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Jessie Berlin
The assertion that is failing is ASSERT(m_suspended).
Alexey Proskuryakov
*** Bug 56073 has been marked as a duplicate of this bug. ***
Andy Estes
Comment from https://bugs.webkit.org/show_bug.cgi?id=55941:
Comment #6 From Pavel Feldman 2011-03-10 07:19:04 PST (-) [reply]
Rolled out r80478 as r80718
Committing to http://svn.webkit.org/repository/webkit/trunk ...
D Source/WebCore/manual-tests/database-callback-deferred.html
M LayoutTests/ChangeLog
M LayoutTests/platform/gtk/Skipped
M Source/WebCore/ChangeLog
M Source/WebCore/dom/Document.cpp
M Source/WebCore/dom/Document.h
M Source/WebCore/loader/FrameLoader.cpp
M Source/WebCore/page/PageGroupLoadDeferrer.cpp
Committed r80718
Yong Li
This seems like a conflict between WKBundlePageSetDefersLoading and PageGroupLoadDeferrer, and should be fixed there but not by rolling out r80478 which does fix missing callback problme. Should we reopen this one?
Yong Li
Never mind. I see why r80478 causes the crash now:
Without the patch Page::setDefersLoading doesn't do this:
for (Frame* frame = otherPage->mainFrame(); frame; frame = frame->tree()->traverseNext()) {
frame->document()->suspendScriptedAnimationControllerCallbacks();
frame->document()->suspendActiveDOMObjects(ActiveDOMObject::WillShowDialog);
frame->document()->scriptRunner()->suspend();
if (DocumentParser* parser = frame->document()->parser())
parser->suspendScheduledTasks();
}
So I'll remove this change from my patch