Closed Bug 1575759 Opened 6 years ago Closed 6 years ago

Crash in [@ shutdownhang | libpthread-2.29.so@0x1193d]

Categories

(Core :: WebRTC: Audio/Video, defect, P2)

Unspecified
Linux
defect

Tracking

()

RESOLVED DUPLICATE of bug 1576335

People

(Reporter: Usul, Unassigned)

Details

(Keywords: crash)

Crash Data

This bug is for crash report bp-e639ea8d-38ed-4730-bbf8-fe64d0190822.

Top 10 frames of crashing thread:

0 libpthread-2.29.so libpthread-2.29.so@0x1193d 
1 libxul.so mozilla::camera::CamerasParent::DispatchToVideoCaptureThread dom/media/systemservices/CamerasParent.cpp:188
2 libxul.so mozilla::camera::CamerasParent::StopVideoCapture dom/media/systemservices/CamerasParent.cpp:210
3 libxul.so non-virtual thunk to mozilla::camera::CamerasParent::BlockShutdown dom/media/systemservices/CamerasParent.cpp
4 libxul.so NS_InvokeByIndex 
5 libxul.so XPCWrappedNative::CallMethod js/xpconnect/src/XPCWrappedNative.cpp:1149
6 libxul.so XPC_WN_CallMethod js/xpconnect/src/XPCWrappedNativeJSOps.cpp:943
7 libxul.so js::InternalCallOrConstruct js/src/vm/Interpreter.cpp:539
8 libxul.so Interpret js/src/vm/Interpreter.cpp:594
9 libxul.so js::RunScript js/src/vm/Interpreter.cpp:424

Ain't sure where to put this one -> Untriagge.

Component: Untriaged → Audio/Video
Product: Firefox → Core
Priority: -- → P2

don't know if it is related but I have fission enabled

Ok, this is a shutdownhang because main thread is waiting to lock sThreadMonitor, which is held by thread 82, which is blocked on joining thread 83, which is in read.

Thread 83 needs to run to completion to unblock thread 82. It will run to completion when _isShutdown is != 0, which will become true after ~DeviceInfoLinux. Thread 82 has already satisfied that condition since it's stopping thread 83.

The only ways to reach this crash that I see remain are:

  1. thread 83's read is indeed blocking, or
  2. shutdown is progressing but too slow to satisfy the hang monitor

Not sure what we can do here, short of refactoring CamerasParent to use more narrow or fewer locks, so that at least main thread cannot be blocked on IO.

Component: Audio/Video → WebRTC: Audio/Video
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.