Closed Bug 1055562 Opened 5 years ago Closed 5 years ago

crash in java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:$, guid={$} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)

Categories

(Firefox for Android :: Screencasting, defect, critical)

All
Android
defect
Not set
critical

Tracking

()

RESOLVED FIXED
Firefox 36
Tracking Status
firefox33 --- wontfix
firefox34 --- fixed
firefox35 --- fixed
firefox36 --- fixed
fennec 34+ ---

People

(Reporter: cos_flaviu, Assigned: rbarker)

References

Details

(Keywords: crash)

Crash Data

Attachments

(1 file, 3 obsolete files)

This bug was filed from the Socorro interface and is 
report bp-1c45f20e-69c3-4eda-8e82-2f9542140819.
=============================================================

Environment: 
Device: Samsung Galaxy R (Android 2.3.4);
Build: Nightly 34.0a1 (2014-08-19);

Steps to reproduce:
1. Load any page (e.g.: mozilla.org);
2. Choose to Mirror Tab to Chromecast device.

Expected result:
The tab is successfully mirrored on Chromecast device.

Actual result:
After the tab mirroring is launched Firefox crashes.

Notes:
On Motorola Razr (Android 4.1.2) Firefox exits without any crash.
Blocks: 1037015
Crash Signature: [@ java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Mirror, guid={0b35d7bc-373c-488b-8133-079c8a869863} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] → [@ java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Mirror, guid={0b35d7bc-373c-488b-8133-079c8a869863} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] [@ java.lang.Illeg…
tracking-fennec: --- → ?
Summary: crash in java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Mirror, guid={0b35d7bc-373c-488b-8133-079c8a869863} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java) → crash in java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Mirror, guid={$} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)
Crash Signature: , guid={bf1b9bb1-7f53-459c-8b90-446213725e7b} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] → , guid={bf1b9bb1-7f53-459c-8b90-446213725e7b} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] [@ [@ java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Mirror, guid={d2d6a30…
Duplicate of this bug: 1062712
dholbert has some steps in bug 1062712
Crash Signature: , guid={bf1b9bb1-7f53-459c-8b90-446213725e7b} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] [@ [@ java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Mirror → , guid={bf1b9bb1-7f53-459c-8b90-446213725e7b} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] [@ java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Mirror
Summary: crash in java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Mirror, guid={$} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java) → crash in java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:$, guid={$} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)
Assignee: nobody → margaret.leibovic
tracking-fennec: ? → 33+
Assignee: margaret.leibovic → rbarker
These signatures are dominating 33, 34 and 35.
Status: NEW → ASSIGNED
tracking-fennec: 33+ → 34+
Still seeing daily signatures on 35
Crash Signature: , guid={d2d6a304-fb71-4bdc-8824-4480dfa92012} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] → , guid={d2d6a304-fb71-4bdc-8824-4480dfa92012} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] [@ java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Load, guid={8bd99f2f-c0e…
Crash Signature: , guid={8bd99f2f-c0e2-4905-93ab-dce8b1da7181} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] → , guid={8bd99f2f-c0e2-4905-93ab-dce8b1da7181} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] [@ java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Mirror, guid={17d80534-8…
Crash Signature: , guid={17d80534-82e0-427e-8ee6-0e4470abd6b4} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] → , guid={17d80534-82e0-427e-8ee6-0e4470abd6b4} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] [@ java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Mirror, guid={d488f1eb-a…
Crash Signature: , guid={0b35d7bc-373c-488b-8133-079c8a869863} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] [@ java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Load, guid={c607460a-49f… → , guid={a051bdb7-b5f7-445f-8bf4-1f45b246f3e7} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] [@ java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Mirror, guid={5553e48f-c…
I am unable to reproduce this. This patch should prevent the callback from being made more than once.
Attachment #8503518 - Flags: review?(wjohnston)
Comment on attachment 8503518 [details] [diff] [review]
Prevent callback from being invoked more than once.

Review of attachment 8503518 [details] [diff] [review]:
-----------------------------------------------------------------

I would add a comment by callback's definition or something, just so that some helpful person doesn't undo this on accident (or maybe someone who knows what was happening can fix it). Logging something might be useful as well....
Attachment #8503518 - Flags: review?(wjohnston) → review+
Carry forward r+ from :wesj
Attachment #8503518 - Attachment is obsolete: true
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/441c734a3643
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 36
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Attachment #8504278 - Attachment is obsolete: true
Crash Signature: [@ java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Mirror, guid={a051bdb7-b5f7-445f-8bf4-1f45b246f3e7} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] [@ java.lang.Illeg… → [@ java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Load, guid={1baa6ed5-fc46-40c7-b043-13335d7b5c85} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] [@ java.lang.Illegal…
Can we get this reviewed? It will need uplift.
Attachment #8511398 - Flags: review?(wjohnston)
Comment on attachment 8511398 [details] [diff] [review]
Catch exception if callback is made more than once v1

Review of attachment 8511398 [details] [diff] [review]:
-----------------------------------------------------------------

::: mobile/android/base/ChromeCast.java
@@ +50,5 @@
>  
> +    // EventCallback which is actually a GeckoEventCallback is sometimes being invoked more
> +    // than once. That causes the IllegalStateException to be thrown. To prevent a crash,
> +    // catch the exception and report it as an error to the log.
> +    private static void callbackSendSuccess(final EventCallback callback, final String msg) {

Just name these sendSuccess(final EventCallback callback, final String msg)
sendError(final EventCallback callback, final String msg)
Attachment #8511398 - Flags: review?(wjohnston) → review+
Address review comments.
Attachment #8511398 - Attachment is obsolete: true
Carry forward r+ from :wesj
Crash Signature: [@ java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Load, guid={1baa6ed5-fc46-40c7-b043-13335d7b5c85} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] [@ java.lang.Illegal… → [@ java.lang.IllegalStateException: Callback has already been executed for type=MediaPlayer:Mirror, guid={faa6bae2-9f47-40ac-8409-766c59e9ed67} at org.mozilla.gecko.EventDispatcher$GeckoEventCallback.sendResponse(EventDispatcher.java)] [@ java.lang.Illeg…
Target Milestone: Firefox 36 → ---
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/76781910e4bc
Status: REOPENED → RESOLVED
Closed: 5 years ago5 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 36
Comment on attachment 8515230 [details] [diff] [review]
Catch exception if callback is made more than once v2

Adding the r+ which was carried forward

Approval Request Comment
[Feature/regressing bug #]: Chromecast flinging work that shipped in Fx33
[User impact if declined]: Crashes
[Describe test coverage new/current, TBPL]:
[Risks and why]: Low risk
[String/UUID change made/needed]: none
Attachment #8515230 - Flags: review+
Attachment #8515230 - Flags: approval-mozilla-beta?
Attachment #8515230 - Flags: approval-mozilla-aurora?
Attachment #8515230 - Flags: approval-mozilla-beta?
Attachment #8515230 - Flags: approval-mozilla-beta+
Attachment #8515230 - Flags: approval-mozilla-aurora?
Attachment #8515230 - Flags: approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.