Closed Bug 962703 Opened 10 years ago Closed 10 years ago

Firefox Accounts (Sync) - org.mozilla.gecko.sync.crypto.HMACVerificationException at org.mozilla.gecko.sync.crypto.CryptoInfo.decryp / java.lang.NullPointerException at org.mozilla.gecko.sync.CollectionKeys.differences

Categories

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

Firefox 29
All
Android
defect
Not set
normal

Tracking

(firefox29 affected, fennec29+)

RESOLVED WORKSFORME
Tracking Status
firefox29 --- affected
fennec 29+ ---

People

(Reporter: aaronmt, Unassigned)

References

Details

(Whiteboard: [qa+])

I/FxAccounts(10132): fennec :: FxAccountSyncAdapter :: $$FxA PII$$: Got token! uid is 131 and endpoint is http://db1.oldsync.dev.lcip.org/1.1/131.
I/FxAccounts(10132): fennec :: FxAccountGlobalSession :: $$FxA PII$$: storageEndpoint is http://db1.oldsync.dev.lcip.org/1.1/131 and clusterURL is http://db1.oldsync.dev.lcip.org/
I/FxAccounts(10132): fennec :: GlobalSession :: Running next stage checkPreconditions (org.mozilla.gecko.sync.stage.CheckPreconditionsStage@42fd6bb0)...
I/FxAccounts(10132): fennec :: GlobalSession :: Running next stage ensureClusterURL (org.mozilla.gecko.sync.stage.CheckPreconditionsStage@42d50510)...
I/FxAccounts(10132): fennec :: GlobalSession :: Running next stage fetchInfoCollections (org.mozilla.gecko.sync.stage.FetchInfoCollectionsStage@4310e958)...
I/FxAccounts(10132): fennec :: GlobalSession :: Running next stage fetchMetaGlobal (org.mozilla.gecko.sync.stage.FetchMetaGlobalStage@42c3a670)...
I/FxAccounts(10132): fennec :: FetchMetaGlobalStage :: Trying to use persisted meta/global for this session.
I/FxAccounts(10132): fennec :: FetchMetaGlobalStage :: Using persisted meta/global for this session.
I/FxAccounts(10132): fennec :: GlobalSession :: Running next stage ensureKeysStage (org.mozilla.gecko.sync.stage.EnsureCrypto5KeysStage@42fd7440)...
W/FxAccounts(10132): fennec :: PersistedC5Keys :: Got exception decrypting persisted crypto/keys.
W/FxAccounts(10132): org.mozilla.gecko.sync.crypto.HMACVerificationException
W/FxAccounts(10132):    at org.mozilla.gecko.sync.crypto.CryptoInfo.decrypt(CryptoInfo.java:57)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.CryptoRecord.decrypt(CryptoRecord.java:199)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.CollectionKeys.setKeyPairsFromWBO(CollectionKeys.java:117)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.crypto.PersistedCrypto5Keys.keys(PersistedCrypto5Keys.java:46)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.EnsureCrypto5KeysStage.execute(EnsureCrypto5KeysStage.java:45)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.processMetaGlobal(GlobalSession.java:670)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.FetchMetaGlobalStage.execute(FetchMetaGlobalStage.java:68)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.FetchInfoCollectionsStage$StageInfoCollectionsDelegate.handleSuccess(FetchInfoCollectionsStage.java:20)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.JSONRecordFetcher$JSONFetchHandler.handleRequestSuccess(JSONRecordFetcher.java:56)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.SyncStorageRequest$SyncStorageResourceDelegate.handleHttpResponse(SyncStorageRequest.java:120)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.execute(BaseResource.java:276)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.go(BaseResource.java:311)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.get(BaseResource.java:317)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.SyncStorageRequest.get(SyncStorageRequest.java:177)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.JSONRecordFetcher.fetch(JSONRecordFetcher.java:81)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.FetchInfoCollectionsStage.execute(FetchInfoCollectionsStage.java:38)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.CheckPreconditionsStage.execute(CheckPreconditionsStage.java:11)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.CheckPreconditionsStage.execute(CheckPreconditionsStage.java:11)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.start(GlobalSession.java:325)
W/FxAccounts(10132):    at org.mozilla.gecko.fxa.sync.FxAccountSyncAdapter$1$1.handleSuccess(FxAccountSyncAdapter.java:205)
W/FxAccounts(10132):    at org.mozilla.gecko.tokenserver.TokenServerClient$1.run(TokenServerClient.java:77)
W/FxAccounts(10132):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/FxAccounts(10132):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/FxAccounts(10132):    at java.lang.Thread.run(Thread.java:841)
W/FxAccounts(10132): fennec :: PersistedC5Keys :: Got exception decrypting persisted crypto/keys.
W/FxAccounts(10132): org.mozilla.gecko.sync.crypto.HMACVerificationException
W/FxAccounts(10132):    at org.mozilla.gecko.sync.crypto.CryptoInfo.decrypt(CryptoInfo.java:57)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.CryptoRecord.decrypt(CryptoRecord.java:199)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.CollectionKeys.setKeyPairsFromWBO(CollectionKeys.java:117)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.crypto.PersistedCrypto5Keys.keys(PersistedCrypto5Keys.java:46)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.EnsureCrypto5KeysStage.handleRequestSuccess(EnsureCrypto5KeysStage.java:151)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.SyncStorageRequest$SyncStorageResourceDelegate.handleHttpResponse(SyncStorageRequest.java:120)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.execute(BaseResource.java:276)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.go(BaseResource.java:311)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.get(BaseResource.java:317)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.SyncStorageRequest.get(SyncStorageRequest.java:177)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.EnsureCrypto5KeysStage.execute(EnsureCrypto5KeysStage.java:60)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.processMetaGlobal(GlobalSession.java:670)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.FetchMetaGlobalStage.execute(FetchMetaGlobalStage.java:68)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.FetchInfoCollectionsStage$StageInfoCollectionsDelegate.handleSuccess(FetchInfoCollectionsStage.java:20)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.JSONRecordFetcher$JSONFetchHandler.handleRequestSuccess(JSONRecordFetcher.java:56)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.SyncStorageRequest$SyncStorageResourceDelegate.handleHttpResponse(SyncStorageRequest.java:120)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.execute(BaseResource.java:276)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.go(BaseResource.java:311)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.get(BaseResource.java:317)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.SyncStorageRequest.get(SyncStorageRequest.java:177)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.JSONRecordFetcher.fetch(JSONRecordFetcher.java:81)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.FetchInfoCollectionsStage.execute(FetchInfoCollectionsStage.java:38)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.CheckPreconditionsStage.execute(CheckPreconditionsStage.java:11)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.CheckPreconditionsStage.execute(CheckPreconditionsStage.java:11)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.start(GlobalSession.java:325)
W/FxAccounts(10132):    at org.mozilla.gecko.fxa.sync.FxAccountSyncAdapter$1$1.handleSuccess(FxAccountSyncAdapter.java:205)
W/FxAccounts(10132):    at org.mozilla.gecko.tokenserver.TokenServerClient$1.run(TokenServerClient.java:77)
W/FxAccounts(10132):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/FxAccounts(10132):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/FxAccounts(10132):    at java.lang.Thread.run(Thread.java:841)
W/FxAccounts(10132): fennec :: GlobalSession :: Caught exception java.lang.NullPointerException running stage ensureKeysStage
W/FxAccounts(10132): fennec :: GlobalSession :: Aborting sync: Uncaught exception in stage.
W/FxAccounts(10132): java.lang.NullPointerException
W/FxAccounts(10132):    at org.mozilla.gecko.sync.CollectionKeys.differences(CollectionKeys.java:155)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.EnsureCrypto5KeysStage.collectionsToUpdate(EnsureCrypto5KeysStage.java:90)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.EnsureCrypto5KeysStage.handleRequestSuccess(EnsureCrypto5KeysStage.java:152)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.SyncStorageRequest$SyncStorageResourceDelegate.handleHttpResponse(SyncStorageRequest.java:120)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.execute(BaseResource.java:276)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.go(BaseResource.java:311)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.get(BaseResource.java:317)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.SyncStorageRequest.get(SyncStorageRequest.java:177)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.EnsureCrypto5KeysStage.execute(EnsureCrypto5KeysStage.java:60)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.processMetaGlobal(GlobalSession.java:670)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.FetchMetaGlobalStage.execute(FetchMetaGlobalStage.java:68)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.FetchInfoCollectionsStage$StageInfoCollectionsDelegate.handleSuccess(FetchInfoCollectionsStage.java:20)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.JSONRecordFetcher$JSONFetchHandler.handleRequestSuccess(JSONRecordFetcher.java:56)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.SyncStorageRequest$SyncStorageResourceDelegate.handleHttpResponse(SyncStorageRequest.java:120)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.execute(BaseResource.java:276)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.go(BaseResource.java:311)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.get(BaseResource.java:317)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.SyncStorageRequest.get(SyncStorageRequest.java:177)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.JSONRecordFetcher.fetch(JSONRecordFetcher.java:81)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.FetchInfoCollectionsStage.execute(FetchInfoCollectionsStage.java:38)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.CheckPreconditionsStage.execute(CheckPreconditionsStage.java:11)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.CheckPreconditionsStage.execute(CheckPreconditionsStage.java:11)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.start(GlobalSession.java:325)
W/FxAccounts(10132):    at org.mozilla.gecko.fxa.sync.FxAccountSyncAdapter$1$1.handleSuccess(FxAccountSyncAdapter.java:205)
W/FxAccounts(10132):    at org.mozilla.gecko.tokenserver.TokenServerClient$1.run(TokenServerClient.java:77)
W/FxAccounts(10132):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/FxAccounts(10132):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/FxAccounts(10132):    at java.lang.Thread.run(Thread.java:841)
I/FxAccounts(10132): fennec :: GlobalSession :: Not uploading updated meta/global record since there are no engines requesting upload.
W/FxAccounts(10132): fennec :: FxAccountSyncAdapter :: Sync failed.
W/FxAccounts(10132): java.lang.NullPointerException
W/FxAccounts(10132):    at org.mozilla.gecko.sync.CollectionKeys.differences(CollectionKeys.java:155)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.EnsureCrypto5KeysStage.collectionsToUpdate(EnsureCrypto5KeysStage.java:90)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.EnsureCrypto5KeysStage.handleRequestSuccess(EnsureCrypto5KeysStage.java:152)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.SyncStorageRequest$SyncStorageResourceDelegate.handleHttpResponse(SyncStorageRequest.java:120)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.execute(BaseResource.java:276)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.go(BaseResource.java:311)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.get(BaseResource.java:317)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.SyncStorageRequest.get(SyncStorageRequest.java:177)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.EnsureCrypto5KeysStage.execute(EnsureCrypto5KeysStage.java:60)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.processMetaGlobal(GlobalSession.java:670)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.FetchMetaGlobalStage.execute(FetchMetaGlobalStage.java:68)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.FetchInfoCollectionsStage$StageInfoCollectionsDelegate.handleSuccess(FetchInfoCollectionsStage.java:20)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.JSONRecordFetcher$JSONFetchHandler.handleRequestSuccess(JSONRecordFetcher.java:56)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.SyncStorageRequest$SyncStorageResourceDelegate.handleHttpResponse(SyncStorageRequest.java:120)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.execute(BaseResource.java:276)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.go(BaseResource.java:311)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.BaseResource.get(BaseResource.java:317)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.net.SyncStorageRequest.get(SyncStorageRequest.java:177)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.JSONRecordFetcher.fetch(JSONRecordFetcher.java:81)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.FetchInfoCollectionsStage.execute(FetchInfoCollectionsStage.java:38)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.CheckPreconditionsStage.execute(CheckPreconditionsStage.java:11)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.CheckPreconditionsStage.execute(CheckPreconditionsStage.java:11)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.stage.AbstractSessionManagingSyncStage.execute(AbstractSessionManagingSyncStage.java:41)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.advance(GlobalSession.java:288)
W/FxAccounts(10132):    at org.mozilla.gecko.sync.GlobalSession.start(GlobalSession.java:325)
W/FxAccounts(10132):    at org.mozilla.gecko.fxa.sync.FxAccountSyncAdapter$1$1.handleSuccess(FxAccountSyncAdapter.java:205)
W/FxAccounts(10132):    at org.mozilla.gecko.tokenserver.TokenServerClient$1.run(TokenServerClient.java:77)
W/FxAccounts(10132):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/FxAccounts(10132):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/FxAccounts(10132):    at java.lang.Thread.run(Thread.java:841)
E/FxAccounts(10132): fennec :: FxAccountSyncAdapter :: Syncing done.
D/SyncManager(  704): failed sync operation mysecretemail u0 (org.mozilla.fennec_account), org.mozilla.fennec.db.browser, SERVER, latestRunTime 15710576, reason: IsSyncable, SyncResult: stats [ numIoExceptions: 1 numUpdates: 1]

