Closed Bug 709319 Opened 13 years ago Closed 12 years ago

Handle changed syncID by resetting and doing a full sync

Categories

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

All
Android
defect

Tracking

(Not tracked)

VERIFIED FIXED
mozilla15

People

(Reporter: ally, Assigned: nalexander)

References

()

Details

      No description provided.
Assignee: nobody → rnewman
Depends on: 709318
OS: Mac OS X → Android
Hardware: x86 → All
tracking-fennec: --- → ?
tracking-fennec: ? → +
Depends on: 730636
Blocks: 745431
tracking-fennec: + → ---
blocking-fennec1.0: --- → +
What exactly is this bug for?  Can we get a detailed description?  Why do we need it?  Really strange seeing a blocker with no content.
This allows sync to handle when the user resets their Sync account key. The main way to currently handle this case for the user is to uninstall all versions of Firefox on the phone and thus uninstalling the Sync client. Then reinstall Firefox and re-setup Sync. With this bug fixed the reset would happen transparently.

If this bug is not fixed when a user resets their key no more data will be synced to the mobile client.
The scenario kbrosnan pointed out is not currently a tested or supported scenario on Android, so it's not 100% clear what will happen. Most likely the client will continue syncing incrementally, probably using the correct key, rather than doing a full sync.

Hence the bug summary: "Handle…". :)
Whiteboard: [not started]
    - to test that changing remote syncID correctly wipes client:
      - pair device to existing sync account
      - sync account, and verify that that no log entry like the
        following appear:
I GlobalSession(10041)        Resetting all stages.
W GlobalSession(10041)        Remote syncID different from local syncID: resetting client and assuming remote syncID.
      - freshStart on desktop by using the first part of
        https://wiki.mozilla.org/Services/Sync/Snippets#Generate_new_keys
      - sync desktop
      - sync device and verify that log entries like the following appear:
I FetchMetaGlobalStage(12647) Fetching fresh meta/global for this session.
D MetaGlobal(12647)           Setting meta/global record from record payload {"storageVersion":5,"engines":{"bookmarks":{"syncID":"yjqFwE7zV5y-","version":2},"prefs":{"syncID":"iTdV77JIaET-","version":2},"passwords":{"syncID":"PRgJ7GowwHWm","version":1},"addons":{"syncID":"X0a0RNAwhTnZ","version":1},"tabs":{"syncID":"X58XZAOXmfpW","version":1},"clients":{"syncID":"IANs3eNRxJy5","version":1}},"syncID":"zeDgDNK16UwE"}
W GlobalSession(12647)        Remote syncID different from local syncID: resetting client and assuming remote syncID.
I GlobalSession(12647)        Resetting all stages.
Whiteboard: [not started] → [needs review :rnewman]
Assignee: rnewman → nalexander
(In reply to Nick Alexander :nalexander from comment #4)
>     - to test that changing remote syncID correctly wipes client:

Be careful of terminology. Changing remote syncID *resets* the client, not wipes it.
Status: NEW → ASSIGNED
Updated test instructions:

*** [[bug:709319]]
    - pair device to active desktop account
    - sync device
    - wipe account using AP or JS
    - sync desktop to re-initialize server and set a new syncID
    - sync device and verify logs recognizing new syncID like
W GlobalSession(4068)         Remote syncID different from local syncID: resetting client and assuming remote syncID.
I GlobalSession(4068)         Resetting all stages.
I GlobalSession(4068)         Resetting org.mozilla.gecko.sync.stage.AndroidBrowserHistoryServerSyncStage@410d43f0
...
I GlobalSession(4068)         Running next stage syncTabs (org.mozilla.gecko.sync.stage.FennecTabsServerSyncStage@410d3860)...
W ServerSyncStage(4068)       Remote engine syncID different from local engine syncID: resetting client engine and assuming remote engine syncID.
I ServerSyncStage(4068)       Setting syncID for org.mozilla.gecko.sync.stage.FennecTabsServerSyncStage@410d3860 to '36XwohGHfS80'.
...
I GlobalSession(4068)         Running next stage syncPasswords (org.mozilla.gecko.sync.stage.PasswordsServerSyncStage@410d3b68)...
W ServerSyncStage(4068)       Remote engine syncID different from local engine syncID: resetting client engine and assuming remote engine syncID.
I ServerSyncStage(4068)       Setting syncID for org.mozilla.gecko.sync.stage.PasswordsServerSyncStage@410d3b68 to 'HhM6CUcLGH8G'.
Happy that this has been covered by other bugs.
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Whiteboard: [needs review :rnewman]
Target Milestone: --- → mozilla15
Optimistically clearing as a blocker because this is covered by other bugs.
blocking-fennec1.0: + → ---
verified per bug 730636 testing
Status: RESOLVED → VERIFIED
Product: Mozilla Services → Android Background Services
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.