Intermittent Assertion failure: fallback->InIteration(), at /builds/worker/checkouts/gecko/dom/media/GraphDriver.cpp:784
Categories
(Core :: Audio/Video: MediaStreamGraph, defect, P5)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox-esr115 | --- | unaffected |
| firefox119 | --- | unaffected |
| firefox120 | --- | unaffected |
| firefox121 | --- | fixed |
People
(Reporter: intermittent-bug-filer, Assigned: karlt)
References
(Regression)
Details
(Keywords: assertion, intermittent-failure, regression, Whiteboard: [retriggered])
Attachments
(4 files)
Filed by: ncsoregi [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=434050042&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/NtBpXfvZTTyQZmXeGyPovQ/runs/0/artifacts/public/logs/live_backing.log
[task 2023-10-27T14:15:04.418Z] 14:15:04 INFO - TEST-START | dom/media/webrtc/tests/mochitests/test_getUserMedia_mediaStreamConstructors.html
[task 2023-10-27T14:15:04.496Z] 14:15:04 INFO - GECKO(3067) | TEST DEVICES: No test device found in media.audio_loopback_dev, using fake audio streams.
[task 2023-10-27T14:15:04.497Z] 14:15:04 INFO - GECKO(3067) | TEST DEVICES: No test device found in media.video_loopback_dev, using fake video streams.
[task 2023-10-27T14:15:04.525Z] 14:15:04 INFO - GECKO(3067) | Assertion failure: fallback->InIteration(), at /builds/worker/checkouts/gecko/dom/media/GraphDriver.cpp:784
[task 2023-10-27T14:15:04.529Z] 14:15:04 INFO - Initializing stack-fixing for the first stack frame, this may take a while...
[task 2023-10-27T14:15:28.971Z] 14:15:28 INFO - GECKO(3067) | #01: mozilla::AudioCallbackDriver::SetStreamName(nsTSubstring<char> const&) [dom/media/GraphDriver.cpp:784]
[task 2023-10-27T14:15:28.971Z] 14:15:28 INFO - GECKO(3067) | #02: mozilla::MediaTrackGraphImpl::RunMessagesInQueue() [dom/media/MediaTrackGraph.cpp:1332]
[task 2023-10-27T14:15:28.971Z] 14:15:28 INFO - GECKO(3067) | #03: mozilla::MediaTrackGraphImpl::OneIterationImpl(long long, long long, mozilla::AudioMixer*) [dom/media/MediaTrackGraph.cpp:1588]
[task 2023-10-27T14:15:28.972Z] 14:15:28 INFO - GECKO(3067) | #04: mozilla::GraphRunner::Run() [dom/media/GraphRunner.cpp:139]
[task 2023-10-27T14:15:28.972Z] 14:15:28 INFO - GECKO(3067) | #05: nsThread::ProcessNextEvent(bool, bool*) [xpcom/threads/nsThread.cpp:1193]
[task 2023-10-27T14:15:28.972Z] 14:15:28 INFO - GECKO(3067) | #06: NS_ProcessNextEvent(nsIThread*, bool) [xpcom/threads/nsThreadUtils.cpp:480]
[task 2023-10-27T14:15:28.972Z] 14:15:28 INFO - GECKO(3067) | #07: mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) [ipc/glue/MessagePump.cpp:301]
[task 2023-10-27T14:15:28.973Z] 14:15:28 INFO - GECKO(3067) | #08: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:346]
[task 2023-10-27T14:15:28.973Z] 14:15:28 INFO - GECKO(3067) | #09: nsThread::ThreadFunc(void*) [xpcom/threads/nsThread.cpp:372]
[task 2023-10-27T14:15:29.171Z] 14:15:29 INFO - GECKO(3067) | #10: _pt_root [nsprpub/pr/src/pthreads/ptthread.c:204]
[task 2023-10-27T14:15:29.172Z] 14:15:29 INFO - GECKO(3067) | #11: _pthread_start [/usr/lib/system/libsystem_pthread.dylib + 0x6109]
[task 2023-10-27T14:15:29.172Z] 14:15:29 INFO - GECKO(3067) | [Parent 3067, IPC I/O Parent] WARNING: Call to Send() failed: file /builds/worker/checkouts/gecko/ipc/glue/NodeChannel.cpp:198
Comment 1•2 years ago
|
||
Hi Karl! Can you please take a look at this? Although this backfill range and retriggers don't show Bug 1860954 as the culprit, I think it might just be the cause for this and the 2 other assertion failure bugs that I've put in the "see also" section, but I would like to get your opinion on this.
Thank you!
| Comment hidden (Intermittent Failures Robot) |
| Assignee | ||
Comment 3•2 years ago
|
||
The AudioCallbackDriver transitions to ThreadRunning() while the fallback driver may still be in one of its iterations.
This is inconsistent with "If the fallback driver is active, this returns false" documented for AudioCallbackDriver::ThreadRunning().
Both are inconsistent with "GraphDriver's thread has started and the thread is running" documented for the overridden GraphDriver::ThreadRunning(). MediaTrackGraphImpl expects AudioCallbackDriver::ThreadRunning() to return true even when running from the fallback driver, though the difference in behavior is not detected there.
| Assignee | ||
Updated•2 years ago
|
| Assignee | ||
Comment 4•2 years ago
|
||
AudioCallbackDriver will have a fallback driver thread running when in a
fallback driver iteration and sometimes also has an audio stream callback
thread running concurrently.
| Assignee | ||
Comment 5•2 years ago
|
||
GraphInterface::InDriverIteration() now always checks aDriver->OnThread().
In the case of a fallback driver, this changes the check a little as
OnThread() is called on the AudioCallbackDriver instead of the fallback
driver, but I expect either IterationResult OneIteration() or its
IterationResult should be on the stack when asserting InIteration().
Depends on D192432
| Assignee | ||
Comment 6•2 years ago
|
||
Depends on D192433
| Assignee | ||
Comment 7•2 years ago
|
||
AudioCallbackDriver can have a thread running with a fallback driver or
an audio stream callback.
Asserts are using !ThreadRunning() and so are made stricter by this patch.
Depends on D192434
| Assignee | ||
Comment 8•2 years ago
|
||
Thank you for the retriggers.
This showed up due to a new assertion introduced in https://hg.mozilla.org/mozilla-central/rev/899c4a0b9085b8781713f9fd29a5fdd91b55ade1#l1.275
Bug 1861805 and bug 1861495 are different to this one and I'm still investigating those.
Comment 9•2 years ago
|
||
Set release status flags based on info from the regressing bug 1860954
Comment 10•2 years ago
|
||
Comment 11•2 years ago
|
||
Comment 12•2 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/54251c8f8d09
https://hg.mozilla.org/mozilla-central/rev/0ea21c7c9ab7
https://hg.mozilla.org/mozilla-central/rev/5215ac06e712
| Comment hidden (Intermittent Failures Robot) |
Description
•