Closed Bug 1106324 Opened 10 years ago Closed 10 years ago

add missing call to removeLock in SettingsRequestManager.finalizeSets

Categories

(Core :: DOM: Core & HTML, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla37
blocking-b2g 2.1+
Tracking Status
firefox35 --- wontfix
firefox36 --- wontfix
firefox37 --- fixed
b2g-v2.1 --- fixed
b2g-v2.2 --- fixed

People

(Reporter: dbaron, Assigned: gerard-majax)

References

Details

Attachments

(2 files)

      No description provided.
While I was debugging bug 1105511, khuey noticed that one case was
missing a removeLock call.  We should add it; it seems like if we ever
hit this error case, the settings lock queue would get stuck.  It's not
clear whether this is actually the cause of bug 1105511, so I'm putting
it in a separate bug.
Attachment #8530569 - Flags: review?(lissyx+mozillians)
That would make sense, I can't even explain why I have not been able to see it before, the error sequencing in finalizeSets() is obviously always doing this, except for this case. I'm wondering if maybe we should not do this removeLock() call in the promise handler rather than at this level, because I see a lot of calls.

I'll use the plane to PDX to investigate this :)
With a quick hack I can confirm the blockage ... and the fix proposed seems to be working as expected.
Attached file Exposing the issue
With this change, we will for the issue for some lock.
Expected behavior is:
 - without the fix, the queue will be blocked for ever
 - with the fix, requests between #400 and #420 will get broken, but further will work

Tested on a Mulet, this gets you to homescreen, and gives time to unlock. Then we can see that Settings application is broken when you try to toggle some. Until you gover the level of request #420.
Assignee: dbaron → lissyx+mozillians
[Blocking Requested - why for this release]: This is affecting v2.1 for sure, since it's in the set of patches that got uplifted (bug 900551).
blocking-b2g: --- → 2.1?
Kyle, just FYI, since it's due to bug 900551.
Blocks: 900551
Flags: needinfo?(kyle)
Got it, thanks. Fix lgtm.
Flags: needinfo?(kyle)
I'll need some help on the way we could test this: we have xpchsell unit test for this components, but I'd need to fake the settings locking code to make getObjectStore() fail.
Comment on attachment 8530569 [details] [diff] [review]
Call removeLock in case where the call was missing

Review of attachment 8530569 [details] [diff] [review]:
-----------------------------------------------------------------

Taking review on this and r+'ing. Don't think it'll fix bug 1105511 (since this won't throw an exception) but it's good to have anyways.
Attachment #8530569 - Flags: review?(lissyx+mozillians) → review+
Keywords: checkin-needed
Hi, can you provide a try run for this change thanks!
https://hg.mozilla.org/mozilla-central/rev/d920332c6ce6
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla37
Comment on attachment 8530569 [details] [diff] [review]
Call removeLock in case where the call was missing

NOTE: Please see https://wiki.mozilla.org/Release_Management/B2G_Landing to better understand the B2G approval process and landings.

[Approval Request Comment]
Bug caused by (feature/regressing bug #): Settings OOP
User impact if declined: major, settings api completely blocked once triggered
Testing completed: exposed one case and tested the fix on device
Risk to taking this patch (and alternatives if risky): low
String or UUID changes made by this patch: none
Attachment #8530569 - Flags: approval-mozilla-b2g34?
blocking-b2g: 2.1? → 2.1+
Attachment #8530569 - Flags: approval-mozilla-b2g34? → approval-mozilla-b2g34+
Blocks: 1110872
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: