Assertion failure: IsOnWorkletThread(), at /builds/worker/workspace/build/src/dom/worklet/WorkletThread.cpp:405
Categories
(Core :: DOM: Core & HTML, defect, P5)
Tracking
()
People
(Reporter: jkratzer, Assigned: karlt)
References
(Blocks 1 open bug, Regression)
Details
(Keywords: assertion, regression, testcase)
Attachments
(3 files)
Testcase found while fuzzing mozilla-central rev 5647ec4ba6f2. Testcase may take several seconds to reproduce.
Assertion failure: IsOnWorkletThread(), at /builds/worker/workspace/build/src/dom/worklet/WorkletThread.cpp:405
rax = 0x000055c523f06340 rdx = 0x0000000000000000
rcx = 0x00007fb8d9735dcd rbx = 0x00007fb8adc3bd00
rsi = 0x00007fb8e50eb8b0 rdi = 0x00007fb8e50ea680
rbp = 0x00007fb8b8dfc150 rsp = 0x00007fb8b8dfc150
r8 = 0x00007fb8e50eb8b0 r9 = 0x00007fb8b8dfd700
r10 = 0x0000000000000002 r11 = 0x0000000000000000
r12 = 0x00007fb8adc3bd00 r13 = 0x00007fb8b8dfc201
r14 = 0x0000000000000002 r15 = 0x00007fb8b8dfc220
rip = 0x00007fb8d593a0f6
OS|Linux|0.0.0 Linux 5.0.0-31-generic #33~18.04.1-Ubuntu SMP Tue Oct 1 10:20:39 UTC 2019 x86_64
CPU|amd64|family 6 model 94 stepping 3|1
GPU|||
Crash|SIGSEGV|0x0|70
70|0|libxul.so|mozilla::dom::WorkletThread::AssertIsOnWorkletThread()|hg:hg.mozilla.org/mozilla-central:dom/worklet/WorkletThread.cpp:5647ec4ba6f2566912e71637d2c1e063d899c103|405|0x32
70|1|libxul.so|mozilla::dom::WorkletThread::TerminateInternal()|hg:hg.mozilla.org/mozilla-central:dom/worklet/WorkletThread.cpp:5647ec4ba6f2566912e71637d2c1e063d899c103|376|0x5
70|2|libxul.so|mozilla::dom::WorkletThread::TerminateRunnable::Run()|hg:hg.mozilla.org/mozilla-central:dom/worklet/WorkletThread.cpp:5647ec4ba6f2566912e71637d2c1e063d899c103|244|0xd
70|3|libxul.so|nsThread::ProcessNextEvent(bool, bool*)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:5647ec4ba6f2566912e71637d2c1e063d899c103|1225|0x15
70|4|libxul.so|NS_ProcessNextEvent(nsIThread*, bool)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.cpp:5647ec4ba6f2566912e71637d2c1e063d899c103|486|0x11
70|5|libxul.so|mozilla::dom::WorkletThread::RunEventLoop()|hg:hg.mozilla.org/mozilla-central:dom/worklet/WorkletThread.cpp:5647ec4ba6f2566912e71637d2c1e063d899c103|352|0xd
70|6|libxul.so|mozilla::dom::WorkletThread::PrimaryRunnable::Run()|hg:hg.mozilla.org/mozilla-central:dom/worklet/WorkletThread.cpp:5647ec4ba6f2566912e71637d2c1e063d899c103|224|0xd
70|7|libxul.so|nsThread::ProcessNextEvent(bool, bool*)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:5647ec4ba6f2566912e71637d2c1e063d899c103|1225|0x15
70|8|libxul.so|NS_ProcessNextEvent(nsIThread*, bool)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.cpp:5647ec4ba6f2566912e71637d2c1e063d899c103|486|0x11
70|9|libxul.so|mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessagePump.cpp:5647ec4ba6f2566912e71637d2c1e063d899c103|333|0xd
70|10|libxul.so|MessageLoop::RunInternal()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:5647ec4ba6f2566912e71637d2c1e063d899c103|315|0x17
70|11|libxul.so|MessageLoop::Run()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:5647ec4ba6f2566912e71637d2c1e063d899c103|290|0x8
70|12|libxul.so|nsThread::ThreadFunc(void*)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:5647ec4ba6f2566912e71637d2c1e063d899c103|458|0x38
70|13|libnspr4.so|_pt_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/pthreads/ptthread.c:5647ec4ba6f2566912e71637d2c1e063d899c103|201|0x7
70|14|libpthread-2.27.so||||0x76db
70|15|libc-2.27.so||||0x12188f
Reporter | ||
Comment 1•5 years ago
|
||
Testcase bisects to the following range:
Start: ce51e7ec806cbb157d5e336472ef9c05747bc3bd (20190402023341)
End: ea09774456976ada64ed753a00724ef6bc6be62f (20190402083512)
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=ce51e7ec806cbb157d5e336472ef9c05747bc3bd&tochange=ea09774456976ada64ed753a00724ef6bc6be62f
Likely bug 1539039.
Assignee | ||
Comment 2•5 years ago
|
||
The regression was triggered by the NotifyWorkletFinished
control message starting a thread, which is actually not required.
https://hg.mozilla.org/mozilla-central/rev/80bda5c60103e2aafbbe08e965b5653872f39326#l2.84
The assertion failure is because the thread has no CycleCollectedJSContext, because none is required.
The thread creation logic is a fill-in until this is hooked up with painting threads, and so I'm not concerned about creating a thread unnecessarily here.
I'll just relax the assertion to deal with this.
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 3•5 years ago
|
||
This can happen when addModule() has not be called, but the thread is created
just to send a NotifyWorkletFinished message.
Assignee | ||
Comment 4•5 years ago
|
||
Depends on D51925
Updated•5 years ago
|
Pushed by ktomlinson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/04e94296ee4a relax assertion to handle case of no CycleCollectedJSContext created r=baku https://hg.mozilla.org/integration/autoland/rev/ae6a4596986d add crashtest r=baku
Comment 6•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/04e94296ee4a
https://hg.mozilla.org/mozilla-central/rev/ae6a4596986d
Updated•5 years ago
|
Updated•2 years ago
|
Description
•