Closed
Bug 1154873
Opened 11 years ago
Closed 11 years ago
GMPDecryptorParent::Shutdown() sends a message from the wrong thread
Categories
(Core :: Audio/Video, defect)
Core
Audio/Video
Tracking
()
RESOLVED
INCOMPLETE
| Tracking | Status | |
|---|---|---|
| firefox40 | --- | affected |
People
(Reporter: mccr8, Unassigned)
References
Details
(Keywords: csectype-race, sec-moderate)
Crash Data
I found this crash signature on crash-stats:
https://crash-stats.mozilla.com/report/index/bf30f18e-654f-4289-af2c-69a3d2150414
GMPDecryptorParent::Shutdown() is run off the main thread, but calls SendDecryptingComplete(), which calls MessageChannel::Send(), which I think is not okay to do on this random thread.
| Reporter | ||
Updated•11 years ago
|
Crash Signature: [@ mozilla::ipc::MessageChannel::CxxStackFrame::CxxStackFrame(mozilla::ipc::MessageChannel&, mozilla::ipc::Direction, IPC::Message const*) ]
| Reporter | ||
Comment 1•11 years ago
|
||
Two more like this:
https://crash-stats.mozilla.com/report/index/31c719b8-42a6-4137-8343-e2faf2150414
https://crash-stats.mozilla.com/report/index/9ea68906-0f6e-4b64-a8d8-f00132150414
This one is slightly different, in that it is GMPVideoDecoderParent::Shutdown() calling SendDecodingComplete() off the main thread, but it seems like the same basic problem:
https://crash-stats.mozilla.com/report/index/0897ed68-e6b5-4576-93cf-9eb012150414#allthreads
The last one has the user comment "Testing GMP crash reporting... Crashes browser :(".
Comment 2•11 years ago
|
||
(In reply to Andrew McCreight [:mccr8] from comment #0)
> GMPDecryptorParent::Shutdown() is run off the main thread, but calls
> SendDecryptingComplete(), which calls MessageChannel::Send(), which I think
> is not okay to do on this random thread.
If I understand correctly, PGMP is meant to be owned by a non-main thread — notice that CDMProxy::Shutdown asserts it's on the main thread and then sends a runnable to mGMPThread to call CDMProxy::gmp_Shutdown, and this design pattern is repeated for a few other methods. The problem here is that it somehow winds up on a thread that isn't the owner of its MessageChannel.
| Reporter | ||
Updated•11 years ago
|
Keywords: csectype-race
Summary: GMPDecryptorParent::Shutdown() sends a message off the main thread → GMPDecryptorParent::Shutdown() sends a message from the wrong thread
| Reporter | ||
Comment 4•11 years ago
|
||
I haven't seen this in a while.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → INCOMPLETE
Updated•10 years ago
|
Group: core-security → core-security-release
Updated•6 years ago
|
Group: core-security-release
You need to log in
before you can comment on or make changes to this bug.
Description
•