Closed Bug 1489192 Opened 3 years ago Closed 3 years ago

Crash in mozilla::recordreplay::parent::ChildProcessInfo::SendMessage


(Core Graveyard :: Web Replay, defect)

Not set


(firefox-esr60 unaffected, firefox62 unaffected, firefox63 disabled, firefox64 fixed)

Tracking Status
firefox-esr60 --- unaffected
firefox62 --- unaffected
firefox63 --- disabled
firefox64 --- fixed


(Reporter: marcia, Assigned: bhackett1024)


(Keywords: crash, regression)

Crash Data


(1 file)

This bug was filed from the Socorro interface and is
report bp-566238f9-a449-428a-a1c5-4a25a0180901.

2 crashes, first started when nightly was still in 63 - 20180901100051. 

One comment and one URL - - Replaying WebReplay

Top 10 frames of crashing thread:

0 XUL mozilla::recordreplay::parent::ChildProcessInfo::SendMessage toolkit/recordreplay/ipc/ChildProcess.cpp:276
1 XUL mozilla::recordreplay::parent::ChildProcessInfo::WaitUntil toolkit/recordreplay/ipc/ChildProcess.cpp:665
2 XUL mozilla::recordreplay::parent::ChildProcessInfo::Recover toolkit/recordreplay/ipc/ChildProcess.cpp:378
3 XUL mozilla::recordreplay::parent::ChildProcessInfo::AttemptRestart toolkit/recordreplay/ipc/ChildProcess.cpp:588
4 XUL mozilla::recordreplay::parent::ChildProcessInfo::MaybeProcessPendingMessage toolkit/recordreplay/ipc/ChildProcess.cpp:628
5 XUL mozilla::recordreplay::parent::ChildProcessInfo::WaitUntil toolkit/recordreplay/ipc/ChildProcess.cpp:649
6 XUL mozilla::recordreplay::parent::ChildRoleActive::OnIncomingMessage toolkit/recordreplay/ipc/ParentInternal.h:377
7 XUL mozilla::recordreplay::parent::ChildProcessInfo::OnIncomingMessage toolkit/recordreplay/ipc/ChildProcess.cpp:269
8 XUL mozilla::recordreplay::parent::ChildProcessInfo::MaybeProcessPendingMessage toolkit/recordreplay/ipc/ChildProcess.cpp:628
9 XUL mozilla::recordreplay::parent::ChildProcessInfo::MaybeProcessPendingMessageRunnable toolkit/recordreplay/ipc/ChildProcess.cpp:688

Only 2 crashes over the last month, marking as fix-optional for 63.
Attached patch patchSplinter Review
This crash is happening while the middleman is using the recovery system to send messages to a child process to bring it to the same point as another child process.  The child process being updated hanged, and the middleman is trying to send a terminate message to it, but then the middleman itself crashes because it is using an API that should not be called on children that are recovering.  This patch should keep the middleman from crashing so that we can get a report on why the child hanged.
Assignee: nobody → bhackett1024
Attachment #9013129 - Flags: review?(continuation)
Record replay is Nightly only right now, so this can be set to disabled.
Comment on attachment 9013129 [details] [diff] [review]

Review of attachment 9013129 [details] [diff] [review]:

::: toolkit/recordreplay/ipc/ChildProcess.cpp
@@ +663,5 @@
>              // Sending the message will reset mLastMessageTime so we get to
>              // wait another HangSeconds before hitting the restart case below.
>              CrashReporter::AnnotateCrashReport(CrashReporter::Annotation::RecordReplayHang,
>                                                 true);
> +            SendMessageRaw(TerminateMessage());

Please add a comment here why you aren't using SendMessage, maybe also referencing this bug.
Attachment #9013129 - Flags: review?(continuation) → review+
Pushed by
Use the right API when terminating hanged child processes, r=mccr8.
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.