Closed Bug 1653638 Opened 4 years ago Closed 4 years ago

Netflix oldguardgame.com page doesn't load content

Categories

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

defect

Tracking

()

VERIFIED FIXED
81 Branch
Tracking Status
firefox-esr68 --- unaffected
firefox-esr78 --- unaffected
firefox78 --- unaffected
firefox79 --- unaffected
firefox80 + verified
firefox81 --- verified

People

(Reporter: cpeterson, Assigned: jya)

References

(Regression)

Details

(Keywords: regression)

Attachments

(4 files)

Steps to reproduce

  1. Load https://www.oldguardgame.com/ in Fx80 Nightly.

Expected result

The page loads and rendered the content.

Actual result

The page is black/blank except for a blue wheelchair icon in the lower right corner of the page.

[Tracking Requested - why for this release]:

@jya: This bug looks like a regression from your RemoteDecoder changes in bug 1650996 (or maybe bug 1650996). mozregression pointed to this regressing pushlog:

https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=732d6918f5bbd8578d623e07c643512296ea4706&tochange=f3ab1da2cea8d35101840daed1b94e35e07782d5

Flags: needinfo?(jyavenard)
See Also: → 1654493

Here we have a deadlock between the MediaBufferDecoder's TaskQueue (a threadpool's using PLATFORM_DECODER) using the RemoteDecoderModule which will dispatch a task synchronously on another TaskQueue's PLATFORM_DECODER and there's no free thread in that thread pool left.

We have 4 MediaDecodeTask running simultaneously here calling on the RemoteDecoderChildManager.

Assignee: nobody → jyavenard
Flags: needinfo?(jyavenard)

Historically, the MediaThreadType::PLAYBACK was used just for that; the MediaDecoderReader and exclusively for playback content.

This is no longer the case ; it's used in multiple places, and not just with playback: webrtc, webaudio, benchmark etc.

The primary use of the "PLAYBACK" thread was to distinguish from the "PLATFORM_DECODER" one as they dispatch synchronous tasks from one to the other, and we must ensure they don't share the same threadpool.

CONTROLLER is more fitting here, as this is how it's typically used: a controller thread manage the decoder threads.

Additionally, we remove the MTG_CONTROL one as it's not used.

We can't create a media decoder on a decoder taskqueue, as this could lead to deadlocks should a decoder attempt to dispatch a synchronous runnable.

Depends on D85543

C++17 guarantees that "In a function-call expression, the expression that names the function is sequenced before every argument expression and every default argument."

The order of operations in the expression s now guaranteed, we can remove the comment and the workaround.

Comment on attachment 9167250 [details]
Bug 1653638 - P2. Use a Controller TaskQueue for running webaudio tasks. r?mjf

Beta/Release Uplift Approval Request

  • User impact if declined: Some webaudio sites will fail to load due to internal deadlock
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: No
  • Needs manual test from QE?: Yes
  • If yes, steps to reproduce: Load the side
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): We are using a different taskqueue than the one the decoder used. If too many webaudio object are created at the same time, we would dead lock due to running out of threads.
  • String changes made/needed:
Attachment #9167250 - Flags: approval-mozilla-beta?
Attachment #9167249 - Flags: approval-mozilla-beta?
Flags: qe-verify+
Pushed by jyavenard@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a0bf489b499a P1. Rename thread type and remove unused one. r=mattwoodrow https://hg.mozilla.org/integration/autoland/rev/f48091ba8240 P2. Use a Controller TaskQueue for running webaudio tasks. r=mjf https://hg.mozilla.org/integration/autoland/rev/fd1ed3b4d00e P3. Remove no longer necessary workaround. r=mjf,karlt

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

For more information, please visit auto_nag documentation.

Flags: needinfo?(bvandyk)
Severity: -- → S1
Flags: needinfo?(bvandyk)
QA Whiteboard: [qa-triaged]

Verified - Fixed in latest Nightly 81.0a1 (20200803213927) using Windows 10 and Ubuntu 18.04.

Comment on attachment 9167249 [details]
Bug 1653638 - P1. Rename thread type and remove unused one. r?bryce

webaudio regression fix, approved for 80.0b4

Attachment #9167249 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Attachment #9167250 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

I need to re-base the P1 as there was a conflict with a change in Nightly.
the patch will apply fine on beta but will fail to compile in the fuzzing code.

Flags: needinfo?(jyavenard)

Verified - Fixed in latest Beta 80.0b5 (build id: 20200806023932), the page loads and rendered the content correctly.

Status: RESOLVED → VERIFIED
QA Whiteboard: [qa-triaged]
Flags: qe-verify+
Flags: in-testsuite?
Blocks: 1658614
Attached image orion-sandbox.png

Hi guys,

I wanted to report that I can reproduce bug #1654493 on latest Nightly (83.0a1 2020-10-14) but that is a duplicate of this bug. Yet this bug is closed verified fixed. How can we proceed?

(In reply to Florencia Di Ciocco from comment #19)

I wanted to report that I can reproduce bug #1654493 on latest Nightly (83.0a1 2020-10-14) but that is a duplicate of this bug. Yet this bug is closed verified fixed. How can we proceed?

I recommend filing a new bug. Bug 1654493 was also verified fixed back in August, so you are probably seeing a different issue now.

Your screenshot's error message mentions "set wmode to direct", so I suspect that page is trying to use the Flash plugin.

Has Regression Range: --- → yes
Priority: -- → P1
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: