Closed Bug 1547893 Opened 5 years ago Closed 3 years ago

Assertion failure: !mEventDispatchingSuspended, at /builds/worker/workspace/build/src/dom/xhr/XMLHttpRequestMainThread.cpp:1259

Categories

(Core :: DOM: Networking, defect, P2)

defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox68 --- affected

People

(Reporter: jkratzer, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase, Whiteboard: [necko-triaged][bugmon:confirmed])

Attachments

(1 file)

Attached file testcase.html

Testcase found while fuzzing mozilla-central rev 420e18a75314.

Assertion failure: !mEventDispatchingSuspended, at /builds/worker/workspace/build/src/dom/xhr/XMLHttpRequestMainThread.cpp:1259

rax = 0x0000558bcebbae40 rdx = 0x0000000000000000
rcx = 0x00007f73c27f527e rbx = 0x00007f73b3477000
rsi = 0x00007f73cd75f8b0 rdi = 0x00007f73cd75e680
rbp = 0x00007ffcd9d61f00 rsp = 0x00007ffcd9d61f00
r8 = 0x00007f73cd75f8b0 r9 = 0x00007f73ce8c4740
r10 = 0x0000000000000002 r11 = 0x0000000000000000
r12 = 0x00007ffcd9d61f60 r13 = 0x0000000000000000
r14 = 0x00007ffcd9d61f78 r15 = 0x00007f73b2f67ee0
rip = 0x00007f73bed117fa
OS|Linux|0.0.0 Linux 4.18.0-17-generic #18~18.04.1-Ubuntu SMP Fri Mar 15 15:27:12 UTC 2019 x86_64
CPU|amd64|family 6 model 94 stepping 3|1
GPU|||
Crash|SIGSEGV /SEGV_MAPERR|0x0|0
0|0|libxul.so|mozilla::dom::XMLHttpRequestMainThread::SuspendEventDispatching()|hg:hg.mozilla.org/mozilla-central:dom/xhr/XMLHttpRequestMainThread.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|1259|0x16
0|1|libxul.so|mozilla::dom::XMLHttpRequestMainThread::SendInternal(mozilla::dom::BodyExtractorBase const*, bool)|hg:hg.mozilla.org/mozilla-central:dom/xhr/XMLHttpRequestMainThread.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|2896|0x8
0|2|libxul.so|mozilla::dom::XMLHttpRequestMainThread::Send(JSContext*, mozilla::dom::Nullable<mozilla::dom::DocumentOrBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString> const&, mozilla::ErrorResult&)|hg:hg.mozilla.org/mozilla-central:dom/xhr/XMLHttpRequestMainThread.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|2725|0xd
0|3|libxul.so|mozilla::dom::XMLHttpRequest_Binding::send|s3:gecko-generated-sources:4f666c455bc98965e2c0ef4f4aabdf18d6104240a6cf6b2c764e707165b87a250728d665b1bf0f30374bdb20a77bec30adb101f21c4c3c2182c8344e14c4a180/dom/bindings/XMLHttpRequestBinding.cpp:|1345|0x24
0|4|libxul.so|bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*)|hg:hg.mozilla.org/mozilla-central:dom/bindings/BindingUtils.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|3153|0x24
0|5|libxul.so|CallJSNative(JSContext*, bool ()(JSContext, unsigned int, JS::Value*), JS::CallArgs const&)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|443|0x13
0|6|libxul.so|js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|535|0x12
0|7|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|590|0xd
0|8|libxul.so|Interpret|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|594|0xf
0|9|libxul.so|js::RunScript(JSContext*, js::RunState&)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|423|0xb
0|10|libxul.so|js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|563|0xf
0|11|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|590|0xd
0|12|libxul.so|js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|606|0x5
0|13|libxul.so|js::ForwardingProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const|hg:hg.mozilla.org/mozilla-central:js/src/proxy/Wrapper.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|162|0x23
0|14|libxul.so|js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const|hg:hg.mozilla.org/mozilla-central:js/src/proxy/CrossCompartmentWrapper.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|237|0x13
0|15|libxul.so|xpc::XrayWrapper<js::CrossCompartmentWrapper, xpc::JSXrayTraits>::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const|hg:hg.mozilla.org/mozilla-central:js/xpconnect/wrappers/XrayWrapper.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|2148|0x58
0|16|libxul.so|js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&)|hg:hg.mozilla.org/mozilla-central:js/src/proxy/Proxy.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|504|0x15
0|17|libxul.so|js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|509|0x8
0|18|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|590|0xd
0|19|libxul.so|Interpret|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|594|0xf
0|20|libxul.so|js::RunScript(JSContext*, js::RunState&)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|423|0xb
0|21|libxul.so|js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|563|0xf
0|22|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|590|0xd
0|23|libxul.so|js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|606|0x5
0|24|libxul.so|js::CallSelfHostedFunction(JSContext*, JS::Handle<js::PropertyName*>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>)|hg:hg.mozilla.org/mozilla-central:js/src/vm/SelfHosting.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|1944|0x17
0|25|libxul.so|js::jit::InterpretResume(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>)|hg:hg.mozilla.org/mozilla-central:js/src/jit/VMFunctions.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|1004|0x5
0|26|||||0x181ab1b9d17f
0|27|||||0x181ab1b90ac4
0|28|libxul.so|EnterJit|hg:hg.mozilla.org/mozilla-central:js/src/jit/Jit.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|105|0x29
0|29|libxul.so|js::RunScript(JSContext*, js::RunState&)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|408|0xb
0|30|libxul.so|js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|563|0xf
0|31|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|590|0xd
0|32|libxul.so|js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|606|0x5
0|33|libxul.so|js::CallSelfHostedFunction(JSContext*, JS::Handle<js::PropertyName*>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>)|hg:hg.mozilla.org/mozilla-central:js/src/vm/SelfHosting.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|1944|0x17
0|34|libxul.so|AsyncFunctionResume|hg:hg.mozilla.org/mozilla-central:js/src/vm/AsyncFunction.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|115|0x2a
0|35|libxul.so|PromiseReactionJob|hg:hg.mozilla.org/mozilla-central:js/src/builtin/Promise.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|1654|0x14
0|36|libxul.so|CallJSNative(JSContext*, bool ()(JSContext, unsigned int, JS::Value*), JS::CallArgs const&)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|443|0x13
0|37|libxul.so|js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|535|0x12
0|38|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|590|0xd
0|39|libxul.so|js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|606|0x5
0|40|libxul.so|JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>)|hg:hg.mozilla.org/mozilla-central:js/src/jsapi.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|2636|0x1c
0|41|libxul.so|mozilla::dom::PromiseJobCallback::Call(JSContext*, JS::Handle<JS::Value>, mozilla::ErrorResult&)|s3:gecko-generated-sources:76e4bf7ec3dff9aabb3e44f25219114b78c0f488b9799e1b7f5fb9ca97307bf858bcd2681c0e4e8e8fc1b2f9893267e81d3a825904f0c19b7cd41058d267423f/dom/bindings/PromiseBinding.cpp:|26|0x5
0|42|libxul.so|mozilla::dom::PromiseJobCallback::Call(mozilla::ErrorResult&, char const*, mozilla::dom::CallbackObject::ExceptionHandling, JS::Realm*)|s3:gecko-generated-sources:8ff597fee16137a41c5c768d4731e63150ba2f32aaccb2a1985be307f0fad868e61bb63f08de085a377133bcfcb41787e072b5d1f0cda75a29d00492f676fce1/dist/include/mozilla/dom/PromiseBinding.h:|91|0x12
0|43|libxul.so|mozilla::PromiseJobRunnable::Run(mozilla::AutoSlowOperation&)|hg:hg.mozilla.org/mozilla-central:xpcom/base/CycleCollectedJSContext.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|236|0x47
0|44|libxul.so|mozilla::CycleCollectedJSContext::PerformMicroTaskCheckPoint(bool)|hg:hg.mozilla.org/mozilla-central:xpcom/base/CycleCollectedJSContext.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|599|0x17
0|45|libxul.so|mozilla::CycleCollectedJSContext::AfterProcessTask(unsigned int)|hg:hg.mozilla.org/mozilla-central:xpcom/base/CycleCollectedJSContext.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|438|0x7
0|46|libxul.so|XPCJSContext::AfterProcessTask(unsigned int)|hg:hg.mozilla.org/mozilla-central:js/xpconnect/src/XPCJSContext.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|1273|0xb
0|47|libxul.so|nsThread::ProcessNextEvent(bool, bool*)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|1240|0xc
0|48|libxul.so|NS_ProcessNextEvent(nsIThread*, bool)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|486|0x11
0|49|libxul.so|mozilla::dom::XMLHttpRequestMainThread::SendInternal(mozilla::dom::BodyExtractorBase const*, bool)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.h:420e18a75314b8123b515d8a93cbacd145ecb03c|348|0x11
0|50|libxul.so|mozilla::dom::XMLHttpRequestMainThread::Send(JSContext*, mozilla::dom::Nullable<mozilla::dom::DocumentOrBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString> const&, mozilla::ErrorResult&)|hg:hg.mozilla.org/mozilla-central:dom/xhr/XMLHttpRequestMainThread.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|2725|0xd
0|51|libxul.so|mozilla::dom::XMLHttpRequest_Binding::send|s3:gecko-generated-sources:4f666c455bc98965e2c0ef4f4aabdf18d6104240a6cf6b2c764e707165b87a250728d665b1bf0f30374bdb20a77bec30adb101f21c4c3c2182c8344e14c4a180/dom/bindings/XMLHttpRequestBinding.cpp:|1345|0x24
0|52|libxul.so|bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*)|hg:hg.mozilla.org/mozilla-central:dom/bindings/BindingUtils.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|3153|0x24
0|53|libxul.so|CallJSNative(JSContext*, bool ()(JSContext, unsigned int, JS::Value*), JS::CallArgs const&)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|443|0x13
0|54|libxul.so|js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|535|0x12
0|55|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|590|0xd
0|56|libxul.so|Interpret|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|594|0xf
0|57|libxul.so|js::RunScript(JSContext*, js::RunState&)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|423|0xb
0|58|libxul.so|js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|563|0xf
0|59|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|590|0xd
0|60|libxul.so|js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|606|0x5
0|61|libxul.so|js::ForwardingProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const|hg:hg.mozilla.org/mozilla-central:js/src/proxy/Wrapper.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|162|0x23
0|62|libxul.so|js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const|hg:hg.mozilla.org/mozilla-central:js/src/proxy/CrossCompartmentWrapper.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|237|0x13
0|63|libxul.so|xpc::XrayWrapper<js::CrossCompartmentWrapper, xpc::JSXrayTraits>::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const|hg:hg.mozilla.org/mozilla-central:js/xpconnect/wrappers/XrayWrapper.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|2148|0x58
0|64|libxul.so|js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&)|hg:hg.mozilla.org/mozilla-central:js/src/proxy/Proxy.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|504|0x15
0|65|libxul.so|js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|509|0x8
0|66|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|590|0xd
0|67|libxul.so|Interpret|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|594|0xf
0|68|libxul.so|js::RunScript(JSContext*, js::RunState&)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|423|0xb
0|69|libxul.so|js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|563|0xf
0|70|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|590|0xd
0|71|libxul.so|js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|606|0x5
0|72|libxul.so|js::CallSelfHostedFunction(JSContext*, JS::Handle<js::PropertyName*>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>)|hg:hg.mozilla.org/mozilla-central:js/src/vm/SelfHosting.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|1944|0x17
0|73|libxul.so|AsyncFunctionResume|hg:hg.mozilla.org/mozilla-central:js/src/vm/AsyncFunction.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|115|0x2a
0|74|libxul.so|PromiseReactionJob|hg:hg.mozilla.org/mozilla-central:js/src/builtin/Promise.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|1654|0x117
0|75|libxul.so|CallJSNative(JSContext*, bool ()(JSContext, unsigned int, JS::Value*), JS::CallArgs const&)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|443|0x13
0|76|libxul.so|js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|535|0x12
0|77|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|590|0xd
0|78|libxul.so|js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|606|0x5
0|79|libxul.so|JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>)|hg:hg.mozilla.org/mozilla-central:js/src/jsapi.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|2636|0x1c
0|80|libxul.so|mozilla::dom::PromiseJobCallback::Call(JSContext*, JS::Handle<JS::Value>, mozilla::ErrorResult&)|s3:gecko-generated-sources:76e4bf7ec3dff9aabb3e44f25219114b78c0f488b9799e1b7f5fb9ca97307bf858bcd2681c0e4e8e8fc1b2f9893267e81d3a825904f0c19b7cd41058d267423f/dom/bindings/PromiseBinding.cpp:|26|0x5
0|81|libxul.so|mozilla::dom::PromiseJobCallback::Call(mozilla::ErrorResult&, char const*, mozilla::dom::CallbackObject::ExceptionHandling, JS::Realm*)|s3:gecko-generated-sources:8ff597fee16137a41c5c768d4731e63150ba2f32aaccb2a1985be307f0fad868e61bb63f08de085a377133bcfcb41787e072b5d1f0cda75a29d00492f676fce1/dist/include/mozilla/dom/PromiseBinding.h:|91|0x12
0|82|libxul.so|mozilla::PromiseJobRunnable::Run(mozilla::AutoSlowOperation&)|hg:hg.mozilla.org/mozilla-central:xpcom/base/CycleCollectedJSContext.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|236|0x47
0|83|libxul.so|mozilla::CycleCollectedJSContext::PerformMicroTaskCheckPoint(bool)|hg:hg.mozilla.org/mozilla-central:xpcom/base/CycleCollectedJSContext.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|599|0x17
0|84|libxul.so|mozilla::dom::CallbackObject::CallSetup::~CallSetup()|hg:hg.mozilla.org/mozilla-central:dom/bindings/CallbackObject.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|355|0x1d
0|85|libxul.so|mozilla::dom::PeerConnectionObserverJSImpl::OnSetRemoteDescriptionError(mozilla::dom::PCErrorData const&, mozilla::ErrorResult&, JS::Realm*)|s3:gecko-generated-sources:4c59934d978779499ea9ef047bf80fd4666f75e13ebf095d726ed0c0cd8a50d2643f70f63bade0b45f3add36bbd94cace845d975aeeefe6856be5aca0e24935b/dom/bindings/PeerConnectionObserverBinding.cpp:|2088|0xc
0|86|libxul.so|mozilla::PeerConnectionImpl::SetRemoteDescription(int, char const*)|hg:hg.mozilla.org/mozilla-central:media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|1462|0x14
0|87|libxul.so|mozilla::DeferredSetRemote|hg:hg.mozilla.org/mozilla-central:media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|1395|0xe
0|88|libxul.so|mozilla::runnable_args_func<void ()(std::string const&, int, std::string const&), std::string, int, std::string>::Run()|hg:hg.mozilla.org/mozilla-central:media/mtransport/runnable_utils.h:420e18a75314b8123b515d8a93cbacd145ecb03c|93|0x3
0|89|libxul.so|mozilla::PeerConnectionCtx::onGMPReady()|hg:hg.mozilla.org/mozilla-central:media/webrtc/signaling/src/peerconnection/PeerConnectionCtx.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|381|0x3
0|90|libxul.so|mozilla::runnable_args_func<void (
)()>::Run()|hg:hg.mozilla.org/mozilla-central:media/mtransport/runnable_utils.h:420e18a75314b8123b515d8a93cbacd145ecb03c|93|0x3
0|91|libxul.so|nsThread::ProcessNextEvent(bool, bool*)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|1180|0x15
0|92|libxul.so|NS_ProcessNextEvent(nsIThread*, bool)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|486|0x11
0|93|libxul.so|mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessagePump.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|88|0xa
0|94|libxul.so|MessageLoop::RunInternal()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:420e18a75314b8123b515d8a93cbacd145ecb03c|315|0x17
0|95|libxul.so|MessageLoop::Run()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:420e18a75314b8123b515d8a93cbacd145ecb03c|290|0x8
0|96|libxul.so|nsBaseAppShell::Run()|hg:hg.mozilla.org/mozilla-central:widget/nsBaseAppShell.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|137|0xd
0|97|libxul.so|XRE_RunAppShell()|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsEmbedFunctions.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|919|0x11
0|98|libxul.so|mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessagePump.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|238|0x5
0|99|libxul.so|MessageLoop::RunInternal()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:420e18a75314b8123b515d8a93cbacd145ecb03c|315|0x17
0|100|libxul.so|MessageLoop::Run()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:420e18a75314b8123b515d8a93cbacd145ecb03c|290|0x8
0|101|libxul.so|XRE_InitChildProcess(int, char**, XREChildData const*)|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsEmbedFunctions.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|757|0xc
0|102|firefox-bin|content_process_main(mozilla::Bootstrap*, int, char**)|hg:hg.mozilla.org/mozilla-central:ipc/contentproc/plugin-container.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|56|0x14
0|103|firefox-bin|main|hg:hg.mozilla.org/mozilla-central:browser/app/nsBrowserApp.cpp:420e18a75314b8123b515d8a93cbacd145ecb03c|263|0x11
0|104|libc-2.27.so|__libc_start_main|||0xe7
0|105|firefox-bin|_start|||0x29

