Crash in [@ IPC::ChannelWin::SetOtherPid | IPC::ChannelWin::ProcessIncomingMessages | IPC::ChannelWin::OnIOCompleted | base::MessagePumpForIO::WaitForIOCompletion | base::MessagePumpForIO::WaitForWork | base::MessagePumpForIO::DoRunLoop]
Categories
(Core :: IPC, defect)
Tracking
()
People
(Reporter: gsvelto, Unassigned)
References
Details
(Keywords: crash)
Crash Data
Crash report: https://crash-stats.mozilla.org/report/index/3f379fa9-405f-409c-ad4c-9bb600241017
MOZ_CRASH Reason:
MOZ_RELEASE_ASSERT(other_pid_ == base::kInvalidProcessId || other_pid_ == other_pid) (Multiple sources of SetOtherPid disagree!)
Top 10 frames:
0 xul.dll IPC::Channel::ChannelImpl::SetOtherPid(unsigned long) ipc/chromium/src/chrome/common/ipc_channel_win.cc:218
1 xul.dll IPC::Channel::ChannelImpl::ProcessIncomingMessages(base::MessagePumpForIO::IO... ipc/chromium/src/chrome/common/ipc_channel_win.cc:359
1 xul.dll IPC::Channel::ChannelImpl::OnIOCompleted(base::MessagePumpForIO::IOContext*, ... ipc/chromium/src/chrome/common/ipc_channel_win.cc:483
2 xul.dll base::MessagePumpForIO::WaitForIOCompletion(unsigned long, base::MessagePumpF... ipc/chromium/src/base/message_pump_win.cc:490
2 xul.dll base::MessagePumpForIO::WaitForWork() ipc/chromium/src/base/message_pump_win.cc:472
2 xul.dll base::MessagePumpForIO::DoRunLoop() ipc/chromium/src/base/message_pump_win.cc:457
3 xul.dll base::MessagePumpWin::RunWithDispatcher(base::MessagePump::Delegate*, base::M... ipc/chromium/src/base/message_pump_win.cc:59
3 xul.dll base::MessagePumpWin::Run(base::MessagePump::Delegate*) ipc/chromium/src/base/message_pump_win.h:79
4 xul.dll MessageLoop::RunInternal() ipc/chromium/src/base/message_loop.cc:369
4 xul.dll MessageLoop::RunHandler() ipc/chromium/src/base/message_loop.cc:362
This appears to be a Windows-specific crash. There's one bit of information in the crashes that might be relevant: all the crashes that contain the last value of GetLastError() has it set to STATUS_TIMEOUT.
Updated•1 year ago
|
Comment 1•1 year ago
•
|
||
This code is firing because the pid we got from the content process appears to conflict with the pid we got from the process launching code. I unfortunately don't have any ideas right now how we got into this situation.
One possibility is that somehow the GetProcId call from earlier is failing (https://searchfox.org/mozilla-central/rev/360b702e1ec793c49dc66122e50fe580d43350b3/ipc/chromium/src/base/process_util_win.cc#94-106), and we're ending up with a 0 which is not kInvalidProcessId on windows, and falling over. Perhaps we can add an assertion that the pid is not 0 which is passed in.
| Reporter | ||
Comment 2•1 year ago
|
||
It'd be interesting to know the values of the PIDs that are involved. Given that GetLastError() is not 0, is it possible that the STATUS_TIMEOUT error comes from GetProcessId()? It sounds odd but it's always hard to tell what errors can be spit out by Win32 calls.
Comment 4•4 months ago
|
||
Updating for the new signature
Description
•