Closed Bug 1422296 Opened 7 years ago Closed 6 years ago

Permanent false-positive /streams/readable-streams/tee.dedicatedworker.html | application crashed [@ ReadableStreamControllerError(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JS::Value>)] after Assertion failure: stream->readable()

Categories

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

defect

Tracking

()

RESOLVED FIXED
mozilla64
Tracking Status
firefox-esr52 --- unaffected
firefox-esr60 --- disabled
firefox59 --- wontfix
firefox60 --- wontfix
firefox61 --- wontfix
firefox62 --- wontfix
firefox63 --- wontfix
firefox64 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: jorendorff)

References

Details

(Keywords: assertion, crash, intermittent-failure)

Crash Data

Summary: Intermittent /streams/readable-streams/tee.dedicatedworker.html | application crashed [@ ReadableStreamControllerError(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JS::Value>)] → Permanent false-positive /streams/readable-streams/tee.dedicatedworker.html | application crashed [@ ReadableStreamControllerError(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JS::Value>)]
Crash Signature: [@ ReadableStreamControllerError(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JS::Value>)] → [@ ReadableStreamControllerError(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JS::Value>)] [@ ReadableStreamControllerError]
Component: web-platform-tests → DOM
Product: Testing → Core
Version: Version 3 → Trunk
Here the crash stack:

