Intermittent Assertion failure: aStream == mPipeOut, at /builds/worker/checkouts/gecko/dom/fetch/FetchStreamReader.cpp:192
Categories
(Core :: DOM: Workers, defect, P5)
Tracking
()
People
(Reporter: intermittent-bug-filer, Assigned: jstutte)
Details
(Keywords: assertion, intermittent-failure)
Attachments
(1 file)
Filed by: rmaries [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=308750039&repo=mozilla-beta
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/OpFdjj9eS3ODfo8E_2pVFw/runs/0/artifacts/public/logs/live_backing.log
[task 2020-07-06T22:05:56.222Z] 22:05:56 INFO - TEST-START | dom/workers/test/test_readableStream_when_closing.html
[task 2020-07-06T22:05:56.344Z] 22:05:56 INFO - GECKO(7147) | [7147, Main Thread] WARNING: Failed to retarget HTML data delivery to the parser thread.: file /builds/worker/checkouts/gecko/parser/html/nsHtml5StreamParser.cpp, line 1131
[task 2020-07-06T22:05:56.503Z] 22:05:56 INFO - GECKO(7147) | [7147, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, nullptr) failed with result 0x804B000A (NS_ERROR_MALFORMED_URI): file /builds/worker/checkouts/gecko/extensions/permissions/Permission.cpp, line 46
[task 2020-07-06T22:05:56.504Z] 22:05:56 INFO - GECKO(7147) | [7147, Main Thread] WARNING: NS_ENSURE_TRUE(principal) failed: file /builds/worker/checkouts/gecko/extensions/permissions/Permission.cpp, line 58
[task 2020-07-06T22:05:56.702Z] 22:05:56 INFO - GECKO(7147) | [7147, StreamTrans #110] WARNING: A runnable was posted to a worker that is already shutting down!: file /builds/worker/checkouts/gecko/dom/workers/WorkerPrivate.cpp, line 1434
[task 2020-07-06T22:05:56.712Z] 22:05:56 INFO - GECKO(7147) | Assertion failure: aStream == mPipeOut, at /builds/worker/checkouts/gecko/dom/fetch/FetchStreamReader.cpp:192
[task 2020-07-06T22:05:56.712Z] 22:05:56 INFO - GECKO(7147) | #01: nsOutputStreamReadyEvent::Run() [xpcom/io/nsStreamUtils.cpp:184]
[task 2020-07-06T22:05:56.712Z] 22:05:56 INFO - GECKO(7147) | #02: mozilla::dom::(anonymous namespace)::ExternalRunnableWrapper::WorkerRun(JSContext*, mozilla::dom::WorkerPrivate*) [dom/workers/WorkerPrivate.cpp:181]
[task 2020-07-06T22:05:56.713Z] 22:05:56 INFO - GECKO(7147) | #03: mozilla::dom::WorkerRunnable::Run() [dom/workers/WorkerRunnable.cpp:370]
[task 2020-07-06T22:05:56.714Z] 22:05:56 INFO - GECKO(7147) | #04: mozilla::dom::(anonymous namespace)::WrappedControlRunnable::WorkerRun(JSContext*, mozilla::dom::WorkerPrivate*) [dom/workers/WorkerEventTarget.cpp:37]
[task 2020-07-06T22:05:56.718Z] 22:05:56 INFO - GECKO(7147) | #05: mozilla::dom::WorkerRunnable::Run() [dom/workers/WorkerRunnable.cpp:370]
[task 2020-07-06T22:05:56.720Z] 22:05:56 INFO - GECKO(7147) | #06: mozilla::dom::WorkerPrivate::ProcessAllControlRunnablesLocked() [dom/workers/WorkerPrivate.cpp:3528]
[task 2020-07-06T22:05:56.720Z] 22:05:56 INFO - GECKO(7147) | [7147, Main Thread] WARNING: A runnable was posted to a worker that is already shutting down!: file /builds/worker/checkouts/gecko/dom/workers/WorkerPrivate.cpp, line 1434
[task 2020-07-06T22:05:56.726Z] 22:05:56 INFO - GECKO(7147) | #07: mozilla::dom::WorkerPrivate::DoRunLoop(JSContext*) [dom/workers/WorkerPrivate.cpp:2884]
[task 2020-07-06T22:05:56.726Z] 22:05:56 INFO - GECKO(7147) | #08: mozilla::dom::workerinternals::(anonymous namespace)::WorkerThreadPrimaryRunnable::Run() [dom/workers/RuntimeService.cpp:2219]
[task 2020-07-06T22:05:56.730Z] 22:05:56 INFO - GECKO(7147) | #09: nsThread::ProcessNextEvent(bool, bool*) [xpcom/threads/nsThread.cpp:1234]
[task 2020-07-06T22:05:56.731Z] 22:05:56 INFO - GECKO(7147) | #10: NS_ProcessNextEvent(nsIThread*, bool) [xpcom/threads/nsThreadUtils.cpp:504]
[task 2020-07-06T22:05:56.732Z] 22:05:56 INFO - GECKO(7147) | #11: mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) [ipc/glue/MessagePump.cpp:332]
[task 2020-07-06T22:05:56.733Z] 22:05:56 INFO - GECKO(7147) | #12: MessageLoop::RunInternal() [ipc/chromium/src/base/message_loop.cc:316]
[task 2020-07-06T22:05:56.734Z] 22:05:56 INFO - GECKO(7147) | #13: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:292]
[task 2020-07-06T22:05:56.737Z] 22:05:56 INFO - GECKO(7147) | #14: nsThread::ThreadFunc(void*) [xpcom/threads/nsThread.cpp:449]
[task 2020-07-06T22:05:56.765Z] 22:05:56 INFO - GECKO(7147) | #15: _pt_root [nsprpub/pr/src/pthreads/ptthread.c:204]
[task 2020-07-06T22:05:56.765Z] 22:05:56 INFO - fix-stacks error: failed to read breakpad symbols dir /builds/worker/workspace/build/symbols/libpthread.so.0
for /lib/x86_64-linux-gnu/libpthread.so.0
[task 2020-07-06T22:05:56.765Z] 22:05:56 INFO - fix-stacks note: this is expected and harmless for system libraries on debug automation runs
[task 2020-07-06T22:05:56.765Z] 22:05:56 INFO - GECKO(7147) | #16: ??? [/lib/x86_64-linux-gnu/libpthread.so.0 + 0x76db]
[task 2020-07-06T22:05:56.765Z] 22:05:56 INFO - GECKO(7147) | #17: clone [/lib/x86_64-linux-gnu/libc.so.6 + 0x12188f]
[task 2020-07-06T22:05:56.765Z] 22:05:56 INFO - GECKO(7147) | #18: ??? (???:???)
[task 2020-07-06T22:05:56.765Z] 22:05:56 INFO - GECKO(7147) | ExceptionHandler::GenerateDump cloned child 7412
[task 2020-07-06T22:05:56.765Z] 22:05:56 INFO - GECKO(7147) | ExceptionHandler::SendContinueSignalToChild sent continue signal to child
[task 2020-07-06T22:05:56.765Z] 22:05:56 INFO - GECKO(7147) | ExceptionHandler::WaitForContinueSignal waiting for continue signal...
[task 2020-07-06T22:05:56.922Z] 22:05:56 INFO - TEST-INFO | Main app process: exit 11
Comment hidden (Intermittent Failures Robot) |
Assignee | ||
Comment 2•4 years ago
|
||
We expect the input stream to be the same we already know. BTW, this seems to be the same for most implementations of OnOutputStreamReady
but this special case, which makes me feel a bit unsure, if we really need this parameter in general.
I see no obvious cause for this, though. Maybe it is totally unrelated, but I see a GC running on the main thread while this happens.
Comment 3•4 years ago
|
||
I would wait until we see more crashes. As far as I know, nothing has changed on the outputStream lately, and that code follows that the XPCOM IDL says: "aStream The stream whose asyncWait method was called."
https://searchfox.org/mozilla-central/rev/af5cff556a9482d7aa2267a82f2ccfaf18e797e9/xpcom/io/nsIAsyncOutputStream.idl#97-102
Assignee | ||
Updated•4 years ago
|
Comment 4•4 years ago
|
||
https://wiki.mozilla.org/Bug_Triage#Intermittent_Test_Failure_Cleanup
For more information, please visit auto_nag documentation.
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment 7•3 years ago
|
||
Recent failure log: https://treeherder.mozilla.org/logviewer?job_id=340043640&repo=mozilla-central&lineNumber=128668
Comment hidden (Intermittent Failures Robot) |
Comment 9•3 years ago
|
||
https://wiki.mozilla.org/Bug_Triage#Intermittent_Test_Failure_Cleanup
For more information, please visit auto_nag documentation.
Comment 10•3 years ago
|
||
Recent failure log: https://treeherder.mozilla.org/logviewer?job_id=343843410&repo=autoland&lineNumber=143755
Comment hidden (Intermittent Failures Robot) |
Comment 12•3 years ago
|
||
https://wiki.mozilla.org/Bug_Triage#Intermittent_Test_Failure_Cleanup
For more information, please visit auto_nag documentation.
Comment hidden (Intermittent Failures Robot) |
Comment 14•3 years ago
|
||
Recent failure log: https://treeherder.mozilla.org/logviewer?job_id=352814073&repo=mozilla-esr91&lineNumber=148667
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Assignee | ||
Comment 18•3 years ago
|
||
(In reply to Jens Stutte [:jstutte] from comment #2)
We expect the input stream to be the same we already know. BTW, this seems to be the same for most implementations of
OnOutputStreamReady
but this special case, which makes me feel a bit unsure, if we really need this parameter in general.I see no obvious cause for this, though. Maybe it is totally unrelated, but I see a GC running on the main thread while this happens.
(In reply to Andrea Marchesini [:baku] from comment #3)
I would wait until we see more crashes. As far as I know, nothing has changed on the outputStream lately, and that code follows that the XPCOM IDL says: "aStream The stream whose asyncWait method was called."
https://searchfox.org/mozilla-central/rev/af5cff556a9482d7aa2267a82f2ccfaf18e797e9/xpcom/io/nsIAsyncOutputStream.idl#97-102
It's still there. We are coming from nsOutputStreamReadyEvent
thus we know that mStream
is not null and we even hold a strong reference to it in this event. Given the few places we manipulate mPipeOut
I must assume, we somehow executed FetchStreamReader::CloseAndRelease while this event was in flight. We might want to move this assert after the explicit check if we are already closed?
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Assignee | ||
Comment 22•2 years ago
|
||
(In reply to Jens Stutte [:jstutte] from comment #18)
I must assume, we somehow executed FetchStreamReader::CloseAndRelease while this event was in flight. We might want to move this assert after the explicit check if we are already closed?
So bug 1128959 comment 105 actually suggest the very same:
I think we should check mStreamClosed here before doing anything. Its possible the StreamReady runnable is in the event queue when the stream is closed. We should short-circuit any further action here.
Then the asserts should just move after the check here.
Assignee | ||
Comment 23•2 years ago
|
||
Updated•2 years ago
|
Comment 24•2 years ago
|
||
Pushed by jstutte@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d5746efda226 Only assert FetchStreamReader members in OnOutputStreamReady if we are not closed. r=smaug
Comment 25•2 years ago
|
||
bugherder |
Assignee | ||
Updated•2 years ago
|
Updated•2 years ago
|
Description
•