This was an initial sync after sign-in.

--
Nightly (01/22)
OS: Mac OS X → Android
Hardware: x86 → ARM
Account was created on Android yesterday (Nightly), deleted, then signed in again with today's Nightly.
Blocks: 799726
Hardware: ARM → All
I/FxAccounts(10132): fennec :: AndroidFxAccount :: $$FxA PII$$: email: NIifneeded
I/FxAccounts(10132): fennec :: AndroidFxAccount :: $$FxA PII$$: emailUTF8: 6161726f6e2e747261696e2b6e657773796e633240676d61696c2e636f6d
I/FxAccounts(10132): fennec :: AndroidFxAccount :: $$FxA PII$$: invalid: null
I/FxAccounts(10132): fennec :: AndroidFxAccount :: $$FxA PII$$: kA: 30dc295587a3fd20f96778a629118977521e358cd1686c666df4188bf2318e51
I/FxAccounts(10132): fennec :: AndroidFxAccount :: $$FxA PII$$: kB: 7e0af2655ca681ec583cd61ae2c4d6004b31b4c62590d5e521d1ec6be37fa0ce
I/FxAccounts(10132): fennec :: AndroidFxAccount :: $$FxA PII$$: keyFetchToken: null
I/FxAccounts(10132): fennec :: AndroidFxAccount :: $$FxA PII$$: quickStretchedPW: f9dc9abd651ecbb6eb48246d83e4bf41c9013af3b48e3f255b6afc07f2d1d357
I/FxAccounts(10132): fennec :: AndroidFxAccount :: $$FxA PII$$: serverURI: https://api-accounts-onepw.dev.lcip.org
I/FxAccounts(10132): fennec :: AndroidFxAccount :: $$FxA PII$$: sessionToken: bd7b602522646782de87229d514ef97111a94c6dcf5835c229da990d6a37726e
I/FxAccounts(10132): fennec :: AndroidFxAccount :: $$FxA PII$$: unwrapkB: 1214fe5618e65709c42366cf877dc34bc3352dcced8ca3e730529e046d4c65d6
I/FxAccounts(10132): fennec :: AndroidFxAccount :: $$FxA PII$$: verified: true
Note that this exception comes from decrypting persisted keys. The keys are persisted in SharedPreferences. Presumably we need to be ready to clear those out on account deletion, and in a few other circumstances (i.e., pretty much any time we might think that they're invalid -- storage server URL change, for example). We might already do this, in which case there's a changed assumption somewhere.

Alternatively, we're getting a different kB, or deriving a different KeyBundle from it.
(In reply to Richard Newman [:rnewman] from comment #3)
> Note that this exception comes from decrypting persisted keys. The keys are
> persisted in SharedPreferences. Presumably we need to be ready to clear
> those out on account deletion, and in a few other circumstances (i.e.,
> pretty much any time we might think that they're invalid -- storage server
> URL change, for example). We might already do this, in which case there's a
> changed assumption somewhere.

There are two.  First, we're not killing prefs on new account creation.  Second, we're not firing an appropriate clean up service intent (which also kills prefs).

Good find!
Whiteboard: [qa+]
And in the spirit of layered fixes: the first fix should be to clear the persisted keys if we hit this situation, and only persist them after we successfully decrypt them. The next should be to clear these things in the expected scenarios (deletion, creation, token server change?).
tracking-fennec: --- → ?
tracking-fennec: ? → 29+
AaronMT: reopen if you hit this again. Our money is on this is already fixed.
Status: NEW → RESOLVED
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.