Parent process crash: Error deserializing variant TPChildToParentStreamChild of union IPCRemoteStreamType [@ mozilla::ipc::FatalError | mozilla::ipc::IProtocol::HandleFatalError | mozilla::ipc::ReadIPDLParam<T> ]
Categories
(Core :: Networking, defect, P2)
Tracking
()
People
(Reporter: mstange, Unassigned)
Details
(Whiteboard: [necko-triaged])
Crash Data
https://crash-stats.mozilla.org/report/index/ad956e08-f78e-44c8-98ef-f8b830191127
I encounter this browser crash every time I file a bugzilla bug with an attachment.
Reporter | ||
Updated•5 years ago
|
Comment 1•5 years ago
|
||
The top frame is to generic. The report here seems document channel related and thus recent, Matt?
Comment 2•5 years ago
|
||
Just landed a fix!
Reporter | ||
Comment 3•5 years ago
|
||
Thanks!
I wrote the comment below and it's kind of obsolete now, but I still want to post it for posterity.
This is an IPC error when deserializing an enum. So it seems like we're sending garbage bytes over to the other side.
Unfortunately it's not clear which of the three error cases is being hit; they all have the same error message and the debug info for XUL does not contain enough information to let addr2line find the correct line number.
if ((!(ReadIPDLParam(aMsg, aIter, aActor, (&((aVar)->get_PChildToParentStreamParent())))))) {
aActor->FatalError("Error deserializing variant TPChildToParentStreamChild of union IPCRemoteStreamType");
return false;
}
if ((!((*((&((aVar)->get_PChildToParentStreamParent()))))))) {
aActor->FatalError("Error deserializing variant TPChildToParentStreamChild of union IPCRemoteStreamType");
return false;
}
// Sentinel = 'TPChildToParentStreamChild'
if ((!((aMsg)->ReadSentinel(aIter, 1882094295)))) {
mozilla::ipc::SentinelReadError("Error deserializing variant TPChildToParentStreamChild of union IPCRemoteStreamType");
return false;
}
Here's part of the stack with inlines resolved. I got the XUL.dSYM from https://symbols.mozilla.org/XUL/911502A889EF3F82831F851A503450740/XUL.dSYM.tar.bz2 and ran addr2line from https://github.com/gimli-rs/addr2line using cargo run --release --example addr2line -- --exe /Users/mstange/Downloads/XUL.dSYM/Contents/Resources/DWARF/XUL -p -f -i 0x8b3658
.
mozilla::ipc::IPDLParamTraits<mozilla::ipc::IPCRemoteStreamType>::Read(IPC::Message const*, PickleIterator*, mozilla::ipc::IProtocol*, mozilla::ipc::IPCRemoteStreamType*) obj-firefox/ipc/ipdl/InputStreamParams.cpp:?
bool mozilla::ipc::ReadIPDLParam<mozilla::ipc::IPCRemoteStreamParams>(IPC::Message const*, PickleIterator*, mozilla::ipc::IProtocol*, mozilla::ipc::IPCRemoteStreamParams*) obj-firefox/dist/include/mozilla/ipc/IPDLParamTraits.h:68
mozilla::ipc::IPDLParamTraits<mozilla::ipc::IPCRemoteStreamParams>::Read(IPC::Message const*, PickleIterator*, mozilla::ipc::IProtocol*, mozilla::ipc::IPCRemoteStreamParams*) obj-firefox/ipc/ipdl/InputStreamParams.cpp:1119
bool mozilla::ipc::ReadIPDLParam<mozilla::ipc::IPCRemoteStreamParams>(IPC::Message const*, PickleIterator*, mozilla::ipc::IProtocol*, mozilla::ipc::IPCRemoteStreamParams*) obj-firefox/dist/include/mozilla/ipc/IPDLParamTraits.h:68
(Here's the generated source for InputStreamParams.cpp, it was uploaded by this Ugs job of the shippable Mac build job.)
Description
•