20:46:40     INFO - Crash reason:  EXC_BAD_ACCESS / KERN_INVALID_ADDRESS
20:46:40     INFO - Crash address: 0x0
20:46:40     INFO - Process uptime: 6 seconds
20:46:40     INFO - 
20:46:40     INFO - Thread 32 (crashed)
20:46:40     INFO -  0  XUL!ReadableStreamControllerError(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JS::Value>) [Stream.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 2931 + 0x0]
20:46:40     INFO -     rax = 0x0000000000000000   rdx = 0x00007fff7da881f8
20:46:40     INFO -     rcx = 0x0000000000000000   rbx = 0x00000001109db060
20:46:40     INFO -     rsi = 0x0000160000001600   rdi = 0x0000150000001603
20:46:40     INFO -     rbp = 0x00000001241ff4a0   rsp = 0x00000001241ff440
20:46:40     INFO -      r8 = 0x00000001241ff3f0    r9 = 0x0000000124201000
20:46:40     INFO -     r10 = 0x0000000000000000   r11 = 0x0000000000000246
20:46:40     INFO -     r12 = 0x0000000121f8e000   r13 = 0x00000001241ff6e0
20:46:40     INFO -     r14 = 0x00000001241ff6e0   r15 = 0x00000001241ff4c0
20:46:40     INFO -     rip = 0x000000010d72eb42
20:46:40     INFO -     Found by: given as instruction pointer in context
20:46:40     INFO -  1  XUL!TeeReaderClosedHandler(JSContext*, unsigned int, JS::Value*) [Stream.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 1177 + 0xb]
20:46:40     INFO -     rbx = 0x0000000121f8e020   rbp = 0x00000001241ff520
20:46:40     INFO -     rsp = 0x00000001241ff4b0   r12 = 0x00000001241ff4b0
20:46:40     INFO -     r13 = 0x00000001241ff4e0   r14 = 0x00000001241ff6e0
20:46:40     INFO -     r15 = 0x0000000121f8e000   rip = 0x000000010d7681cb
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO -  2  XUL!js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) [JSContext-inl.h:61b3c0c87bb5ce6601616450146aff14642f5826 : 280 + 0x6]
20:46:40     INFO -     rbx = 0x00000001241ff6e8   rbp = 0x00000001241ff570
20:46:40     INFO -     rsp = 0x00000001241ff530   r12 = 0x00000001241ff6a0
20:46:40     INFO -     r13 = 0x0000000110b987e8   r14 = 0x0000000121f8e000
20:46:40     INFO -     r15 = 0x000000010d768060   rip = 0x000000010d35b72f
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO -  3  XUL!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [Interpreter.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 467 + 0xb]
20:46:40     INFO -     rbx = 0x0000000000000002   rbp = 0x00000001241ff600
20:46:40     INFO -     rsp = 0x00000001241ff580   r12 = 0x00000001241ff6a0
20:46:40     INFO -     r13 = 0x00000001241ff5c0   r14 = 0x0000000121f8e000
20:46:40     INFO -     r15 = 0x0000000000000000   rip = 0x000000010d35b3ad
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO -  4  XUL!<name omitted> [Interpreter.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 535 + 0x8]
20:46:40     INFO -     rbx = 0x00000001241ff6a0   rbp = 0x00000001241ff620
20:46:40     INFO -     rsp = 0x00000001241ff610   r12 = 0x0000000121f8e020
20:46:40     INFO -     r13 = 0x0000000121f8e000   r14 = 0x00000001241ff738
20:46:40     INFO -     r15 = 0xfff8800000000000   rip = 0x000000010d35bd3d
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO -  5  XUL!PromiseReactionJob(JSContext*, unsigned int, JS::Value*) [Promise.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 1237 + 0xf]
20:46:40     INFO -     rbx = 0x0000000121f8e060   rbp = 0x00000001241ff780
20:46:40     INFO -     rsp = 0x00000001241ff630   r12 = 0x0000000121f8e020
20:46:40     INFO -     r13 = 0x0000000121f8e000   r14 = 0x00000001241ff738
20:46:40     INFO -     r15 = 0xfff8800000000000   rip = 0x000000010d3e677e
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO -  6  XUL!js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) [JSContext-inl.h:61b3c0c87bb5ce6601616450146aff14642f5826 : 280 + 0x6]
20:46:40     INFO -     rbx = 0x00000001241ff960   rbp = 0x00000001241ff7d0
20:46:40     INFO -     rsp = 0x00000001241ff790   r12 = 0x00000001241ff900
20:46:40     INFO -     r13 = 0x0000000110b987e8   r14 = 0x0000000121f8e000
20:46:40     INFO -     r15 = 0x000000010d3e5ff0   rip = 0x000000010d35b72f
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO -  7  XUL!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [Interpreter.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 467 + 0xb]
20:46:40     INFO -     rbx = 0x0000000000000001   rbp = 0x00000001241ff860
20:46:40     INFO -     rsp = 0x00000001241ff7e0   r12 = 0x00000001241ff900
20:46:40     INFO -     r13 = 0x00000001241ff820   r14 = 0x0000000121f8e000
20:46:40     INFO -     r15 = 0x0000000000000000   rip = 0x000000010d35b3ad
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO -  8  XUL!<name omitted> [Interpreter.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 535 + 0x8]
20:46:40     INFO -     rbx = 0x00000001241ff900   rbp = 0x00000001241ff880
20:46:40     INFO -     rsp = 0x00000001241ff870   r12 = 0x000000010f0584b8
20:46:40     INFO -     r13 = 0x0000000121f8e000   r14 = 0x00000001241ffa30
20:46:40     INFO -     r15 = 0x00000001241ffa30   rip = 0x000000010d35bd3d
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO -  9  XUL!JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) [jsapi.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 2987 + 0x12]
20:46:40     INFO -     rbx = 0x00000001241ff9f0   rbp = 0x00000001241ff9e0
20:46:40     INFO -     rsp = 0x00000001241ff890   r12 = 0x000000010f0584b8
20:46:40     INFO -     r13 = 0x0000000121f8e000   r14 = 0x00000001241ff910
20:46:40     INFO -     r15 = 0x00000001241ffa30   rip = 0x000000010d896d27
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 10  XUL!mozilla::dom::PromiseJobCallback::Call(JSContext*, JS::Handle<JS::Value>, mozilla::ErrorResult&) [PromiseBinding.cpp: : 25 + 0x11]
20:46:40     INFO -     rbx = 0x00000001241ffa18   rbp = 0x00000001241ffa60
20:46:40     INFO -     rsp = 0x00000001241ff9f0   r12 = 0x000000010f0584b8
20:46:40     INFO -     r13 = 0x0000000121f8e000   r14 = 0x00000001241ffa08
20:46:40     INFO -     r15 = 0x00000001241ffa30   rip = 0x0000000109f56798
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 11  XUL!mozilla::dom::PromiseJobCallback::Call(char const*) [PromiseBinding.h: : 91 + 0x8]
20:46:40     INFO -     rbx = 0x000000010e7d0ce3   rbp = 0x00000001241ffc60
20:46:40     INFO -     rsp = 0x00000001241ffa70   r12 = 0x0000000124200600
20:46:40     INFO -     r13 = 0x00000001112a3001   r14 = 0x00000001257034c0
20:46:40     INFO -     r15 = 0x00000001242004d0   rip = 0x00000001085fce8c
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 12  XUL!mozilla::PromiseJobRunnable::Run(mozilla::AutoSlowOperation&) [CycleCollectedJSContext.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 205 + 0xc]
20:46:40     INFO -     rbx = 0x0000000122ff1638   rbp = 0x00000001241ffc80
20:46:40     INFO -     rsp = 0x00000001241ffc70   r12 = 0x0000000124200600
20:46:40     INFO -     r13 = 0x00000001112a3001   r14 = 0x00000001241ffce8
20:46:40     INFO -     r15 = 0x00000001242004d0   rip = 0x00000001085fc32e
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 13  XUL!mozilla::CycleCollectedJSContext::PerformMicroTaskCheckPoint() [CycleCollectedJSContext.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 543 + 0xc]
20:46:40     INFO -     rbx = 0x0000000000000000   rbp = 0x00000001241ffd90
20:46:40     INFO -     rsp = 0x00000001241ffc90   r12 = 0x0000000124200600
20:46:40     INFO -     r13 = 0x00000001112a3001   r14 = 0x0000000000000001
20:46:40     INFO -     r15 = 0x00000001242004d0   rip = 0x00000001085ee661
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 14  XUL!mozilla::CycleCollectedJSContext::AfterProcessTask(unsigned int) [CycleCollectedJSContext.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 374 + 0x8]
20:46:40     INFO -     rbx = 0x00000001242004d0   rbp = 0x00000001241ffdb0
20:46:40     INFO -     rsp = 0x00000001241ffda0   r12 = 0x0000000000000000
20:46:40     INFO -     r13 = 0x00000001112a30e0   r14 = 0x0000000124200210
20:46:40     INFO -     r15 = 0x0000000000000000   rip = 0x00000001085ee99b
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 15  XUL!nsThread::ProcessNextEvent(bool, bool*) [nsThread.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 1133 + 0x3]
20:46:40     INFO -     rbx = 0x00000001223a6660   rbp = 0x0000000124200360
20:46:40     INFO -     rsp = 0x00000001241ffdc0   r12 = 0x0000000000000000
20:46:40     INFO -     r13 = 0x00000001112a30e0   r14 = 0x0000000124200210
20:46:40     INFO -     r15 = 0x0000000000000000   rip = 0x00000001086b80a2
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 16  XUL!NS_ProcessNextEvent(nsIThread*, bool) [nsThreadUtils.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 519 + 0xd]
20:46:40     INFO -     rbx = 0x0000000000000000   rbp = 0x0000000124200380
20:46:40     INFO -     rsp = 0x0000000124200370   r12 = 0x000000012233a000
20:46:40     INFO -     r13 = 0x000000012233a420   r14 = 0x0000000000000001
20:46:40     INFO -     r15 = 0x0000000000000000   rip = 0x00000001086c6f8f
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 17  XUL!mozilla::dom::WorkerPrivate::DoRunLoop(JSContext*) [WorkerPrivate.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 3357 + 0x7]
20:46:40     INFO -     rbx = 0x000000012233a410   rbp = 0x00000001242004c0
20:46:40     INFO -     rsp = 0x0000000124200390   r12 = 0x000000012233a000
20:46:40     INFO -     r13 = 0x000000012233a420   r14 = 0x0000000000000001
20:46:40     INFO -     r15 = 0x0000000000000000   rip = 0x000000010b65c88b
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 18  XUL!mozilla::dom::workerinternals::(anonymous namespace)::WorkerThreadPrimaryRunnable::Run() [RuntimeService.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 2741 + 0x8]
20:46:40     INFO -     rbx = 0x0000000121f8e000   rbp = 0x0000000124200820
20:46:40     INFO -     rsp = 0x00000001242004d0   r12 = 0x000000000000000c
20:46:40     INFO -     r13 = 0x000000010eae63e3   r14 = 0x000000010eae4a01
20:46:40     INFO -     r15 = 0x00000001223a4c00   rip = 0x000000010b63de26
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 19  XUL!nsThread::ProcessNextEvent(bool, bool*) [nsThread.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 1096 + 0x6]
20:46:40     INFO -     rbx = 0x0000000124200898   rbp = 0x0000000124200dd0
20:46:40     INFO -     rsp = 0x0000000124200830   r12 = 0x0000000000000000
20:46:40     INFO -     r13 = 0x00000001112a30e0   r14 = 0x0000000000000001
20:46:40     INFO -     r15 = 0x0000000000000000   rip = 0x00000001086b7a30
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 20  XUL!NS_ProcessNextEvent(nsIThread*, bool) [nsThreadUtils.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 519 + 0xd]
20:46:40     INFO -     rbx = 0x0000000000000001   rbp = 0x0000000124200df0
20:46:40     INFO -     rsp = 0x0000000124200de0   r12 = 0x0000000000000000
20:46:40     INFO -     r13 = 0x00000001223a4ba0   r14 = 0x00000001223a4b80
20:46:40     INFO -     r15 = 0x00000001112a30e0   rip = 0x00000001086c6f8f
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 21  XUL!mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) [MessagePump.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 364 + 0xd]
20:46:40     INFO -     rbx = 0x000000011d3f95f0   rbp = 0x0000000124200e40
20:46:40     INFO -     rsp = 0x0000000124200e00   r12 = 0x0000000000000000
20:46:40     INFO -     r13 = 0x00000001223a4ba0   r14 = 0x00000001223a4b80
20:46:40     INFO -     r15 = 0x00000001112a30e0   rip = 0x0000000108cde192
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 22  XUL!MessageLoop::Run() [message_loop.cc:61b3c0c87bb5ce6601616450146aff14642f5826 : 319 + 0x5]
20:46:40     INFO -     rbx = 0x00000001112a30e0   rbp = 0x0000000124200e70
20:46:40     INFO -     rsp = 0x0000000124200e50   r12 = 0x000000000000b107
20:46:40     INFO -     r13 = 0x00000000000008ff   r14 = 0x000000011d3f95f0
20:46:40     INFO -     r15 = 0x00000001112a3108   rip = 0x0000000108c8d767
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 23  XUL!nsThread::ThreadFunc(void*) [nsThread.cpp:61b3c0c87bb5ce6601616450146aff14642f5826 : 425 + 0x5]
20:46:40     INFO -     rbx = 0x00000001112a30e0   rbp = 0x0000000124200ec0
20:46:40     INFO -     rsp = 0x0000000124200e80   r12 = 0x000000000000b107
20:46:40     INFO -     r13 = 0x00000000000008ff   r14 = 0x000000011d3f95f0
20:46:40     INFO -     r15 = 0x00000001112a3108   rip = 0x00000001086b4bd7
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 24  libnss3.dylib!_pt_root [ptthread.c:61b3c0c87bb5ce6601616450146aff14642f5826 : 201 + 0x3]
20:46:40     INFO -     rbx = 0x00000001112358e0   rbp = 0x0000000124200ef0
20:46:40     INFO -     rsp = 0x0000000124200ed0   r12 = 0x000000000000b107
20:46:40     INFO -     r13 = 0x00000000000008ff   r14 = 0x0000000108597450
20:46:40     INFO -     r15 = 0x0000000000000002   rip = 0x000000010842b5ff
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 25  libsystem_pthread.dylib + 0x405a
20:46:40     INFO -     rbx = 0x0000000124201000   rbp = 0x0000000124200f10
20:46:40     INFO -     rsp = 0x0000000124200f00   r12 = 0x000000000000b107
20:46:40     INFO -     r13 = 0x00000000000008ff   r14 = 0x00000001112358e0
20:46:40     INFO -     r15 = 0x000000010842b4f0   rip = 0x00007fff8ec1605a
20:46:40     INFO -     Found by: call frame info
20:46:40     INFO - 26  libsystem_pthread.dylib + 0x3fd7
20:46:40     INFO -     rbp = 0x0000000124200f50   rsp = 0x0000000124200f20
20:46:40     INFO -     rip = 0x00007fff8ec15fd7
20:46:40     INFO -     Found by: previous frame's frame pointer
20:46:40     INFO - 27  libsystem_pthread.dylib + 0x13ed
20:46:40     INFO -     rbp = 0x0000000124200f78   rsp = 0x0000000124200f60
20:46:40     INFO -     rip = 0x00007fff8ec133ed
20:46:40     INFO -     Found by: previous frame's frame pointer
20:46:40     INFO - 28  libnss3.dylib + 0x14f4f0
20:46:40     INFO -     rsp = 0x0000000124201030   rip = 0x000000010842b4f0
20:46:40     INFO -     Found by: stack scanning

