Closed Bug 760895 Opened 12 years ago Closed 12 years ago

Verify reconciliation algorithm for AitC Storage

Categories

(Web Apps Graveyard :: AppsInTheCloud, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: anant, Assigned: gps)

Details

(Whiteboard: [blocking-aitc+][qa-])

Attachments

(1 file, 2 obsolete files)

There was concern in bug 755375 that the reconciliation algorithm for the storage layer (documented line 251 onwards in storage.js) was a little too aggressive and/or dangerous. A thorough re-review is required to ensure correctness. The module has tests, but the method in general may have edge cases that are either untestable or we don't test correctly yet.
One problem in the current implementation that's known is that if I have installed apps on a build with mozapps API support without AITC support, but update to a build with AITC support and logged into myapps, my local apps will all disappear.
Whiteboard: [blocking-aitc]
Whiteboard: [blocking-aitc] → [blocking-aitc+]
Attached file Review Reconciliation Code (obsolete) (deleted) —
Attachment #631142 - Flags: review?(mconnor)
Attachment #631142 - Flags: review?(gps)
OS: Linux → All
Hardware: x86 → All
Attached patch Rewrite reconcile logic, v1 (obsolete) (deleted) — Splinter Review
I started with the review and found a number of issues. It was going to take a while to document everything and the new code would be pretty much rewritten anyway, so I just rewrote it. mconnor gets code review. anant: please ensure I didn't change behavior at all with the patch. It might help to look at just the new code instead of trying to parse the diff. With this patch, I think I fixed a few invalid test cases. I also added a new test case. I also addressed issues where the callback could be invoked multiple times.
Assignee: nobody → gps
Attachment #631142 - Attachment is obsolete: true
Status: NEW → ASSIGNED
Attachment #631142 - Flags: review?(mconnor)
Attachment #631142 - Flags: review?(gps)
Attachment #638521 - Flags: review?(mconnor)
Attachment #638521 - Flags: feedback?(anant)
Attached patch Rewrite reconcile logic, v2 (deleted) — Splinter Review
Forgot to qref
Attachment #638521 - Attachment is obsolete: true
Attachment #638521 - Flags: review?(mconnor)
Attachment #638521 - Flags: feedback?(anant)
Attachment #638536 - Flags: review?(mconnor)
Attachment #638536 - Flags: feedback?(anant)
Comment on attachment 638536 [details] [diff] [review] Rewrite reconcile logic, v2 The general algorithm looks good to me.
Attachment #638536 - Flags: feedback?(anant) → feedback+
Comment on attachment 638536 [details] [diff] [review] Rewrite reconcile logic, v2 Algorithm looks good. There are some concerns that are more long term: * app.origin may at some point not be guaranteed to be unique. * this is largely written with Set in mind, but had to be modified, so that's a weird artifact * the split of the function is sort of arbitrary, but isn't terrible since this isn't called multiple times
Attachment #638536 - Flags: review?(mconnor) → review+
Whiteboard: [blocking-aitc+] → [blocking-aitc+][fixed in services]
Is there anything I can do to verify this from an end-user perspective?
Whiteboard: [blocking-aitc+][fixed in services] → [blocking-aitc+], [fixed in services], [qa?]
(In reply to Jason Smith [:jsmith] from comment #8) > Is there anything I can do to verify this from an end-user perspective? Nope.
Whiteboard: [blocking-aitc+], [fixed in services], [qa?] → [blocking-aitc+], [fixed in services], [qa-]
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Whiteboard: [blocking-aitc+], [fixed in services], [qa-] → [blocking-aitc+][qa-]
Product: Web Apps → Web Apps Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: