Bug 230109 - [ BigSur arm64 EWS ] ASSERTION FAILED: m_globalScope->hasOneRef() ./workers/WorkerOrWorkletThread.cpp(155) : void WebCore::WorkerOrWorkletThread::workerOrWorkletThread()
Summary: [ BigSur arm64 EWS ] ASSERTION FAILED: m_globalScope->hasOneRef() ./workers/W...
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Mac (Apple Silicon) Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on: 234907
Blocks:
  Show dependency treegraph
 
Reported: 2021-09-09 10:33 PDT by ayumi_kojima
Modified: 2022-03-02 15:36 PST (History)
4 users (show)

See Also:


Attachments
Crash log (91.03 KB, text/plain)
2021-09-09 10:34 PDT, ayumi_kojima
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description ayumi_kojima 2021-09-09 10:33:51 PDT
imported/w3c/web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.html

Is a flaky crash on macOS-AppleSilicon-Big-Sur-Debug-WK2-Tests-EWS

In the open source directory, I don't see any crash but it failed a couple of times in the history: https://results.webkit.org/?suite=layout-tests&test=imported%2Fw3c%2Fweb-platform-tests%2Fworkers%2Fmodules%2Fdedicated-worker-import-blob-url.any.html

Builds that the test failed:

https://build.webkit.org/#/builders/70/builds/4727
https://build.webkit.org/#/builders/13/builds/4168
https://build.webkit.org/#/builders/45/builds/1320

The test started being flaky on EWS at https://ews-build.webkit.org/#/builders/60/builds/11578

Stderr:

ASSERTION FAILED: m_globalScope->hasOneRef()
./workers/WorkerOrWorkletThread.cpp(155) : void WebCore::WorkerOrWorkletThread::workerOrWorkletThread()
1   0x139dc759c WTFCrash
2   0x11986d8d0 WTFCrashWithInfo(int, char const*, char const*, int)
3   0x11d9b6818 WebCore::WorkerOrWorkletThread::workerOrWorkletThread()
4   0x11da08c0c WebCore::WorkerThread::createThread()::$_1::operator()() const
5   0x11da08b88 WTF::Detail::CallableWrapper<WebCore::WorkerThread::createThread()::$_1, void>::call()
6   0x139df0ee0 WTF::Function<void ()>::operator()() const
7   0x139ec05d4 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
8   0x139ecebf4 WTF::wtfThreadEntryPoint(void*)
9   0x180d8b878 _pthread_start
10  0x180d865e0 thread_start
com.apple.WebKit.WebContent.Development terminated (pid 77307) because the process crashed
LEAK: 1 WebPageProxy
Comment 1 ayumi_kojima 2021-09-09 10:34:31 PDT
Created attachment 437758 [details]
Crash log
Comment 2 Radar WebKit Bug Importer 2021-09-09 10:35:10 PDT
<rdar://problem/82932581>
Comment 3 ayumi_kojima 2021-09-09 10:41:25 PDT
Marked test expectations for the flaky crash to speed up EWS: https://trac.webkit.org/changeset/282224/webkit

Because failure only happened 3 times and they are all on different platforms, I will not set expectations for them for now.
Comment 4 ayumi_kojima 2021-09-10 16:14:17 PDT
rwt --root debugToTest --iterations 1000 --clobber-old-results --exit-after-n-crashes-or-timeouts 1 --force --debug imported/w3c/web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.html --no-timeout
(In reply to ayumi_kojima from comment #3)
> Marked test expectations for the flaky crash to speed up EWS:
> https://trac.webkit.org/changeset/282224/webkit
> 
> Because failure only happened 3 times and they are all on different
> platforms, I will not set expectations for them for now.

I did mark test expectations for this test.
Comment 5 ayumi_kojima 2021-09-10 16:16:11 PDT
I was not able to reproduce the crash using --iterations 1000 --clobber-old-results --exit-after-n-crashes-or-timeouts 1 --force --debug imported/w3c/web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.html 

The test timed out instead. It hanged with --no-timeout flag.
Comment 6 Chris Dumez 2022-03-02 15:36:15 PST
I found a recent crash (Feb/24) but the crash looked like:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x000000013c2f8324 WTFCrash + 20 (Assertions.cpp:322)
1   com.apple.WebCore             	0x0000000116f26930 WTFCrashWithInfo(int, char const*, char const*, int) + 32 (Assertions.h:741)
2   com.apple.WebCore             	0x000000011a88076c WebCore::JSEventListener::ensureJSFunction(WebCore::ScriptExecutionContext&) const + 596 (JSEventListener.h:157)
3   com.apple.WebCore             	0x000000011963e2e8 WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&, WebCore::Event&) + 192 (JSEventListener.cpp:140)
4   com.apple.WebCore             	0x0000000119fbbb3c WebCore::EventTarget::innerInvokeEventListeners(WebCore::Event&, WTF::Vector<WTF::RefPtr<WebCore::RegisteredEventListener, WTF::RawPtrTraits<WebCore::RegisteredEventListener>, WTF::DefaultRefDerefTraits<WebCore::RegisteredEventListener> >, 1ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>, WebCore::EventTarget::EventInvokePhase) + 968 (EventTarget.cpp:363)
5   com.apple.WebCore             	0x0000000119fbb604 WebCore::EventTarget::fireEventListeners(WebCore::Event&, WebCore::EventTarget::EventInvokePhase) + 328 (EventTarget.cpp:295)
6   com.apple.WebCore             	0x0000000119fbb4a8 WebCore::EventTarget::dispatchEvent(WebCore::Event&) + 348 (EventTarget.cpp:253)
7   com.apple.WebCore             	0x000000011c2c0660 WebCore::Worker::dispatchEvent(WebCore::Event&) + 56 (Worker.cpp:226)
8   com.apple.WebCore             	0x0000000119de8350 WebCore::ActiveDOMObject::queueTaskToDispatchEventInternal(WebCore::EventTarget&, WebCore::TaskSource, WTF::Ref<WebCore::Event, WTF::RawPtrTraits<WebCore::Event> >&&)::$_3::operator()() const + 80 (ActiveDOMObject.cpp:176)
9   com.apple.WebCore             	0x0000000119de81cc WTF::Detail::CallableWrapper<WebCore::ActiveDOMObject::queueTaskToDispatchEventInternal(WebCore::EventTarget&, WebCore::TaskSource, WTF::Ref<WebCore::Event, WTF::RawPtrTraits<WebCore::Event> >&&)::$_3, void>::call() + 28 (Function.h:53)
10  com.apple.WebCore             	0x00000001168e0de4 WTF::Function<void ()>::operator()() const + 124 (Function.h:82)
11  com.apple.WebCore             	0x0000000119de8a98 WebCore::ActiveDOMObjectEventDispatchTask::execute() + 52 (ActiveDOMObject.cpp:160)

Looks like we're firing an event at the Worker object but its JS wrapper is already gone.