Bug 194596
| Summary: | [ Mac Debug ] ASSERTION FAILED: Layout Test performance-api/performance-observer-basic.html is a flaky crash | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Shawn Roberts <sroberts> |
| Component: | Tools / Tests | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | achristensen, beidson, ggaren, joepeck, lforschler, rniwa, webkit-bot-watchers-bugzilla, webkit-bug-importer, youennf |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Shawn Roberts
The following layout test is flaky on Mac Debug
performance-api/performance-observer-basic.html
Probable cause:
Appears to be a flaky crash since inception. The oldest build I can spade is r228050
Reproducible with:
run-webkit-tests d228050 performance-api/performance-observer-basic.html --iterations 500 -f --debug
run-webkit-tests d228050 performance-api/performance-observer-basic.html --iterations 500 -f --debug -1
Flakiness Dashboard:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=performance-api%2Fperformance-observer-basic.html
Crash log:
https://build.webkit.org/results/Apple%20Mojave%20Debug%20WK2%20(Tests)/r241432%20(1575)/performance-api/performance-observer-basic-stderr.txt
ASSERTION FAILED: !m_isolatedWorld->isNormal() || m_wrapper || !m_jsFunction
./bindings/js/JSEventListener.h(109) : JSC::JSObject *WebCore::JSEventListener::jsFunction(WebCore::ScriptExecutionContext &) const
1 0x2b9f83fd9 WTFCrash
2 0x2a800c24b WTFCrashWithInfo(int, char const*, char const*, int)
3 0x2a9e94ca0 WebCore::JSEventListener::jsFunction(WebCore::ScriptExecutionContext&) const
4 0x2a9e9411b WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&, WebCore::Event&)
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/48043572>
Ryosuke Niwa
ASSERTION FAILED: !m_isolatedWorld->isNormal() || m_wrapper || !m_jsFunction
./bindings/js/JSEventListener.h(109) : JSC::JSObject *WebCore::JSEventListener::jsFunction(WebCore::ScriptExecutionContext &) const
1 0x2b9f83fd9 WTFCrash
2 0x2a800c24b WTFCrashWithInfo(int, char const*, char const*, int)
3 0x2a9e94ca0 WebCore::JSEventListener::jsFunction(WebCore::ScriptExecutionContext&) const
4 0x2a9e9411b WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&, WebCore::Event&)
5 0x2aa47941c WebCore::EventTarget::innerInvokeEventListeners(WebCore::Event&, WTF::Vector<WTF::RefPtr<WebCore::RegisteredEventListener, WTF::DumbPtrTraits<WebCore::RegisteredEventListener> >, 1ul, WTF::CrashOnOverflow, 16ul>, WebCore::EventTarget::EventInvokePhase)
6 0x2aa474e72 WebCore::EventTarget::fireEventListeners(WebCore::Event&, WebCore::EventTarget::EventInvokePhase)
7 0x2aa478f7a WebCore::EventTarget::dispatchEvent(WebCore::Event&)
8 0x2abd7a474 WebCore::WorkerMessagingProxy::postMessageToWorkerObject(WebCore::MessageWithMessagePorts&&)::$_0::operator()(WebCore::ScriptExecutionContext&)
9 0x2abd7a284 WTF::Function<void (WebCore::ScriptExecutionContext&)>::CallableWrapper<WebCore::WorkerMessagingProxy::postMessageToWorkerObject(WebCore::MessageWithMessagePorts&&)::$_0>::call(WebCore::ScriptExecutionContext&)
10 0x2a9cf9760 WTF::Function<void (WebCore::ScriptExecutionContext&)>::operator()(WebCore::ScriptExecutionContext&) const
11 0x2a9ce64dd WebCore::ScriptExecutionContext::Task::performTask(WebCore::ScriptExecutionContext&)
12 0x2aa410f18 WebCore::Document::postTask(WebCore::ScriptExecutionContext::Task&&)::$_6::operator()()
13 0x2aa410d39 WTF::Function<void ()>::CallableWrapper<WebCore::Document::postTask(WebCore::ScriptExecutionContext::Task&&)::$_6>::call()
14 0x2b9fad89d WTF::Function<void ()>::operator()() const
15 0x2b9fe5b4d WTF::dispatchFunctionsFromMainThread()
16 0x2b9fe8965 -[JSWTFMainThreadCaller call]
17 0x7fff346ecbab __NSThreadPerformPerform
18 0x7fff322f01d9 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
19 0x7fff322f017f __CFRunLoopDoSource0
20 0x7fff322d402c __CFRunLoopDoSources0
21 0x7fff322d35d3 __CFRunLoopRun
22 0x7fff322d2eb6 CFRunLoopRunSpecific
23 0x7fff346574aa -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
24 0x7fff3465737f -[NSRunLoop(NSRunLoop) run]
25 0x7fff5f7e5ebe _xpc_objc_main
26 0x7fff5f7e59bd _xpc_copy_xpcservice_dictionary
27 0x102be8995 WebKit::XPCServiceMain(int, char const**)
28 0x102a557cb WKXPCServiceMain
29 0x102672f5e main
30 0x7fff5f5aded9 start
31 0x1
LEAK: 2 WebPageProxy
Ryosuke Niwa
This is a GC bug :( It looks like we dispatch an event on a worker thread but the event listener is already dead. Maybe a race between the worker dying vs. event getting dispatched?