Closed Bug 1593766 Opened 5 months ago Closed 5 months ago

Assertion failure: IsOnWorkletThread(), at /builds/worker/workspace/build/src/dom/worklet/WorkletThread.cpp:405

Categories

(Core :: DOM: Core & HTML, defect, P5)

defect

Tracking

()

RESOLVED FIXED
mozilla72
Tracking Status
firefox-esr68 --- wontfix
firefox70 --- wontfix
firefox71 --- wontfix
firefox72 --- fixed

People

(Reporter: jkratzer, Assigned: karlt)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: assertion, regression, testcase)

Attachments

(3 files)

Attached file testcase.html

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
Flags: in-testsuite?

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.

Flags: needinfo?(karlt)

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.

Flags: needinfo?(karlt)
Regressed by: 1539039
Assignee: nobody → karlt
Status: NEW → ASSIGNED
Priority: -- → P5

This can happen when addModule() has not be called, but the thread is created
just to send a NotifyWorkletFinished message.

Depends on D51925

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
Status: ASSIGNED → RESOLVED
Closed: 5 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla72
Regressions: 1594685
Flags: in-testsuite? → in-testsuite+
You need to log in before you can comment on or make changes to this bug.