Closed Bug 1909826 Opened 9 months ago Closed 12 days ago

Crash on canalplus.com [@ mozilla::MediaDecoder::SetCDMProxy ]

Categories

(Core :: Audio/Video: Playback, defect, P3)

defect

Tracking

()

RESOLVED FIXED
139 Branch
Tracking Status
firefox138 --- fixed
firefox139 --- fixed

People

(Reporter: mayankleoboy1, Assigned: aosmond)

References

Details

Crash Data

Attachments

(3 files)

I was on particularly slow network.
I was on canalplus, testing stuff. I had opened the page for one of the sport streams..
While a stream loads, I triggered a "Kill GPU process" from about:support

AR: Crash

https://crash-stats.mozilla.org/report/index/a24418de-83e1-4fb0-896b-410620240725#tab-bugzilla
https://crash-stats.mozilla.org/report/index/1a82b08c-500b-40bf-895f-ca5970240725#tab-bugzilla

Can repro intermittently

Attached file about:support
Summary: Crash on canalplus.com [@ mozilla::MediaDecoder::SetCDMProxy ] sometime after a forced "Trigger Device Reset" → One-time Crash on canalplus.com [@ mozilla::MediaDecoder::SetCDMProxy ] sometime after a forced "Trigger Device Reset"
Summary: One-time Crash on canalplus.com [@ mozilla::MediaDecoder::SetCDMProxy ] sometime after a forced "Trigger Device Reset" → Crash on canalplus.com [@ mozilla::MediaDecoder::SetCDMProxy ] sometime after a forced "Trigger Device Reset"

Most of the time the tab recovers after killing the gpu process. But on these 2 occasions, the tab crashed.

The severity field is not set for this bug.
:jimm, could you have a look please?

For more information, please visit BugBot documentation.

Flags: needinfo?(jmathies)
Blocks: mfcdm
Severity: -- → S3
Flags: needinfo?(jmathies)
Priority: -- → P2
Priority: P2 → P3
See Also: → 1885743

Based on the crash reports in nightly/release, I don't believe this necessarily requires a GPU process crash to trigger, or at least it isn't obvious that is required.

Summary: Crash on canalplus.com [@ mozilla::MediaDecoder::SetCDMProxy ] sometime after a forced "Trigger Device Reset" → Crash on canalplus.com [@ mozilla::MediaDecoder::SetCDMProxy ]

I've been looking at this but I'm not sure how it can happen. Given there are only two CDMProxy types, my assumption is that the switchover to the other state machine type fails, but the failure paths don't seem very likely. Any ideas alwu?

Flags: needinfo?(alwu)

I'll continue to investigate in the meantime.

If the prefs were changed to something other than 1 or 2, I see that we return false, but the CDM may or not match the state machine:
https://searchfox.org/mozilla-central/rev/19764d620c02025bdcc8d1f3c4fcf5a580407a01/dom/media/ExternalEngineStateMachine.cpp#1418

Can't tell from the crash reports if this is the case for those users.

This patch makes it so that we more gracefully handle unsupported or
disabled CDM proxy types. It will diagnostic assert but barring that now
return a more appropriate error code instead of attempting to use the
CDM with the state machine.

Assignee: nobody → aosmond
Status: NEW → ASSIGNED
Pushed by aosmond@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/0563ac8d038f Improve MediaDecoder::SetCDMProxy to better support invalid CDM proxy types. r=alwu,media-playback-reviewers
Status: ASSIGNED → RESOLVED
Closed: 12 days ago
Resolution: --- → FIXED
Target Milestone: --- → 139 Branch

Comment on attachment 9478642 [details]
Bug 1909826 - Improve MediaDecoder::SetCDMProxy to better support invalid CDM proxy types.

Beta/Release Uplift Approval Request

  • User impact if declined/Reason for urgency: Fixes another MFCDM related crash
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Just checks for more errors to handle them properly
  • String changes made/needed:
  • Is Android affected?: No
Attachment #9478642 - Flags: approval-mozilla-beta?
Flags: needinfo?(alwu)

:aosmond this needs a rebased patch to beta

Flags: needinfo?(aosmond)

This patch makes it so that we more gracefully handle unsupported or
disabled CDM proxy types. It will diagnostic assert but barring that now
return a more appropriate error code instead of attempting to use the
CDM with the state machine.

Original Revision: https://phabricator.services.mozilla.com/D245284

Attachment #9479156 - Flags: approval-mozilla-beta?
Attachment #9478642 - Flags: approval-mozilla-beta?
Attachment #9479156 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Flags: needinfo?(aosmond)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: