Closed Bug 1674388 Opened 4 years ago Closed 3 years ago

[macOS] Crash in [@ IPCError-browser | ShutDownKill | __psynch_cvwait | mozilla::TaskController::GetRunnableForMTTask | mozilla::ipc::MessagePump::Run]

Categories

(Core :: XPCOM, defect)

Unspecified
macOS
defect

Tracking

()

RESOLVED DUPLICATE of bug 1279293
Fission Milestone MVP
Tracking Status
firefox83 --- disabled
firefox84 --- disabled
firefox85 --- wontfix
firefox86 --- wontfix
firefox87 --- wontfix
firefox88 --- wontfix
firefox89 --- wontfix
firefox90 --- affected

People

(Reporter: aryx, Assigned: jesup)

References

(Blocks 1 open bug)

Details

(Keywords: crash)

Crash Data

Only affects Nightly, and >=80.0a1.

Maybe Fission related. (DOMFissionEnabled=1)

Crash report: https://crash-stats.mozilla.org/report/index/ef627e47-6a28-47ba-b19e-e10180201030

Reason: EXC_BREAKPOINT / EXC_I386_BPT

Top 10 frames of crashing thread:

0 libsystem_kernel.dylib __psynch_cvwait 
1 libmozglue.dylib mozilla::detail::ConditionVariableImpl::wait mozglue/misc/ConditionVariable_posix.cpp:108
2 XUL mozilla::TaskController::GetRunnableForMTTask xpcom/threads/TaskController.cpp:283
3 XUL nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:1143
4 XUL mozilla::ipc::MessagePump::Run ipc/glue/MessagePump.cpp:109
5 XUL MessageLoop::Run ipc/chromium/src/base/message_loop.cc:309
6 XUL nsBaseAppShell::Run widget/nsBaseAppShell.cpp:137
7 XUL nsAppShell::Run widget/cocoa/nsAppShell.mm:694
8 XUL XRE_RunAppShell toolkit/xre/nsEmbedFunctions.cpp:913
9 XUL MessageLoop::Run ipc/chromium/src/base/message_loop.cc:309
Component: IPC → XPCOM
Crash Signature: [@ IPCError-browser | ShutDownKill | __psynch_cvwait | mozilla::TaskController::GetRunnableForMTTask | mozilla::ipc::MessagePump::Run] → [@ IPCError-browser | ShutDownKill | __psynch_cvwait | _pthread_cond_wait | mozilla::TaskController::GetRunnableForMTTask | mozilla::ipc::MessagePump::Run ] [@ IPCError-browser | ShutDownKill | __psynch_cvwait | mozilla::TaskController::GetRunnableForMTT…

Change the status for beta to have the same as nightly and release.
For more information, please visit auto_nag documentation.

The volume of this crash on nightly has tripled since last month, could that be the related to the wider rollout of FIssion?

Around 85% of the most common signature, IPCError-browser | ShutDownKill | __psynch_cvwait | mozilla::TaskController::GetRunnableForMTTask | mozilla::ipc::MessagePump::Run, have Fission enabled.

Despite these being mostly Fission crashes, I don't see a single crash where there is a remote type annotation on the crash report, which I think implies that ContentChild::RecvRemoteType has never run, which in turn I think implies that these are preallocated processes.

Maybe there's some kind of race where the preallocated process manager is in the middle of starting up a new process? I'm not sure why the preallocated process manager doesn't call CloseProcesses() when it observes that shutdown has begun. It looks like the behavior was intentionally changed to this in bug 1363601. It looks like ContentParent::ReleaseCachedProcesses() might clear those out, but I don't understand how that is invoked.

For what it is worth, the last 5 crashes on my OSX machine looked like this.

(In reply to Pascal Chevrel:pascalc from comment #3)

The volume of this crash on nightly has tripled since last month, could that be the related to the wider rollout of FIssion?

(In reply to Andrew McCreight [:mccr8] from comment #4)

Despite these being mostly Fission crashes, I don't see a single crash where there is a remote type annotation on the crash report, which I think implies that ContentChild::RecvRemoteType has never run, which in turn I think implies that these are preallocated processes.

CC'ing Jesup because these ShutDownKills look related to Fission's pre-allocated processes.

Tracking this bug for Fission M7a because we should understand this issue before we enable Fission for more users.

Fission Milestone: --- → M7a
Flags: needinfo?(cpeterson) → needinfo?(rjesup)

I'll investigate. Fission has 3x the number of preallocated processes -- and more to the point perhaps is far more likely to be in the process of preallocating a process when we shut down.

Flags: needinfo?(rjesup)
Assignee: nobody → rjesup
Status: NEW → ASSIGNED

The signature changed from IPCError-browser | ShutDownKill | __psynch_cvwait | mozilla::TaskController::GetRunnableForMTTask | mozilla::ipc::MessagePump::Run to [@ IPCError-browser | ShutDownKill | __psynch_cvwait | mozilla::ipc::MessagePump::Run]. The signature for the latter got also added to bug 1279293.

Crash Signature: [@ IPCError-browser | ShutDownKill | __psynch_cvwait | _pthread_cond_wait | mozilla::TaskController::GetRunnableForMTTask | mozilla::ipc::MessagePump::Run ] [@ IPCError-browser | ShutDownKill | __psynch_cvwait | mozilla::TaskController::GetRunnableForMTT… → [@ IPCError-browser | ShutDownKill | __psynch_cvwait | _pthread_cond_wait | mozilla::TaskController::GetRunnableForMTTask | mozilla::ipc::MessagePump::Run ] [@ IPCError-browser | ShutDownKill | __psynch_cvwait | mozilla::ipc::MessagePump::Run] [@ IPCErr…

This subset of the ShutDownKill errors is a mac-only, and the particular signature is likely related to process startup (given the lack of a remote type - not even Web or Prealloc). Since we're allocating processes more often, this overall makes sense.

This causes no significant negative impact to users, so pushing this out.

Fission Milestone: M7a → MVP

Dup'ing as discussed with Randell in the Fission meeting.

Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.