Bug 199089

Summary: REGRESSION(r236540-r236595): ASSERTION FAILED: !frameView || !frameView->isPainting() on plugins/window-open.html
Product: WebKit Reporter: Russell Epstein <repstein>
Component: Layout and RenderingAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: ap, bfulgham, ryanhaddad, simon.fraser, webkit-bug-importer, zalan
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Russell Epstein 2019-06-20 16:26:00 PDT
The following layout test is flaky on Mojave WK2

plugins/window-open.html

Steps to Reproduce:

run-webkit-tests --iter 100 -f plugins/window-open.html

Confirmed crash in current revision r246644, and reduced regression range to r236540 through r236595.
Unable to reduce regression range further due to lack of available builds.

Located assertion in Source/WebCore/dom/Document.cpp, last modified by Ryosuke in 2017.

Flakiness Dashboard:

https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=plugins%2Fwindow-open.html

Crash Log:

No crash log found for com.apple.WebKit.WebContent.Development:15002.

stdout:

stderr:
ASSERTION FAILED: !frameView || !frameView->isPainting()
./dom/Document.cpp(2035) : bool WebCore::Document::updateStyleIfNeeded()
1   0x53f6990e9 WTFCrash
2   0x5280090bb WTFCrashWithInfo(int, char const*, char const*, int)
3   0x52a539635 WebCore::Document::updateStyleIfNeeded()
4   0x52afcce1e WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive()
5   0x52b04cfdc WebCore::Page::layoutIfNeeded()
6   0x52b04d154 WebCore::Page::updateRendering()
7   0x10bb93821 WebKit::WebPage::updateRendering()
8   0x10b7aeaa1 WebKit::TiledCoreAnimationDrawingArea::flushLayers(WebKit::TiledCoreAnimationDrawingArea::FlushType)
9   0x10b7aea10 WebKit::TiledCoreAnimationDrawingArea::forceRepaint()
10  0x10bb9299a WebKit::WebPage::forceRepaintWithoutCallback()
11  0x10b8b0d6d WKBundlePageForceRepaint
12  0x547f613ee WTR::InjectedBundlePage::dump()
13  0x547f8596d WTR::TestRunner::notifyDone()
14  0x547f778f7 WTR::JSTestRunner::notifyDone(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)
15  0x53fc225e4 long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::ExecState*)
16  0x33c382a01027
17  0x53fba25ec llint_entry
18  0x53fb858d3 vmEntryToJavaScript
19  0x5407f28d7 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
20  0x5407f1ea0 JSC::Interpreter::executeProgram(JSC::SourceCode const&, JSC::ExecState*, JSC::JSObject*)
21  0x540b10da5 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&)
22  0x10aacef5a JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue)
23  0x10aaced4f WebKit::NPRuntimeObjectMap::evaluate(NPObject*, WTF::String const&, _NPVariant*)
24  0x10ab6dc82 WebKit::PluginView::evaluate(NPObject*, WTF::String const&, _NPVariant*, bool)
25  0x10ab47966 WebKit::PluginProxy::evaluate(WebKit::NPVariantData const&, WTF::String const&, bool, WTF::CompletionHandler<void (bool, WebKit::NPVariantData&&)>&&)
26  0x10ab5f047 void IPC::callMemberFunctionImpl<WebKit::PluginProxy, void (WebKit::PluginProxy::*)(WebKit::NPVariantData const&, WTF::String const&, bool, WTF::CompletionHandler<void (bool, WebKit::NPVariantData&&)>&&), void (bool, WebKit::NPVariantData const&), std::__1::tuple<WebKit::NPVariantData, WTF::String, bool>, 0ul, 1ul, 2ul>(WebKit::PluginProxy*, void (WebKit::PluginProxy::*)(WebKit::NPVariantData const&, WTF::String const&, bool, WTF::CompletionHandler<void (bool, WebKit::NPVariantData&&)>&&), WTF::CompletionHandler<void (bool, WebKit::NPVariantData const&)>&&, std::__1::tuple<WebKit::NPVariantData, WTF::String, bool>&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul, 2ul>)
27  0x10ab5d9d5 void IPC::callMemberFunction<WebKit::PluginProxy, void (WebKit::PluginProxy::*)(WebKit::NPVariantData const&, WTF::String const&, bool, WTF::CompletionHandler<void (bool, WebKit::NPVariantData&&)>&&), void (bool, WebKit::NPVariantData const&), std::__1::tuple<WebKit::NPVariantData, WTF::String, bool>, std::__1::integer_sequence<unsigned long, 0ul, 1ul, 2ul> >(std::__1::tuple<WebKit::NPVariantData, WTF::String, bool>&&, WTF::CompletionHandler<void (bool, WebKit::NPVariantData const&)>&&, WebKit::PluginProxy*, void (WebKit::PluginProxy::*)(WebKit::NPVariantData const&, WTF::String const&, bool, WTF::CompletionHandler<void (bool, WebKit::NPVariantData&&)>&&))
28  0x10ab52215 void IPC::handleMessageSynchronous<Messages::PluginProxy::Evaluate, WebKit::PluginProxy, void (WebKit::PluginProxy::*)(WebKit::NPVariantData const&, WTF::String const&, bool, WTF::CompletionHandler<void (bool, WebKit::NPVariantData&&)>&&)>(IPC::Connection&, IPC::Decoder&, std::__1::unique_ptr<IPC::Encoder, std::__1::default_delete<IPC::Encoder> >&, WebKit::PluginProxy*, void (WebKit::PluginProxy::*)(WebKit::NPVariantData const&, WTF::String const&, bool, WTF::CompletionHandler<void (bool, WebKit::NPVariantData&&)>&&))
29  0x10ab5187b WebKit::PluginProxy::didReceiveSyncPluginProxyMessage(IPC::Connection&, IPC::Decoder&, std::__1::unique_ptr<IPC::Encoder, std::__1::default_delete<IPC::Encoder> >&)
30  0x10ab25f60 WebKit::PluginProcessConnection::didReceiveSyncMessage(IPC::Connection&, IPC::Decoder&, std::__1::unique_ptr<IPC::Encoder, std::__1::default_delete<IPC::Encoder> >&)
31  0x10a8d5205 IPC::Connection::dispatchSyncMessage(IPC::Decoder&)
LEAK: 2 WebPageProxy
Comment 1 Russell Epstein 2019-06-20 16:43:32 PDT
Partnered with Jonathan to reduce regression range.

Identified the following revisions are potential candidates for further investigation:

r236541
r236547
r236566
r236583
Comment 2 Radar WebKit Bug Importer 2019-06-20 23:24:34 PDT
<rdar://problem/51976404>
Comment 3 Ryan Haddad 2019-09-09 17:33:09 PDT
Skipped test in https://trac.webkit.org/changeset/249678/webkit