Flags: in-testsuite?
Component: DOM: Core & HTML → DOM: Networking
Flags: needinfo?(twisniewski)

This code is only used for sync XHRs, in the send() method:

    SuspendEventDispatching();
    StopProgressEventTimer();

    SyncTimeoutType syncTimeoutType = MaybeStartSyncTimeoutTimer();
    if (syncTimeoutType == eErrorOrExpired) {
      Abort();
      rv = NS_ERROR_DOM_NETWORK_ERR;
    }

    if (NS_SUCCEEDED(rv)) {
      nsAutoSyncOperation sync(mSuspendedDoc);
      if (!SpinEventLoopUntil([&]() { return !mFlagSyncLooping; })) {
        rv = NS_ERROR_UNEXPECTED;
      }

      // Time expired... We should throw.
      if (syncTimeoutType == eTimerStarted && !mSyncTimeoutTimer) {
        rv = NS_ERROR_DOM_NETWORK_ERR;
      }

      CancelSyncTimeoutTimer();
    }

    UnsuppressEventHandlingAndResume();
    ResumeEventDispatching();

So SuspendEventDispatching() must be being called a second time before ResumeEventDispatching() is called, which does make sense as I see that the test-case is using RTCPeerConnection callbacks to send an xhr twice, once in setRemoteDescription, and once in createOffer.

But I'm not sure what the best fix is here. We have a NOT_CALLABLE_IN_SYNC_SEND check which we could alter to cause the second open() command to fail, or we could have the second open() call resume event dispatching. baku, what do you think?

Flags: needinfo?(twisniewski) → needinfo?(amarchesini)

Our implementation of sync XHR is broken. A similar issue can be reproduced with other APIs than RTCPeerConnection.
I think we should make open() and send() to fail in case mFlagSyncLooping is set to true.

Flags: needinfo?(amarchesini)
Whiteboard: [necko-triaged]

Bugmon Analysis:
Unable to reproduce bug using the following builds:

mozilla-central 20210224215151-69be3221f49a
mozilla-central 20200226092757-7f41334e1044

Whiteboard: [necko-triaged] → [necko-triaged][bugmon:confirmed]

This seems to have been solved elsewhere more than a year ago.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: