Closed Bug 873391 Opened 11 years ago Closed 11 years ago

[regression] Volume state changes get processed out of order in child processes

Categories

(Firefox OS Graveyard :: General, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(blocking-b2g:leo+, firefox22 wontfix, firefox23 wontfix, firefox24 fixed, b2g18 fixed, b2g18-v1.0.0 wontfix, b2g18-v1.0.1 wontfix)

RESOLVED FIXED
blocking-b2g leo+
Tracking Status
firefox22 --- wontfix
firefox23 --- wontfix
firefox24 --- fixed
b2g18 --- fixed
b2g18-v1.0.0 --- wontfix
b2g18-v1.0.1 --- wontfix

People

(Reporter: dhylands, Assigned: dhylands)

References

Details

(Whiteboard: [fixed-in-birch])

Attachments

(2 files)

As part of testing bug 872800 on b2g18 I discovered that the volume status wasn't always being reported correctly. I haven't noticed this problem on master. I determined the root cause to be that device storage and nsVolumeService both use the NS_VOLUME_STATE_CHANGED message in the child, but device storage may get called before nsVolumeService has updated the volume state, which causes device storage to get bad state information. I marked this as leo+ since it affects bug 872800 which is leo+ The solution, is to have ContentChild::RecvFileSystemUpdate call some new method in nsVolumeService to update the volume state, and have that method Notify the observers, rather than having nsVolumeService itself be an observer. This particular regression was introduced as part of bug 838038.
QA Contact: dhylands
This patch causes the NS_VOLUME_STATE_CHANGED messages delivered to the child process to be processed by the volume service first (so it can update it's cache). Then other observers will get notified.
Comment on attachment 751049 [details] [diff] [review] Process volume change notifications in the volume service (child) first. Review of attachment 751049 [details] [diff] [review]: ----------------------------------------------------------------- ::: dom/devicestorage/nsDeviceStorage.cpp @@ +20,5 @@ > #include "mozilla/LazyIdleThread.h" > > #include "nsAutoPtr.h" > #include "nsDOMEvent.h" > +#include "nsServiceManagerUtils.h"o That's not supposed to be there....
Attachment #751049 - Flags: review?(kyle)
Comment on attachment 751049 [details] [diff] [review] Process volume change notifications in the volume service (child) first. Review of attachment 751049 [details] [diff] [review]: ----------------------------------------------------------------- r=me with nit you already found fixed.
Attachment #751049 - Flags: review?(kyle) → review+
Carrying r+
Attachment #751177 - Flags: review+
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Flags: in-moztrap-
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: