On Wed, Oct 18, 2017 at 12:29 PM, Thom Chiovoloni <tchiovol...@mozilla.com> wrote: > Hello! > > The Sync team currently has some pieces of code in desktop Firefox that > would benefit from (more) rapid iteration. Specifically, the code pertaining > to bookmark validation and repair. > > # Overview > > Currently, a large portion of Sync users have corrupted bookmarks in their > server-side bookmark tree. There are a number of ways this could happen, > such as non-atomic syncs (the server only recently landed support for atomic > uploads across multiple requests), bugs in one or more clients, and a number > of other ways. > > For a long time this prevented iOS devices from syncing bookmarks at all, > and while iOS has some ad-hoc fixes to enable it now, corruption still can > lead to data loss, and the fact that the tree is in a corrupt state still > limits our ability to avoid further corruption. > > For reasons like these, Sync grew validation and repair code to measure and > fix the issue (the validation code came much before the repair code, and the > repair code was originally written due to iOS being blocked). The repair > code focused on a few specific issues, with the hope that the others would > get fixed automatically (there are a number of issues that imply other > issues will be present). In practice it was insufficient. > > This code currently runs on Beta and Nightly. We've been reluctant to move > it to release due to it's relatively high cost (it's fairly slow, as it > necessarily requires fetching the full server bookmarks tree). We already > run for a small subset of users, and only in cases where we know the record > count is relatively low. (Specifically, we consider running validation at > most once a day, and when we consider it there's only a 10% chance we'll > actually do it, and even then it will only happen for users with < 1000 > bookmarks). > > # Timeline > > The code is already written and lives in Sync, but needs to be factored out. > We also will need to develop mechanisms for handling it's presence or lack > thereof, etc. We don't expect this to be terribly time consuming, a month or > so seems safe (but I've been wrong before). > > I don't think we plan on most of the iteration on repair/validation to be > done until Q1 2017, so riding the release train for 58 or 59 would likely be > fine (my understanding is that it's somewhat common for system addons to > ride the release train, after which they can be iterated upon more quickly > -- I can't find documentation confirming or denying this, however).
The rest of this all seems reasonable to me, to address this bit specifically: Yes this is a common pattern for things we ship as built-in features - we have docs at http://firefox-source-docs.mozilla.org/toolkit/mozapps/extensions/addon-manager/SystemAddons.html and also on the wiki at https://wiki.mozilla.org/Firefox/Go_Faster but I am not sure if it covers this explicitly. The in-tree docs (the firefox-source-docs link) do cover the technical differences between built-in and updates, there's a lot of flexibility on how you want to ship. > > # References > > The bug tracking this work, bug 1407067, > https://bugzilla.mozilla.org/show_bug.cgi?id=1407067 > > Most of the sync code in question: > - > http://searchfox.org/mozilla-central/source/services/sync/modules/bookmark_repair.js > - > http://searchfox.org/mozilla-central/source/services/sync/modules/bookmark_validator.js > - > http://searchfox.org/mozilla-central/source/services/sync/modules/doctor.js > > Well, I hope that all makes sense. > > - Thom Chiovoloni [:tcsc] > > _______________________________________________ > Gofaster mailing list > gofas...@mozilla.org > https://mail.mozilla.org/listinfo/gofaster > _______________________________________________ Sync-dev mailing list Sync-dev@mozilla.org https://mail.mozilla.org/listinfo/sync-dev