Closed Bug 1054975 Opened 10 years ago Closed 10 years ago

crash in java.lang.IllegalStateException: Already registered this as an observer? at org.mozilla.gecko.fxa.sync.FxAccountSyncStatusHelper.startObserving(FxAccountSyncStatusHelper.java)

Categories

(Firefox for Android Graveyard :: Android Sync, defect)

Firefox 34
All
Android
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: gcp, Unassigned, Mentored)

Details

(Keywords: crash, Whiteboard: [lang=java][good second bug])

Crash Data

This bug was filed from the Socorro interface and is 
report bp-2b1166a8-05c6-43ff-a001-1c12b2140817.
=============================================================

My Android Nightly started crashing this weekend, just using the awesomescreen.
Thoughts on what is wrong Nick?
tracking-fennec: --- → ?
Component: General → Android Sync
Flags: needinfo?(nalexander)
Product: Firefox for Android → Android Background Services
Version: Trunk → Firefox 34
(In reply to Kevin Brosnan [:kbrosnan] from comment #1)
> Thoughts on what is wrong Nick?

My guess is that this is fall-out from Bug 1054623, which mangled the Remote Tabs panel in some way.  By upsetting the Remote Tabs panel lifecycle, we end up registering a listener twice in a way that should not be possible.

The fix is clearly to fix Remote Tabs; but we can also make this less stringent so that it's not a crash to register multiple times.  Sounds like a mentor bug!
Mentor: nalexander
Flags: needinfo?(nalexander)
Whiteboard: [lang=java][good second bug]
The relevant error is thrown at:

http://dxr.mozilla.org/mozilla-central/source/mobile/android/base/fxa/sync/FxAccountSyncStatusHelper.java#67

If you look in that code, it implements a "listener dispatching to listeners" pattern.  It tries to arrange that the single top-level listener is only registered once.  Clearly there's an issue, because we're getting two registration calls.  I must have made a concurrency error, even though all the relevant methods are guarded by |synchronized|.  So perhaps have a careful read and prove that the concurrency can fail?

The IllegalStateException can be softened to an informative warning that logs if the registration is for handle == this in the meantime.
(In reply to Nick Alexander :nalexander from comment #2)
> (In reply to Kevin Brosnan [:kbrosnan] from comment #1)
> > Thoughts on what is wrong Nick?
> 
> My guess is that this is fall-out from Bug 1054623, which mangled the Remote
> Tabs panel in some way.

Yeah reports show this pretty much exploded on the 16th after bug 1016613 landed again
Is this crash died down or gone from 08/19 onwards?
WFM based on the backout. Update your Nightly if this is still happening
Status: NEW → RESOLVED
tracking-fennec: ? → ---
Closed: 10 years ago
Resolution: --- → WORKSFORME
Product: Android Background Services → Firefox for Android
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.