Bug 109852 - ASSERTION FAILED: !callFrame->hadException() on detik.com
Summary: ASSERTION FAILED: !callFrame->hadException() on detik.com
Status: RESOLVED DUPLICATE of bug 109838
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-02-14 12:12 PST by Alexey Proskuryakov
Modified: 2013-03-08 16:53 PST (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Proskuryakov 2013-02-14 12:12:16 PST
Just opening http://www.detik.com and scrolling around a little very frequently results in an assertion failure:

ASSERTION FAILED: !callFrame->hadException()
/Users/ap/Safari/OpenSource/Source/JavaScriptCore/interpreter/Interpreter.cpp(999) : JSC::JSValue JSC::Interpreter::executeCall(CallFrame *, JSC::JSObject *, JSC::CallType, const JSC::CallData &, JSC::JSValue, const JSC::ArgList &)
1   0x10eeb3c39 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
2   0x10ecc2ac2 JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
3   0x1108f6ee2 WebCore::JSMainThreadExecState::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
4   0x1113c526f WebCore::ScheduledAction::executeFunctionInContext(JSC::JSGlobalObject*, JSC::JSValue, WebCore::ScriptExecutionContext*)
5   0x1113c4e53 WebCore::ScheduledAction::execute(WebCore::Document*)
6   0x1113c4c94 WebCore::ScheduledAction::execute(WebCore::ScriptExecutionContext*)
7   0x1102e5ae8 WebCore::DOMTimer::fired()

This blocks testing in bug 107228.
Comment 1 Alexey Proskuryakov 2013-02-14 16:32:47 PST
Possibly related to bug 109838.
Comment 2 Cosmin Truta 2013-02-15 16:48:17 PST
(In reply to comment #1)
> Possibly related to bug 109838.

I also think it's a dupe. As I run that bug's URL with Qt MiniBrowser, it randomly assert-fails either on !globalData.exception or !callFrame->hadException()
Comment 3 Cosmin Truta 2013-02-19 11:00:43 PST
Although I can't close this bug, I can confirm that it no longer crashes, after changeset 143104.
Comment 4 Alexey Proskuryakov 2013-02-19 11:47:45 PST
I can't confirm now, because the site always crashes with an assertion, d->m_defersLoading != defers.
Comment 5 Yong Li 2013-02-19 11:58:12 PST
(In reply to comment #4)
> I can't confirm now, because the site always crashes with an assertion, d->m_defersLoading != defers.

This usually means some JS activities were executed when page is being deferred.

I usually use this ASSERT to catch them

bool ScriptController::canExecuteScripts(ReasonForCallingCanExecuteScripts reason)
{
    ...
    if (!allowed && reason == AboutToExecuteScript)
        m_frame->loader()->client()->didNotAllowScript();
+    if (allowed && reason == AboutToExecuteScript && m_frame->page()->defersLoading())
+        CRASH();
    return allowed;
}

Both Bug 107453 and Bug 107954 can cause such issue
Comment 6 Alexey Proskuryakov 2013-03-08 16:53:08 PST
I filed bug 111902 about defersLoading assertion.

*** This bug has been marked as a duplicate of bug 109838 ***