Crash [@ mozilla::ipc::CreateEndpoints<T> ] / [@ nsCORSListenerProxy::OnDataAvailable ]
Categories
(WebExtensions :: General, defect)
Tracking
(firefox-esr68 unaffected, firefox74 unaffected, firefox75 unaffected, firefox76 unaffected, firefox77 fixed)
Tracking | Status | |
---|---|---|
firefox-esr68 | --- | unaffected |
firefox74 | --- | unaffected |
firefox75 | --- | unaffected |
firefox76 | --- | unaffected |
firefox77 | --- | fixed |
People
(Reporter: johnp, Assigned: mattwoodrow)
References
(Regression, )
Details
(Keywords: crash, regression)
Crash Data
Attachments
(2 files)
Newest Nightly (20200409095500) crashes quickly after launch:
bp-a20c4459-dfa5-4c86-afa5-5b48a0200409
Downgrading to 07-03-2020 fixes the issue. From the crash report, the first crash happened after half an hour uptime, so also may have been caused by an add-on updating in the background(?).
Somehow this crash report is also created as many times as the crash happens with the former one (not sure if it is related, at least two other installations report that crash without the former one):
bp-52e37d41-5a4f-4325-9304-8b1340200409
This is happening with fission and webrender enabled and many more modifications (http3, tcp fast open, first party isolation, e10s shared font list, gpu process, ...) and extensions on my default profile. Tentatively blocking bug 1597159 based on the stack trace.
Updated•4 years ago
|
Reporter | ||
Comment 1•4 years ago
•
|
||
This also crashed one/two(?) tab processes after restarting with fission disabled, but not since:
bp-2b80e12d-54cb-4aef-8f2a-c5a300200409
bp-ee953773-8d79-4adc-a3e1-341060200409
edit: Restarting always crashes at least 1 content process while loading my session with fission disabled (instead of a whole browser crash).
edit2: This URL reliably causes the content process crash in my session (pinned tab, so it's likely to blame for the other crashes as well):
https://www.arcgis.com/apps/opsdashboard/index.html#/bda7594740fd40299423467b48e9ecf6
edit3: Several other sites also seem to intermittently cause the crash.
Reporter | ||
Updated•4 years ago
|
Reporter | ||
Updated•4 years ago
|
Assignee | ||
Comment 2•4 years ago
|
||
It looks like this is two separate crashes.
The first one is from https://hg.mozilla.org/mozilla-central/rev/037b03cc5009 and nsHttpChannel::AttachStreamFilter needs to null-check ProcessId().
The other is from https://hg.mozilla.org/mozilla-central/rev/ef27657560d1 and it appears we now have a race condition where OnStopRequest can be delivered to the listeners before OnDataAvailable.
I haven't been able to reproduce the issue with the linked site. It almost certainly requires the right addons to be installed to happen.
Johannes, could you please try disabling some addons to see which one causes the issue for you?
Reporter | ||
Comment 3•4 years ago
|
||
I managed to reliably reproduce the [@ nsCORSListenerProxy::OnDataAvailable ] crash with only WebAssembly Detector installed on a clean profile.
Updated•4 years ago
|
Assignee | ||
Comment 4•4 years ago
|
||
(In reply to Johannes Pfrang [:johnp] from comment #3)
I managed to reliably reproduce the [@ nsCORSListenerProxy::OnDataAvailable ] crash with only WebAssembly Detector installed on a clean profile.
Awesome, I can fairly reliably repro with that too. Thanks!
Assignee | ||
Comment 5•4 years ago
|
||
Updated•4 years ago
|
Assignee | ||
Comment 6•4 years ago
|
||
Depends on D70574
Pushed by mwoodrow@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/6e67603de6d7 Don't emit a manual OnStopRequest from StreamFilterParent if we're currently disconnecting. r=mixedpuppy https://hg.mozilla.org/integration/autoland/rev/f6c6a79d8448 Check ProcessId for 0 before trying to create an Endpoint using it. r=mixedpuppy
Comment 8•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/6e67603de6d7
https://hg.mozilla.org/mozilla-central/rev/f6c6a79d8448
Updated•4 years ago
|
Comment 9•4 years ago
|
||
I'm still hitting this by run mach xpcshell-test toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js
in my linux local with mOtherPid == 0
in DocumentLoadListener
0:43.77 pid:846 #01: nsresult mozilla::ipc::CreateEndpoints<mozilla::extensions::PStreamFilterParent, mozilla::extensions::PStreamFilterChild>(mozilla::ipc::PrivateIPDLInterface const&, int, int, mozilla
::ipc::Endpoint<mozilla::extensions::PStreamFilterParent>*, mozilla::ipc::Endpoint<mozilla::extensions::PStreamFilterChild>*) (/home/juhsu/mozilla-central/obj-x86_64-pc-linux-gnu/dist/include/mozilla/ipc/
ProtocolUtils.h:764)
0:43.77 pid:846 #02: mozilla::extensions::PStreamFilter::CreateEndpoints(int, int, mozilla::ipc::Endpoint<mozilla::extensions::PStreamFilterParent>*, mozilla::ipc::Endpoint<mozilla::extensions::PStreamFi
lterChild>*) (/home/juhsu/mozilla-central/obj-x86_64-pc-linux-gnu/ipc/ipdl/PStreamFilter.cpp:24)
0:43.77 pid:846 #03: mozilla::net::DocumentLoadListener::TriggerRedirectToRealChannel(mozilla::Maybe<unsigned long> const&) (/home/juhsu/mozilla-central/netwerk/ipc/DocumentLoadListener.cpp:1501)
0:43.77 pid:846 #04: mozilla::net::DocumentLoadListener::OnStartRequest(nsIRequest*) (/home/juhsu/mozilla-central/netwerk/ipc/DocumentLoadListener.cpp:1616)
0:43.78 pid:846 #05: mozilla::net::ParentChannelListener::OnStartRequest(nsIRequest*) (/home/juhsu/mozilla-central/netwerk/protocol/http/ParentChannelListener.cpp:98)
0:43.78 pid:846 #06: nsDocumentOpenInfo::OnStartRequest(nsIRequest*) (/home/juhsu/mozilla-central/uriloader/base/nsURILoader.cpp:189)
0:43.78 pid:846 #07: mozilla::net::ParentProcessDocumentOpenInfo::OnStartRequest(nsIRequest*) (/home/juhsu/mozilla-central/netwerk/ipc/DocumentLoadListener.cpp:171)
0:43.78 pid:846 #08: mozilla::net::nsStreamListenerWrapper::OnStartRequest(nsIRequest*) (/home/juhsu/mozilla-central/netwerk/base/nsStreamListenerWrapper.h:30)
0:43.78 pid:846 #09: mozilla::extensions::ChannelWrapper::RequestListener::OnStartRequest(nsIRequest*) (/home/juhsu/mozilla-central/toolkit/components/extensions/webrequest/ChannelWrapper.cpp:1057)
0:43.78 pid:846 #10: nsUnknownDecoder::FireListenerNotifications(nsIRequest*, nsISupports*) (/home/juhsu/mozilla-central/netwerk/streamconv/converters/nsUnknownDecoder.cpp:773)
0:43.78 pid:846 #11: nsUnknownDecoder::OnStopRequest(nsIRequest*, nsresult) (/home/juhsu/mozilla-central/netwerk/streamconv/converters/nsUnknownDecoder.cpp:323)
0:43.79 pid:846 #12: mozilla::net::nsStreamListenerTee::OnStopRequest(nsIRequest*, nsresult) (/home/juhsu/mozilla-central/netwerk/base/nsStreamListenerTee.cpp:51)
0:43.79 pid:846 #13: mozilla::net::nsHttpChannel::ContinueOnStopRequest(nsresult, bool, bool) (/home/juhsu/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:0)
0:43.79 pid:846 #14: mozilla::net::nsHttpChannel::ContinueOnStopRequestAfterAuthRetry(nsresult, bool, bool, bool, mozilla::net::HttpTransactionShell*) (/home/juhsu/mozilla-central/netwerk/protocol/http/n
sHttpChannel.cpp:7940)
0:43.79 pid:846 #15: mozilla::net::nsHttpChannel::OnStopRequest(nsIRequest*, nsresult) (/home/juhsu/mozilla-central/netwerk/protocol/http/nsHttpChannel.cpp:7866)
0:43.79 pid:846 #16: nsInputStreamPump::OnStateStop() (/home/juhsu/mozilla-central/netwerk/base/nsInputStreamPump.cpp:687)
0:43.80 pid:846 #17: nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*) (/home/juhsu/mozilla-central/netwerk/base/nsInputStreamPump.cpp:434)
0:43.80 pid:846 #18: nsInputStreamReadyEvent::Run() (/home/juhsu/mozilla-central/xpcom/io/nsStreamUtils.cpp:0)
0:43.80 pid:846 #19: nsThread::ProcessNextEvent(bool, bool*) (/home/juhsu/mozilla-central/xpcom/threads/nsThread.cpp:1240)
0:43.80 pid:846 #20: NS_ProcessNextEvent(nsIThread*, bool) (/home/juhsu/mozilla-central/xpcom/threads/nsThreadUtils.cpp:501)
0:43.80 pid:846 #21: bool mozilla::SpinEventLoopUntil<(mozilla::ProcessFailureBehavior)1, nsThreadManager::SpinEventLoopUntilInternal(nsINestedEventLoopCondition*, bool)::$_7>(nsThreadManager::SpinEventL
oopUntilInternal(nsINestedEventLoopCondition*, bool)::$_7&&, nsIThread*) (/home/juhsu/mozilla-central/obj-x86_64-pc-linux-gnu/dist/include/nsThreadUtils.h:359)
0:43.80 pid:846 #22: nsThreadManager::SpinEventLoopUntilInternal(nsINestedEventLoopCondition*, bool) (/home/juhsu/mozilla-central/xpcom/threads/nsThreadManager.cpp:696)
0:43.80 pid:846 #23: nsThreadManager::SpinEventLoopUntil(nsINestedEventLoopCondition*) (/home/juhsu/mozilla-central/xpcom/threads/nsThreadManager.cpp:675)
0:43.80 pid:846 #24: ??? (/home/juhsu/mozilla-central/obj-x86_64-pc-linux-gnu/dist/bin/libxul.so + 0x958c79a)
0:43.80 pid:846 #25: CallMethodHelper::Invoke() (/home/juhsu/mozilla-central/js/xpconnect/src/XPCWrappedNative.cpp:1618)
0:43.80 pid:846 #26: CallMethodHelper::Call() (/home/juhsu/mozilla-central/js/xpconnect/src/XPCWrappedNative.cpp:1174)
0:43.80 pid:846 #27: XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) (/home/juhsu/mozilla-central/js/xpconnect/src/XPCWrappedNative.cpp:1140)
0:43.80 pid:846 #28: XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) (/home/juhsu/mozilla-central/js/xpconnect/src/XPCWrappedNativeJSOps.cpp:946)
0:43.81 pid:846 #29: CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), js::CallReason, JS::CallArgs const&) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:486)
0:43.81 pid:846 #30: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:578)
0:43.81 pid:846 #31: InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:641)
0:43.81 pid:846 #32: js::CallFromStack(JSContext*, JS::CallArgs const&) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:645)
0:43.81 pid:846 #33: Interpret(JSContext*, js::RunState&) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:3300)
0:43.82 pid:846 #34: js::RunScript(JSContext*, js::RunState&) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:458)
0:43.82 pid:846 #35: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:613)
0:43.82 pid:846 #36: InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:641)
0:43.82 pid:846 #37: js::CallFromStack(JSContext*, JS::CallArgs const&) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:645)
0:43.83 pid:846 #38: js::jit::DoCallFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICCall_Fallback*, unsigned int, JS::Value*, JS::MutableHandle<JS::Value>) (/home/juhsu/mozilla-central/js/src/ji
t/BaselineIC.cpp:2992)
Assignee | ||
Comment 10•4 years ago
|
||
Do you have e10s disabled?
It seems like that's the only reason mOtherPid would be 0, and we're not failing this test in automation.
Comment 11•4 years ago
|
||
This test looks like a non-e10s test.
Right, we're not failing in automation (not sure why).
There's a potential problem:
streamFilter
might fail in non-e10s mode with document channel on.
Assignee | ||
Comment 12•4 years ago
|
||
From what I can tell we never support streamFilter without e10s, we always just fail to create one if there's no content process.
I think we could just check if the pid == 0 in DocumentLoadListener, and reject the promise if so.
Comment 13•4 years ago
|
||
I was wrong. It's an e10s xpcshell-test.
If the promise is rejected, it crashes here
https://searchfox.org/mozilla-central/rev/46e3b1ce2cc120a188f6940b5c6eab6b24530e4f/netwerk/ipc/ParentProcessDocumentChannel.cpp#83
0:30.76 pid:19770 \x07[19770, Main Thread] ###!!! ASSERTION: Attempt to load a non-authorised load in the parent process: http://example.com/lorem.html.gz: 'false', file /home/juhsu/mozilla-central/netwe
rk/ipc/ParentProcessDocumentChannel.cpp, line 83
0:30.76 pid:19770 #01: mozilla::net::ParentProcessDocumentChannel::RedirectToRealChannel(nsTArray<mozilla::ipc::Endpoint<mozilla::extensions::PStreamFilterParent> >&&, unsigned int, unsigned int) (/home/
juhsu/mozilla-central/netwerk/ipc/ParentProcessDocumentChannel.cpp:83)
0:30.76 pid:19770 #02: mozilla::net::ParentProcessDocumentChannel::AsyncOpen(nsIStreamListener*)::$_26::operator()(mozilla::net::DocumentLoadListener::OpenPromiseSucceededType&&) const (/home/juhsu/mozil
la-central/netwerk/ipc/ParentProcessDocumentChannel.cpp:200)
0:30.77 pid:19770 #03: std::enable_if<TakesArgument<void (mozilla::net::ParentProcessDocumentChannel::AsyncOpen(nsIStreamListener*)::$_26::*)(mozilla::net::DocumentLoadListener::OpenPromiseSucceededType&
&) const>::value, mozilla::detail::MethodTrait<void (mozilla::net::ParentProcessDocumentChannel::AsyncOpen(nsIStreamListener*)::$_26::*)(mozilla::net::DocumentLoadListener::OpenPromiseSucceededType&&) con
st>::ReturnType>::type mozilla::MozPromise<mozilla::net::DocumentLoadListener::OpenPromiseSucceededType, mozilla::net::DocumentLoadListener::OpenPromiseFailedType, true>::InvokeMethod<mozilla::net::Parent
ProcessDocumentChannel::AsyncOpen(nsIStreamListener*)::$_26, void (mozilla::net::ParentProcessDocumentChannel::AsyncOpen(nsIStreamListener*)::$_26::*)(mozilla::net::DocumentLoadListener::OpenPromiseSuccee
dedType&&) const, mozilla::net::DocumentLoadListener::OpenPromiseSucceededType>(mozilla::net::ParentProcessDocumentChannel::AsyncOpen(nsIStreamListener*)::$_26*, void (mozilla::net::ParentProcessDocumentC
hannel::AsyncOpen(nsIStreamListener*)::$_26::*)(mozilla::net::DocumentLoadListener::OpenPromiseSucceededType&&) const, mozilla::net::DocumentLoadListener::OpenPromiseSucceededType&&) (/home/juhsu/mozilla-
central/obj-x86_64-pc-linux-gnu/dist/include/mozilla/MozPromise.h:553)
0:30.78 pid:19770 #04: std::enable_if<!(false), void>::type mozilla::MozPromise<mozilla::net::DocumentLoadListener::OpenPromiseSucceededType, mozilla::net::DocumentLoadListener::OpenPromiseFailedType, tr
ue>::InvokeCallbackMethod<false, mozilla::net::ParentProcessDocumentChannel::AsyncOpen(nsIStreamListener*)::$_26, void (mozilla::net::ParentProcessDocumentChannel::AsyncOpen(nsIStreamListener*)::$_26::*)(
mozilla::net::DocumentLoadListener::OpenPromiseSucceededType&&) const, mozilla::net::DocumentLoadListener::OpenPromiseSucceededType, RefPtr<mozilla::MozPromise<mozilla::net::DocumentLoadListener::OpenProm
iseSucceededType, mozilla::net::DocumentLoadListener::OpenPromiseFailedType, true>::Private> >(mozilla::net::ParentProcessDocumentChannel::AsyncOpen(nsIStreamListener*)::$_26*, void (mozilla::net::ParentP
rocessDocumentChannel::AsyncOpen(nsIStreamListener*)::$_26::*)(mozilla::net::DocumentLoadListener::OpenPromiseSucceededType&&) const, mozilla::net::DocumentLoadListener::OpenPromiseSucceededType&&, RefPtr
<mozilla::MozPromise<mozilla::net::DocumentLoadListener::OpenPromiseSucceededType, mozilla::net::DocumentLoadListener::OpenPromiseFailedType, true>::Private>&&) (/home/juhsu/mozilla-central/obj-x86_64-pc-
linux-gnu/dist/include/mozilla/MozPromise.h:585)
0:30.78 pid:19770 #05: mozilla::MozPromise<mozilla::net::DocumentLoadListener::OpenPromiseSucceededType, mozilla::net::DocumentLoadListener::OpenPromiseFailedType, true>::ThenValue<mozilla::net::ParentPr
ocessDocumentChannel::AsyncOpen(nsIStreamListener*)::$_26, mozilla::net::ParentProcessDocumentChannel::AsyncOpen(nsIStreamListener*)::$_27>::DoResolveOrRejectInternal(mozilla::MozPromise<mozilla::net::Doc
umentLoadListener::OpenPromiseSucceededType, mozilla::net::DocumentLoadListener::OpenPromiseFailedType, true>::ResolveOrRejectValue&) (/home/juhsu/mozilla-central/obj-x86_64-pc-linux-gnu/dist/include/mozi
lla/MozPromise.h:772)
0:30.79 pid:19770 #06: mozilla::MozPromise<mozilla::net::DocumentLoadListener::OpenPromiseSucceededType, mozilla::net::DocumentLoadListener::OpenPromiseFailedType, true>::ThenValueBase::DoResolveOrReject
(mozilla::MozPromise<mozilla::net::DocumentLoadListener::OpenPromiseSucceededType, mozilla::net::DocumentLoadListener::OpenPromiseFailedType, true>::ResolveOrRejectValue&) (/home/juhsu/mozilla-central/obj
-x86_64-pc-linux-gnu/dist/include/mozilla/MozPromise.h:532)
0:30.79 pid:19770 #07: mozilla::MozPromise<mozilla::net::DocumentLoadListener::OpenPromiseSucceededType, mozilla::net::DocumentLoadListener::OpenPromiseFailedType, true>::ThenValueBase::ResolveOrRejectRu
nnable::Run() (/home/juhsu/mozilla-central/obj-x86_64-pc-linux-gnu/dist/include/mozilla/MozPromise.h:410)
0:30.79 pid:19770 #08: mozilla::SimpleTaskQueue::DrainTasks() (/home/juhsu/mozilla-central/obj-x86_64-pc-linux-gnu/dist/include/mozilla/TaskDispatcher.h:44)
0:30.79 pid:19770 #09: nsThread::DrainDirectTasks() (/home/juhsu/mozilla-central/xpcom/threads/nsThread.cpp:1451)
0:30.79 pid:19770 #10: nsThread::ProcessNextEvent(bool, bool*) (/home/juhsu/mozilla-central/xpcom/threads/nsThread.cpp:0)
0:30.79 pid:19770 #11: NS_ProcessNextEvent(nsIThread*, bool) (/home/juhsu/mozilla-central/xpcom/threads/nsThreadUtils.cpp:501)
0:30.80 pid:19770 #12: bool mozilla::SpinEventLoopUntil<(mozilla::ProcessFailureBehavior)1, nsThreadManager::SpinEventLoopUntilInternal(nsINestedEventLoopCondition*, bool)::$_7>(nsThreadManager::SpinEven
tLoopUntilInternal(nsINestedEventLoopCondition*, bool)::$_7&&, nsIThread*) (/home/juhsu/mozilla-central/obj-x86_64-pc-linux-gnu/dist/include/nsThreadUtils.h:360)
0:30.80 pid:19770 #13: nsThreadManager::SpinEventLoopUntilInternal(nsINestedEventLoopCondition*, bool) (/home/juhsu/mozilla-central/xpcom/threads/nsThreadManager.cpp:696)
0:30.80 pid:19770 #14: nsThreadManager::SpinEventLoopUntil(nsINestedEventLoopCondition*) (/home/juhsu/mozilla-central/xpcom/threads/nsThreadManager.cpp:675)
0:30.80 pid:19770 #15: ??? (/home/juhsu/mozilla-central/obj-x86_64-pc-linux-gnu/dist/bin/libxul.so + 0x964d10a)
0:30.80 pid:19770 #16: CallMethodHelper::Invoke() (/home/juhsu/mozilla-central/js/xpconnect/src/XPCWrappedNative.cpp:1618)
0:30.80 pid:19770 #17: CallMethodHelper::Call() (/home/juhsu/mozilla-central/js/xpconnect/src/XPCWrappedNative.cpp:1174)
0:30.80 pid:19770 #18: XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) (/home/juhsu/mozilla-central/js/xpconnect/src/XPCWrappedNative.cpp:1140)
0:30.80 pid:19770 #19: XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) (/home/juhsu/mozilla-central/js/xpconnect/src/XPCWrappedNativeJSOps.cpp:946)
0:30.80 pid:19770 #20: CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), js::CallReason, JS::CallArgs const&) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:484)
0:30.80 pid:19770 #21: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:576)
0:30.80 pid:19770 #22: InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:639)
0:30.80 pid:19770 #23: js::CallFromStack(JSContext*, JS::CallArgs const&) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:643)
0:30.80 pid:19770 #24: Interpret(JSContext*, js::RunState&) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:3298)
0:30.81 pid:19770 #25: js::RunScript(JSContext*, js::RunState&) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:456)
0:30.81 pid:19770 #26: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:611)
0:30.81 pid:19770 #27: InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:639)
0:30.81 pid:19770 #28: js::CallFromStack(JSContext*, JS::CallArgs const&) (/home/juhsu/mozilla-central/js/src/vm/Interpreter.cpp:643)
0:30.81 pid:19770 #29: js::jit::DoCallFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICCall_Fallback*, unsigned int, JS::Value*, JS::MutableHandle<JS::Value>) (/home/juhsu/mozilla-central/js/src/
jit/BaselineIC.cpp:2992)
The rejection patch
diff --git a/netwerk/ipc/DocumentLoadListener.cpp b/netwerk/ipc/DocumentLoadListener.cpp
--- a/netwerk/ipc/DocumentLoadListener.cpp
+++ b/netwerk/ipc/DocumentLoadListener.cpp
@@ -1465,18 +1465,20 @@ void DocumentLoadListener::TriggerRedire
ContentParentId(*aDestinationProcess));
if (cp) {
pid = cp->OtherPid();
}
}
for (StreamFilterRequest& request : mStreamFilterRequests) {
ParentEndpoint parent;
- nsresult rv = extensions::PStreamFilter::CreateEndpoints(
- pid, request.mChildProcessId, &parent, &request.mChildEndpoint);
+ nsresult rv = pid == 0 ? NS_ERROR_FAILURE
+ : extensions::PStreamFilter::CreateEndpoints(
+ pid, request.mChildProcessId, &parent,
+ &request.mChildEndpoint);
if (NS_FAILED(rv)) {
request.mPromise->Reject(false, __func__);
request.mPromise = nullptr;
} else {
parentEndpoints.AppendElement(std::move(parent));
}
}
Assignee | ||
Comment 14•4 years ago
|
||
For some reason DocumentLoadListener's process switching is deciding to try to load the http URI in the parent process, which fails the stream listener, and then also hits the security check (since http should never load in the parent).
This doesn't happen in this test on try though, so there's got to be some extra factor involved.
Which m-c revision are you building? Any local patches?
Comment 15•4 years ago
|
||
I can reproduce in current central without local patches in linux.
(I've reproduced in central 8 days ago as well.)
https://hg.mozilla.org/mozilla-central/rev/3add3a174755
IIRC it crashes in try but doesn't fail the test.
Updated•4 years ago
|
Comment 16•4 years ago
|
||
The bug is closed. Hence I file bug 1649857 to move on
Updated•4 years ago
|
Updated•4 years ago
|
Description
•