Crash in [@ java.util.NoSuchElementException: at java.util.ArrayDeque.removeFirst(ArrayDeque.java)]
Categories
(Core :: Audio/Video: Playback, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr68 | --- | unaffected |
firefox-esr78 | --- | unaffected |
firefox78 | --- | unaffected |
firefox79 | + | fixed |
firefox80 | + | fixed |
firefox81 | + | fixed |
People
(Reporter: fluffyemily, Assigned: jhlin)
References
(Regression)
Details
(Keywords: crash, regression, Whiteboard: [fxr:p1])
Crash Data
Attachments
(1 file)
47 bytes,
text/x-phabricator-request
|
jcristau
:
approval-mozilla-beta+
RyanVM
:
approval-mozilla-release+
|
Details | Review |
Crash in ExoPlayer2.
This bug is for crash report bp-82037c51-402b-4239-b1b9-481890200707.
Java stack trace:
java.util.NoSuchElementException
at java.util.ArrayDeque.removeFirst(ArrayDeque.java:248)
at org.mozilla.thirdparty.com.google.android.exoplayer2.ExoPlayerImpl.notifyListeners(ExoPlayerImpl.java:7)
at org.mozilla.thirdparty.com.google.android.exoplayer2.ExoPlayerImpl.updatePlaybackInfo(ExoPlayerImpl.java:5)
at org.mozilla.thirdparty.com.google.android.exoplayer2.ExoPlayerImpl.handleEvent(ExoPlayerImpl.java:23)
at org.mozilla.thirdparty.com.google.android.exoplayer2.ExoPlayerImpl$1.handleMessage(ExoPlayerImpl.java:1)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:211)
at android.os.HandlerThread.run(HandlerThread.java:61)
Reporter | ||
Updated•6 months ago
|
Reporter | ||
Comment 1•6 months ago
|
||
Bryce, it looks like we're having some crashes inside exoplayer. Could you please take a look?
Assignee | ||
Comment 2•6 months ago
|
||
This is a regression of bug 1628792. In the new version, ExoPlayerImpl.notifyListeners
[1] relies on an instance variable pendingListenerNotifications
to work, and must run on one single thread.
According to the "Threading Model" section of its Javadoc[2], an ExoPlayer
instance must be accessed from a single application thread, but GeckoHlsPlayer
doesn't follow this rule. I'll modify it to comply.
[1] https://searchfox.org/mozilla-central/source/mobile/android/geckoview/src/thirdparty/java/org/mozilla/thirdparty/com/google/android/exoplayer2/ExoPlayerImpl.java#729
[2] https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/ExoPlayer.html
Assignee | ||
Updated•6 months ago
|
Comment 3•6 months ago
|
||
Might be worth sneaking this into a Fenix dot release if a low-risk patch is available.
Comment 4•6 months ago
|
||
This is currently the top content process crasher in Firefox Reality v11 (the current release).
Assignee | ||
Comment 5•6 months ago
|
||
The threading model described in the javadoc (ExoPlayer.java#92 in tree)
requires that the player is accessed from a single thread. However current
GeckoHlsPlayer implementation violates this rule and uses the player from
Gecko main thread and other media task queues. Introduce methods to execute
code asynchronously and synchronously for GeckoHlsPlayer to follows the rule.
Also add comments documenting thread usages for some instance variables and
assertions in the begining of methods that need to be on the player thread
to help debugging.
Pushed by jolin@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b0fd91f7cd9d ensure ExoPlayer instance operate on a single thread. r=geckoview-reviewers,snorp
Comment 7•6 months ago
|
||
bugherder |
Updated•6 months ago
|
Comment 8•5 months ago
|
||
Please nominate this for Beta and Release approval when you get a chance.
Assignee | ||
Comment 9•5 months ago
|
||
Thanks for the reminder! I will request the uplifting after the patch for bug 1638452 is landed and verified.
Comment 10•5 months ago
|
||
Tracking for 79 given the volume. This would be good to get into a GV79 respin for next week's updated Fenix builds.
The patch landed in nightly and beta is affected.
:jhlin, is this bug important enough to require an uplift?
If not please set status_beta
to wontfix
.
If yes, don't forget to request an uplift for the patches in the regression caused by this fix.
For more information, please visit auto_nag documentation.
Assignee | ||
Comment 12•5 months ago
|
||
Comment on attachment 9167512 [details]
Bug 1651088 - ensure ExoPlayer instance operate on a single thread. r?agi
Beta/Release Uplift Approval Request
- User impact if declined: Browser crash when playing HLS video.
- 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: Bug 1638452
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): The change dispatches works to a single thread and avoid race condition.
- String changes made/needed: N/A
Comment 13•5 months ago
|
||
Comment on attachment 9167512 [details]
Bug 1651088 - ensure ExoPlayer instance operate on a single thread. r?agi
gv crash fix, approved for 80.0b8
Comment 14•5 months ago
|
||
bugherderuplift |
Comment 15•5 months ago
|
||
Comment on attachment 9167512 [details]
Bug 1651088 - ensure ExoPlayer instance operate on a single thread. r?agi
Approved for Fenix 79.0.5.
Comment 16•5 months ago
|
||
bugherderuplift |
Description
•