Closed Bug 1597681 Opened 10 months ago Closed 10 months ago

[RemVidParent] ###!!! ASSERTION: Can only add a reference on the main thread: 'NS_IsMainThread() in ImageContainer.h, line 85

Categories

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

defect

Tracking

()

RESOLVED FIXED
mozilla72
Tracking Status
firefox-esr68 --- unaffected
firefox71 --- wontfix
firefox72 --- fixed

People

(Reporter: pehrsons, Assigned: djg)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(1 file)

I'm seeing many many of these NS_ASSERTIONs for some videos:

[RDD 18382, RemVidParent] ###!!! ASSERTION: Can only add a reference on the main thread: 'NS_IsMainThread()', file /home/pehrsons/dev/m-c-2/gfx/layers/ImageContainer.h, line 85

This is on a local build on linux.

Here's an STR:

  1. Load https://www.youtube.com/watch?v=Fy3Mi8rOB3U
  2. Force it to the lowest quality through Youtube's controls (144p)
  3. Play

Expected:
No assertions

Actual:
Usually one assertion per above at this point

  1. Start picture-in-picture for this video

Expected:
No assertions

Actual:
One assertion per frame, as it seems, i.e., m-a-n-y

Modifying the refcount on the wrong thread can lead to really bad things, but so far this hasn't led to anything nasty in my tests. I'll try to capture this in pernosco.

Pernosco recording is at https://pernos.co/debug/02u2616jAozx1jBQxREUgg/index.html

Michael, can you triage this please?

Flags: needinfo?(mfroman)

Running mozregression I get:

11:26.86 INFO: Last good revision: 8f15ea3b3223c91e84a671b7ad32916d62e1ca84
11:26.86 INFO: First bad revision: 7e8d43bbeb96eb150ece4938ea16ba0fee2a72c2
11:26.86 INFO: Pushlog:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=8f15ea3b3223c91e84a671b7ad32916d62e1ca84&tochange=7e8d43bbeb96eb150ece4938ea16ba0fee2a72c2

11:27.69 INFO: ************* Switching to mozilla-central
11:28.04 ERROR: Unable to exploit the merge commit. Origin branch is mozilla-inbound, and the commit message for 7e8d43bb was:
Merge mozilla-central to mozilla-inbound.

After some additional mucking around with mozregression, this commit is good:

./mach mozregression -B debug --launch 0883abbe6a6f --repo autoland &> log.txt

this commit is bad:

./mach mozregression -B debug --launch 29d310d368ef --repo autoland &> log.txt
Flags: needinfo?(mfroman)

Commit 29d310d368ef is Bug 1561178. Matt, can you take a look?

Flags: needinfo?(matt.woodrow)
Priority: -- → P2
Regressed by: 1561178
Assignee: nobody → dglastonbury
Flags: needinfo?(matt.woodrow)
Blocks: 1595994
Status: NEW → ASSIGNED

gfx::SourceSurface supports atomic ref counting, so is safe to class
AddRef/Release from any thread. With the move to remote decoding in different
processes, access to Image happens on IPDL actor thread.

Retain the Release behavior of only releasing on the main thread.

Pushed by dglastonbury@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/266bf5125ecc
Remove debug assertion for AddRef on main thread. r=mattwoodrow
Status: ASSIGNED → RESOLVED
Closed: 10 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla72
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.