Crash in [@ IPCError-browser | RecvPredLearn]
Categories
(Core :: Networking, defect, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr68 | --- | unaffected |
firefox76 | --- | unaffected |
firefox77 | --- | wontfix |
firefox78 | --- | wontfix |
firefox79 | --- | fixed |
People
(Reporter: gsvelto, Assigned: mayhemer)
References
Details
(Keywords: crash, Whiteboard: [necko-triaged])
Crash Data
Attachments
(4 files, 1 obsolete file)
This bug is for crash report bp-48d53bb6-83b9-41b0-932f-925a60200418.
Top 10 frames of crashing thread:
0 ntdll.dll NtWaitForKeyedEvent
1 ntdll.dll RtlSleepConditionVariableSRW
2 kernel32.dll SleepConditionVariableSRW
3 mozglue.dll mozilla::detail::ConditionVariableImpl::wait mozglue/misc/ConditionVariable_windows.cpp:50
4 xul.dll nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:1120
5 xul.dll NS_ProcessNextEvent xpcom/threads/nsThreadUtils.cpp:481
6 xul.dll mozilla::ipc::MessagePump::Run ipc/glue/MessagePump.cpp:109
7 xul.dll MessageLoop::RunHandler ipc/chromium/src/base/message_loop.cc:308
8 xul.dll MessageLoop::Run ipc/chromium/src/base/message_loop.cc:290
9 xul.dll nsBaseAppShell::Run widget/nsBaseAppShell.cpp:137
The oldest buildid with this failure is 20200414214610.
![]() |
Assignee | |
Comment 1•5 years ago
|
||
The RecvPredLearn
signature is not in any of the crash reports. This seems to be XPCOM.
![]() |
Assignee | |
Updated•5 years ago
|
Reporter | ||
Comment 2•5 years ago
|
||
No, it's just an issue with how we report this type of IPC error. The stack trace that the crash reports shown is from the content process and it will always be different. The crash stack that actually matters - and from which the signature is taken - is the one from the main process. I'll extract it manually and add it here.
Reporter | ||
Comment 3•5 years ago
|
||
This is the stack trace of the main process for this crash:
0 xul.dll!CrashReporter::CreateMinidumpsAndPair(void*, unsigned long, nsTSubstring<char> const&, nsIFile*, mozilla::EnumeratedArray<CrashReporter::Annotation,CrashReporter::Annotation::Count,nsTString<char> >&, nsIFile**) [nsExceptionHandler.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 3776 + 0x15]
1 xul.dll!mozilla::ipc::CrashReporterHost::GenerateMinidumpAndPair<mozilla::dom::ContentParent>(mozilla::dom::ContentParent*, nsIFile*, nsTSubstring<char> const&) [CrashReporterHost.h:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 71 + 0x13]
2 xul.dll!mozilla::dom::ContentParent::GeneratePairedMinidump(char const*) [ContentParent.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 3374 + 0x8]
3 xul.dll!mozilla::dom::ContentParent::KillHard(char const*) [ContentParent.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 3408 + 0x9]
4 xul.dll!mozilla::dom::ContentParent::ProcessingError(mozilla::ipc::HasResultCodes::Result, char const*) [ContentParent.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1632 + 0x8]
5 xul.dll!static mozilla::ipc::IPCResult::Fail(mozilla::NotNull<mozilla::ipc::IProtocol *>, char const*, char const*) [ProtocolUtils.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 58 + 0xa]
6 xul.dll!mozilla::net::NeckoParent::RecvPredLearn(nsIURI*, nsIURI*, unsigned int const&, mozilla::OriginAttributes const&) [NeckoParent.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 805 + 0x11]
7 xul.dll!mozilla::net::PNeckoParent::OnMessageReceived(IPC::Message const&) [PNeckoParent.cpp: : 2501 + 0x1a]
8 xul.dll!mozilla::dom::PContentParent::OnMessageReceived(IPC::Message const&) [PContentParent.cpp: : 6350 + 0x8]
9 xul.dll!mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) [MessageChannel.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 2111 + 0x55]
10 xul.dll!mozilla::ipc::MessageChannel::MessageTask::Run() [MessageChannel.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1990 + 0xac]
11 xul.dll!nsThread::ProcessNextEvent(bool, bool*) [nsThread.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1200 + 0x6]
12 xul.dll!NS_ProcessNextEvent(nsIThread*, bool) [nsThreadUtils.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 481 + 0x22]
13 xul.dll!nsComponentManagerImpl::GetServiceByContractID(char const*, nsID const&, void**) [nsComponentManager.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1560 + 0x444]
14 xul.dll!nsGetServiceByContractIDWithError::operator()(nsID const&, void**) const [nsComponentManagerUtils.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 253 + 0x1b]
15 xul.dll!nsCOMPtr_base::assign_from_gs_contractid_with_error(nsGetServiceByContractIDWithError const&, nsID const&) [nsCOMPtr.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 91 + 0x8]
16 xul.dll!mozilla::net::Predictor::Init() [Predictor.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 387 + 0x1c]
17 xul.dll!static mozilla::net::Predictor::Create(nsISupports*, nsID const&, void**) [Predictor.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 467 + 0x8]
18 xul.dll!mozilla::xpcom::CreateInstanceImpl(mozilla::xpcom::ModuleID, nsISupports*, nsID const&, void**) [StaticComponents.cpp: : 11494 + 0x9]
19 xul.dll!nsComponentManagerImpl::GetServiceByContractID(char const*, nsID const&, void**) [nsComponentManager.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1560 + 0x1b0]
20 xul.dll!nsGetServiceByContractIDWithError::operator()(nsID const&, void**) const [nsComponentManagerUtils.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 253 + 0x1b]
21 xul.dll!nsCOMPtr_base::assign_from_gs_contractid_with_error(nsGetServiceByContractIDWithError const&, nsID const&) [nsCOMPtr.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 91 + 0x8]
22 xul.dll!mozilla::net::NeckoParent::RecvPredPredict(nsIURI*, nsIURI*, unsigned int const&, mozilla::OriginAttributes const&, bool const&) [NeckoParent.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 781 + 0x14]
23 xul.dll!mozilla::net::PNeckoParent::OnMessageReceived(IPC::Message const&) [PNeckoParent.cpp: : 2438 + 0x1e]
24 xul.dll!mozilla::dom::PContentParent::OnMessageReceived(IPC::Message const&) [PContentParent.cpp: : 6350 + 0x8]
25 xul.dll!mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) [MessageChannel.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 2111 + 0x55]
26 xul.dll!mozilla::ipc::MessageChannel::MessageTask::Run() [MessageChannel.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1990 + 0xac]
27 xul.dll!nsThread::ProcessNextEvent(bool, bool*) [nsThread.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1200 + 0x6]
28 xul.dll!NS_ProcessNextEvent(nsIThread*, bool) [nsThreadUtils.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 481 + 0x22]
29 xul.dll!nsThreadManager::SpinEventLoopUntilInternal(nsINestedEventLoopCondition*, bool) [nsThreadManager.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 693 + 0xa0]
30 xul.dll!nsThreadManager::SpinEventLoopUntil(nsINestedEventLoopCondition*) [nsThreadManager.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 672 + 0x7]
31 xul.dll!NS_InvokeByIndex + 0x27
32 xul.dll!static XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) [XPCWrappedNative.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1141 + 0x4c9]
33 xul.dll!XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) [XPCWrappedNativeJSOps.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 947 + 0x8]
34 xul.dll!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [Interpreter.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 584 + 0x13a]
35 xul.dll!Interpret(JSContext*, js::RunState&) [Interpreter.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 3322 + 0x65]
36 xul.dll!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [Interpreter.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 619 + 0x47]
37 xul.dll!js::jit::InvokeFromInterpreterStub(JSContext*, js::jit::InterpreterStubExitFrameLayout*) [VMFunctions.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 289 + 0x210]
42 xul.dll!js::jit::MaybeEnterJit(JSContext*, js::RunState&) [Jit.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 200 + 0xfa]
43 xul.dll!Interpret(JSContext*, js::RunState&) [Interpreter.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 3368 + 0x7]
44 xul.dll!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [Interpreter.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 619 + 0x47]
45 xul.dll!js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) [Interpreter.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 664 + 0x6b]
46 xul.dll!js::CallSelfHostedFunction(JSContext*, JS::Handle<js::PropertyName *>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) [SelfHosting.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1672 + 0x12]
47 xul.dll!js::jit::InterpretResume(JSContext*, JS::Handle<JSObject *>, JS::Value*, JS::MutableHandle<JS::Value>) [VMFunctions.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 995 + 0x11]
48 xul.dll!trunc + 0x7c8a4e
50 xul.dll!js::jit::MaybeEnterJit(JSContext*, js::RunState&) [Jit.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 200 + 0xfa]
51 xul.dll!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [Interpreter.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 619 + 0x14c]
52 xul.dll!js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) [Interpreter.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 664 + 0x6b]
53 xul.dll!js::CallSelfHostedFunction(JSContext*, JS::Handle<js::PropertyName *>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) [SelfHosting.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1672 + 0x12]
54 xul.dll!AsyncFunctionResume(JSContext*, JS::Handle<js::AsyncFunctionGeneratorObject *>, ResumeKind, JS::Handle<JS::Value>) [AsyncFunction.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 127 + 0xa]
55 xul.dll!PromiseReactionJob(JSContext*, unsigned int, JS::Value*) [Promise.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1823 + 0x7c]
56 xul.dll!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [Interpreter.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 584 + 0x13a]
57 xul.dll!JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) [jsapi.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 2803 + 0x8f]
58 xul.dll!mozilla::dom::PromiseJobCallback::Call(mozilla::dom::BindingCallContext&, JS::Handle<JS::Value>, mozilla::ErrorResult&) [PromiseBinding.cpp: : 28 + 0xb]
59 xul.dll!mozilla::CycleCollectedJSContext::PerformMicroTaskCheckPoint(bool) [CycleCollectedJSContext.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 644 + 0xd5]
60 xul.dll!mozilla::EventListenerManager::HandleEventInternal(nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event**, mozilla::dom::EventTarget*, nsEventStatus*, bool) [EventListenerManager.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1270 + 0x7]
61 xul.dll!static mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem>&, mozilla::EventChainPostVisitor&, mozilla::EventDispatchingCallback*, mozilla::ELMCreationDetector&) [EventDispatcher.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 558 + 0xfa]
62 xul.dll!static mozilla::EventDispatcher::Dispatch(nsISupports*, nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsTArray<mozilla::dom::EventTarget *>*) [EventDispatcher.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1055 + 0x19]
63 xul.dll!static mozilla::EventDispatcher::DispatchDOMEvent(nsISupports*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsPresContext*, nsEventStatus*) [EventDispatcher.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 0 + 0x7]
64 xul.dll!nsPresContext::FireDOMPaintEvent(nsTArray<nsRect>*, mozilla::layers::BaseTransactionId<mozilla::layers::TransactionIdType>, mozilla::TimeStamp) [nsPresContext.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1797 + 0x11]
65 xul.dll!DelayedFireDOMPaintEvent::Run() [nsPresContext.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1981 + 0x36]
66 xul.dll!static nsContentUtils::RemoveScriptBlocker() [nsContentUtils.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 5381 + 0x6]
67 xul.dll!nsView::DidCompositeWindow(mozilla::layers::BaseTransactionId<mozilla::layers::TransactionIdType>, mozilla::TimeStamp const&, mozilla::TimeStamp const&) [nsView.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1100 + 0xb]
68 xul.dll!mozilla::layers::ClientLayerManager::DidComposite(mozilla::layers::BaseTransactionId<mozilla::layers::TransactionIdType>, mozilla::TimeStamp const&, mozilla::TimeStamp const&) [ClientLayerManager.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 512 + 0xf]
69 xul.dll!mozilla::layers::CompositorBridgeChild::RecvDidComposite(mozilla::layers::LayersId const&, mozilla::layers::BaseTransactionId<mozilla::layers::TransactionIdType> const&, mozilla::TimeStamp const&, mozilla::TimeStamp const&) [CompositorBridgeChild.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 533 + 0x15]
70 xul.dll!mozilla::layers::PCompositorBridgeChild::OnMessageReceived(IPC::Message const&) [PCompositorBridgeChild.cpp: : 2485 + 0x16]
71 xul.dll!mozilla::layers::PCompositorManagerChild::OnMessageReceived(IPC::Message const&) [PCompositorManagerChild.cpp: : 374 + 0x6]
72 xul.dll!mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) [MessageChannel.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 2111 + 0x55]
73 xul.dll!mozilla::ipc::MessageChannel::MessageTask::Run() [MessageChannel.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1990 + 0xac]
74 xul.dll!nsThread::ProcessNextEvent(bool, bool*) [nsThread.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 1200 + 0x6]
75 xul.dll!NS_ProcessNextEvent(nsIThread*, bool) [nsThreadUtils.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 481 + 0x22]
76 xul.dll!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) [MessagePump.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 87 + 0xb]
77 xul.dll!MessageLoop::RunHandler() [message_loop.cc:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 308 + 0x8]
78 xul.dll!MessageLoop::Run() [message_loop.cc:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 290 + 0x5]
79 xul.dll!nsBaseAppShell::Run() [nsBaseAppShell.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 137 + 0xc]
80 xul.dll!nsAppShell::Run() [nsAppShell.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 406 + 0x6]
81 xul.dll!nsAppStartup::Run() [nsAppStartup.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 271 + 0x6]
82 xul.dll!XREMain::XRE_mainRun() [nsAppRunner.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 4608 + 0x6]
83 xul.dll!XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) [nsAppRunner.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 4743 + 0x7]
84 xul.dll!XRE_main(int, char**, mozilla::BootstrapConfig const&) [nsAppRunner.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 4797 + 0xb]
85 xul.dll!mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) [Bootstrap.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 45 + 0xe]
86 firefox.exe!NS_internal_main(int, char**, char**) [nsBrowserApp.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 331 + 0x83]
87 firefox.exe!wmain(int, wchar_t**) [nsWindowsWMain.cpp:88449c910b64bf796522d2ad30de03b17b5ad4b6 : 131 + 0x12]
88 firefox.exe!__scrt_common_main_seh() [exe_common.inl : 288 + 0x1c]
89 kernel32.dll!BaseThreadInitThunk + 0x12
90 ntdll.dll!__RtlUserThreadStart + 0x27
91 ntdll.dll!_RtlUserThreadStart + 0x1b
Reporter | ||
Comment 4•5 years ago
|
||
Reporter | ||
Updated•5 years ago
|
Reporter | ||
Comment 5•5 years ago
|
||
Comment 7•5 years ago
|
||
Looks like the failure is here:
nsCOMPtr<nsINetworkPredictor> predictor =
do_GetService("@mozilla.org/network/predictor;1", &rv);
NS_ENSURE_SUCCESS(rv, IPC_FAIL_NO_REASON(this));
Comment 8•5 years ago
|
||
Looking at the code a bit, it looks like maybe the predictor is expected to not always work? Maybe that last line could be changed to NS_ENSURE_SUCCESS(rv, IPC_OK());
to just ignore failures instead of crashing.
![]() |
Assignee | |
Comment 9•5 years ago
|
||
Thanks, can the stack extraction be made somehow more obvious for next time? I would not even know where to start (and that to have to start :)).
(In reply to Andrew McCreight [:mccr8] from comment #8)
Looking at the code a bit, it looks like maybe the predictor is expected to not always work? Maybe that last line could be changed to
NS_ENSURE_SUCCESS(rv, IPC_OK());
to just ignore failures instead of crashing.
Agree. I would really be interested in how this can happen. Maybe worth to check senders' side quickly to add possible non-null checks or recent changes.
Reporter | ||
Comment 10•5 years ago
|
||
(In reply to Honza Bambas (:mayhemer) from comment #9)
Thanks, can the stack extraction be made somehow more obvious for next time? I would not even know where to start (and that to have to start :)).
We have bug 1110498 on file and there might also be better ways of gathering the crash stack. We just didn't have the time to work on it yet.
Comment 11•5 years ago
|
||
The severity field is not set for this bug.
:grover, could you have a look please?
For more information, please visit auto_nag documentation.
Updated•5 years ago
|
![]() |
Assignee | |
Updated•5 years ago
|
![]() |
Assignee | |
Comment 12•5 years ago
|
||
Comment 13•5 years ago
|
||
Comment 14•5 years ago
|
||
bugherder |
Updated•5 years ago
|
Comment 15•5 years ago
|
||
The patch landed in nightly and beta is affected.
:mayhemer, is this bug important enough to require an uplift?
If not please set status_beta
to wontfix
.
For more information, please visit auto_nag documentation.
![]() |
Assignee | |
Comment 16•5 years ago
|
||
Comment on attachment 9153391 [details]
Bug 1631327 - Do not crash with IPC_FAIL when RecvPredLearn receives a null target URI, we handle it gracefully later, r=valentin
Beta/Release Uplift Approval Request
- User impact if declined: Possible (controlled) but unnecessary crash.
- Is this code covered by automated tests?: No
- Has the fix been verified in Nightly?: Yes
- Needs manual test from QE?: No
- If yes, steps to reproduce:
- List of other uplifts needed: None
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): The patch does a controlled crash when an IPC message argument is null. But we are later handling nullness of this argument gracefully. So no need to crash. Why we were crashing is commented in phab on the patch.
- String changes made/needed:
Comment 17•5 years ago
|
||
Looks like we're still crashing with this signature in nightly?
![]() |
Assignee | |
Comment 18•5 years ago
|
||
(In reply to Julien Cristau [:jcristau] from comment #17)
Looks like we're still crashing with this signature in nightly?
Thanks for keeping an eye on this!
Can you please remind me where I can see the actual crash stack?
Comment 19•5 years ago
|
||
Gabriele will probably know that. :)
Comment 20•5 years ago
|
||
Meanwhile it's probably better to reopen.
Updated•5 years ago
|
![]() |
Assignee | |
Comment 21•5 years ago
|
||
Yes. Note that w/o Gabriele's input - getting the stack trace - I can't move on this one.
Reporter | ||
Comment 22•5 years ago
|
||
I apologize for the delay. I'll analyze a recent dump and report back.
Reporter | ||
Comment 23•5 years ago
|
||
Here's the full stack trace of the main process of a recent crash (this one).
![]() |
Assignee | |
Comment 24•5 years ago
|
||
Thanks!
This reveals an interesting problem in XPCOM... There are two IPC messages in the main thread queue: RecvPredPredict
and RecvPredLearn
. When RecvPredPredict
is processed it tries to get the DNS service. It's, at the very same time, being first do_GetService
'ed on the socket thread, so we start looping the main thread event queue in the component manager. This leads to processing the RecvPredLearn
event and fails to get the predictor service, because we are recursing to get it...
I'm afraid that the only reasonable fix is to simply silently ignore when do_GetService for predictor fails.
![]() |
Assignee | |
Updated•5 years ago
|
![]() |
Assignee | |
Comment 25•5 years ago
|
||
Comment 26•5 years ago
|
||
Comment 27•5 years ago
|
||
bugherder |
Description
•