Closed
Bug 1140597
Opened 10 years ago
Closed 10 years ago
[DeviceStorage] GetVolumeByName('sdcard') failed
Categories
(Core :: DOM: Device Interfaces, defect, P1)
Tracking
()
RESOLVED
FIXED
mozilla40
Tracking | Status | |
---|---|---|
firefox40 | --- | fixed |
People
(Reporter: justindarc, Assigned: dhylands)
Details
(Whiteboard: [spark])
Attachments
(1 file)
10.79 KB,
patch
|
alchen
:
review+
|
Details | Diff | Splinter Review |
Unable to import apps/addons using navigator.mozApps.mgmt.import():
// Retrieve the new tempfile.
var getRequest = sdcard.get(APP_OR_ADDON_FILENAME);
getRequest.onsuccess = () => {
var addonFile = getRequest.result;
// Import the app/addon using the tempfile.
navigator.mozApps.mgmt.import(addonFile)
.then((addon) => {
resolve(addon);
})
.catch((error) => {
reject(error);
});
};
The above code results in the following output in the logcat:
I/Gecko ( 1590): ##### DeviceStorage: GetVolumeByName('sdcard') failed
I/Gecko ( 1590): ##### DeviceStorage: GetVolumeByName('sdcard') failed
I/Gecko ( 1590): ##### DeviceStorage: GetVolumeByName('sdcard') failed
Reporter | ||
Comment 1•10 years ago
|
||
Setting NI? for Dave since he knows DeviceStorage.
Flags: needinfo?(dhylands)
OS: Mac OS X → Gonk (Firefox OS)
Hardware: x86 → ARM
Comment 2•10 years ago
|
||
This is busted on both Flame and Aries, at the very least.
Updated•10 years ago
|
Updated•10 years ago
|
Assignee: nobody → dhylands
Assignee | ||
Comment 3•10 years ago
|
||
My preliminary investigation seems to indicate that the ##### DeviceStorage: GetVolumeByName('sdcard') failed messages are coming from the preallocated process.
Could you verify that this is the case for you? (i.e. the 1590 in the error message corresponds to the preallocated process).
What's happening is that when device storage successfully adds or removes a file, it winds up sending out a file-watcher-update notification.
The ##### DeviceStorage: GetVolumeByName('sdcard') failed error messages that I saw were happening when the preallocated process receives the file-watcher-update.
So I need to figure out a way to get the preallocated process to ignore these messages, but I'm pretty sure that this is not causing any problems other than chewing some CPU cycles.
Flags: needinfo?(dhylands)
Reporter | ||
Comment 4•10 years ago
|
||
(In reply to Dave Hylands [:dhylands] from comment #3)
> My preliminary investigation seems to indicate that the ##### DeviceStorage:
> GetVolumeByName('sdcard') failed messages are coming from the preallocated
> process.
>
> Could you verify that this is the case for you? (i.e. the 1590 in the error
> message corresponds to the preallocated process).
>
> What's happening is that when device storage successfully adds or removes a
> file, it winds up sending out a file-watcher-update notification.
>
> The ##### DeviceStorage: GetVolumeByName('sdcard') failed error messages
> that I saw were happening when the preallocated process receives the
> file-watcher-update.
>
> So I need to figure out a way to get the preallocated process to ignore
> these messages, but I'm pretty sure that this is not causing any problems
> other than chewing some CPU cycles.
Confirmed. Getting the following errors logged in logcat:
I/Gecko (17902): ##### DeviceStorage: GetVolumeByName('sdcard') failed
I/Gecko (17902): ##### DeviceStorage: GetVolumeByName('sdcard') failed
I/Gecko (17902): ##### DeviceStorage: GetVolumeByName('sdcard') failed
Then, b2g-ps shows the following:
APPLICATION SEC USER PID PPID VSIZE RSS WCHAN PC NAME
b2g 0 root 293 1 260440 87776 ffffffff 00000000 S /system/b2g/b2g
(Nuwa) 0 root 552 293 66952 22940 ffffffff 00000000 S /system/b2g/b2g
Homescreen 2 u0_a1117 1117 552 89768 30076 ffffffff 00000000 S /system/b2g/b2g
Built-in Keyboa 2 u0_a1292 1292 293 90196 31936 ffffffff 00000000 S /system/b2g/plugin-container
Smart Collectio 2 u0_a1462 1462 552 75964 28200 ffffffff 00000000 S /system/b2g/b2g
FM Radio 2 u0_a2020 2020 552 97168 30108 ffffffff 00000000 S /system/b2g/b2g
(Preallocated a 2 u0_a17902 17902 552 71120 18376 ffffffff 00000000 S /system/b2g/b2g
Assignee | ||
Comment 5•10 years ago
|
||
Prevents a process which doesn't use device storage from trying to process device storage file update events.
Attachment #8574979 -
Flags: review?(alchen)
Comment 6•10 years ago
|
||
Comment on attachment 8574979 [details] [diff] [review]
Don't try and process DS notifications if the process isn't using DS.
Review of attachment 8574979 [details] [diff] [review]:
-----------------------------------------------------------------
Hi Dave,
I checked the patch.
There is no concern for this patch.
In my understanding, the error log should be happened when the process receive DS notification.
So process which isn't using DS will hit this problem.
What is the relationship between this problem and the symptom of this bug (Unable to import apps/addons using navigator.mozApps.mgmt.import())?
::: dom/ipc/ContentChild.cpp
@@ +2221,2 @@
> nsRefPtr<DeviceStorageFile> dsf = new DeviceStorageFile(aStorageType, aStorageName, aPath);
>
> I/Gecko ( 1590): ##### DeviceStorage: GetVolumeByName('sdcard') failed
Is the error log happened on this line?
Assignee | ||
Comment 7•10 years ago
|
||
(In reply to Alphan Chen [:Alphan] from comment #6)
> Comment on attachment 8574979 [details] [diff] [review]
> Don't try and process DS notifications if the process isn't using DS.
>
> Review of attachment 8574979 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> Hi Dave,
> I checked the patch.
> There is no concern for this patch.
>
> In my understanding, the error log should be happened when the process
> receive DS notification.
> So process which isn't using DS will hit this problem.
> What is the relationship between this problem and the symptom of this bug
> (Unable to import apps/addons using navigator.mozApps.mgmt.import())?
I don't think that this bug is related. I think that importing addons uses device storage and caused the "##### DeviceStorage: GetVolumeByName('sdcard')" messages.
So this patch addresses the "##### DeviceStorage: GetVolumeByName('sdcard')" messages which were showing up and shouldn't have.
> ::: dom/ipc/ContentChild.cpp
> @@ +2221,2 @@
> > nsRefPtr<DeviceStorageFile> dsf = new DeviceStorageFile(aStorageType, aStorageName, aPath);
> >
>
> > I/Gecko ( 1590): ##### DeviceStorage: GetVolumeByName('sdcard') failed
> Is the error log happened on this line?
Yeah - In this particular scenario, its the preallocated app which displaying the error messages. And its happening because the preallocated app doesn't yet know what the list of volumes is. So any attempt to instantiate a DeviceStorageFile object will fail.
Once the preallocated app is converted into a real app, it will be given a list of volumes. The particular notification means that some app updated a file on device storage and is telling the other apps about it.
Until an app uses device storage, there isn't any need to process these events.
Comment 8•10 years ago
|
||
Comment on attachment 8574979 [details] [diff] [review]
Don't try and process DS notifications if the process isn't using DS.
Review of attachment 8574979 [details] [diff] [review]:
-----------------------------------------------------------------
It looks good for me.
Attachment #8574979 -
Flags: review?(alchen) → review+
Assignee | ||
Comment 9•10 years ago
|
||
Assignee | ||
Comment 10•10 years ago
|
||
Updated•10 years ago
|
Whiteboard: [lightsaber] → [ignite]
Assignee | ||
Comment 12•10 years ago
|
||
Original patch was too aggressive.
Try run with updated patch:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=bd7abeb3d389
Comment 13•10 years ago
|
||
Status: NEW → RESOLVED
Closed: 10 years ago
status-firefox40:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla40
Updated•10 years ago
|
Whiteboard: [ignite] → [spark]
You need to log in
before you can comment on or make changes to this bug.
Description
•