There is also an assertion right before:

20:46:08     INFO - PID 2406 | Assertion failure: stream->readable(), at /builds/worker/workspace/build/src/js/src/builtin/Stream.cpp:2931

https://dxr.mozilla.org/mozilla-central/rev/5ded36cb383d3ccafd9b6c231c5120dcdae196a2/js/src/builtin/Stream.cpp#2931
Keywords: assertion
Summary: Permanent false-positive /streams/readable-streams/tee.dedicatedworker.html | application crashed [@ ReadableStreamControllerError(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JS::Value>)] → Permanent false-positive /streams/readable-streams/tee.dedicatedworker.html | application crashed [@ ReadableStreamControllerError(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JS::Value>)] after Assertion failure: stream->readable()
Till, this assertion hits in 4 tests (and is currently annotated as a known crash in our CI as a result):
streams/readable-streams/tee.dedicatedworker.html
streams/readable-streams/tee.html
streams/readable-streams/tee.serviceworker.https.html
streams/readable-streams/tee.sharedworker.html

Any chance you could take a look to maybe reduce some of the noise in our test suite? Thanks!
Flags: needinfo?(till)
Priority: P5 → P3
After discussing with dluca, philor, and Aryx, here's what I think the situation is here:

This wpt-test, and a few other streams tests, are currently marked as "expected to crash" in debug builds (because we have horrible bugs, leading to assertion failures; see bug 1385890). The bug here, I gather, is that sometimes the tests time out (or whatever) instead of crashing.

When bug 1385890 lands, the crashes are fixed, so this will morph into a very, very intermittent timeout or something like that.
Calling this fixed by bug 1385890. Per IRC discussion with Jason, I'm going to skip these tests on ESR60. They don't serve any useful purpose there anyway.
Assignee: nobody → jorendorff
Status: NEW → RESOLVED
Closed: 6 years ago
Depends on: 1385890
Flags: needinfo?(till)
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
The robot hasn't reported this happening on mozilla-inbound or mozilla-central since bug 1385890 landed. (Comment 48 reports one mozilla-inbound crash, but it happened the day before the fix landed.)
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.