Closed
Bug 871956
Opened 11 years ago
Closed 11 years ago
calling enumerate() in DeviceStorage API causes device to crash/reboot
Categories
(Core :: DOM: Device Interfaces, defect)
Tracking
()
People
(Reporter: zcampbell, Assigned: dhylands)
References
Details
(Keywords: crash, regression, stackwanted, Whiteboard: [fromAutomation][fixed-in-birch])
Crash Data
Attachments
(1 file, 1 obsolete file)
1.27 KB,
patch
|
dhylands
:
review+
|
Details | Diff | Splinter Review |
Since bug 858416 was merged into v1-train calling enumerate on the DeviceStorage object is causing the device to crash and reboot. This is blocking all of our automated tests as they rely on DeviceStorage and enumerate to gather a list of media files on the device. Replicated on: Gecko http://hg.mozilla.org/releases/mozilla-b2g18/rev/606c4fa198c2 Gaia 23cec618ba1ad9f39da1fc5dfa2a4df2b2d5f933 BuildID 20130513230207 Version 18.0 Here is a test case: ------------test case self.marionette.execute_script(''' var mediaTypes = ['pictures']; mediaTypes.forEach(function (aType) { console.log('getting', aType); var storage = navigator.getDeviceStorage(aType); console.log(storage); storage.enumerate(); }); ''')
Updated•11 years ago
|
Blocks: 858416
Keywords: crash,
regression
Updated•11 years ago
|
Component: General → DOM: Device Interfaces
Product: Boot2Gecko → Core
Version: unspecified → Trunk
Comment 1•11 years ago
|
||
We need a stack here. Zac - Can you get a crash report URL from a phone that is causing the crash?
Keywords: stackwanted
Reporter | ||
Comment 2•11 years ago
|
||
It's your lucky day! https://crash-stats.mozilla.com/report/index/06eed765-3eb9-47de-bd42-5ed732130514
Updated•11 years ago
|
Crash Signature: [@ InitCursorEvent::Run ]
Assignee | ||
Comment 4•11 years ago
|
||
Which device are you seeing the crashes on?
Reporter | ||
Comment 5•11 years ago
|
||
Unagi using b2g18/v1-train. I haven't tested any other devices with v1-train today.
Assignee | ||
Comment 6•11 years ago
|
||
Adds a missing if check. I wasn't able to reproduce the crash, so Marionette must be setting up the environment a little differently than non-marionette. It's perfectly legal for mFile->mFile to be NULL when using a composite device (because composite devices don't have a real root directory).
Assignee | ||
Comment 7•11 years ago
|
||
Comment on attachment 749364 [details] [diff] [review] Add an if check around mFile->mFile Review of attachment 749364 [details] [diff] [review]: ----------------------------------------------------------------- r+'d by kanru on IRC
Attachment #749364 -
Flags: review+
Assignee | ||
Comment 8•11 years ago
|
||
https://hg.mozilla.org/projects/birch/rev/1ff1f234ed00
Assignee | ||
Comment 9•11 years ago
|
||
I'm going to change this from leo? to leo+ since this is a regression introduced by bug 858416 (which was leo+) and I really want this to land on b2g18 today, so tomorrows sanity tests won't continue to be tripped up.
blocking-b2g: leo? → leo+
Assignee | ||
Updated•11 years ago
|
Whiteboard: [fromAutomation] → [fromAutomation][fixed-in-birch]
Comment 10•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/1ff1f234ed00 Based on comment 0, it seems that we could actually test this?
Status: NEW → RESOLVED
Closed: 11 years ago
Flags: in-testsuite?
Resolution: --- → FIXED
Target Milestone: --- → mozilla24
Comment 11•11 years ago
|
||
https://hg.mozilla.org/releases/mozilla-b2g18/rev/ad04d81b3eeb
status-b2g18:
--- → fixed
status-b2g18-v1.0.0:
--- → wontfix
status-b2g18-v1.0.1:
--- → wontfix
status-firefox22:
--- → wontfix
status-firefox23:
--- → wontfix
status-firefox24:
--- → fixed
Reporter | ||
Comment 12•11 years ago
|
||
Dave, it might be too late but here is a python script using marionette to run the script I gave in the first comment. You will need an engineering build that has marionette on it (all of the PVT builds do by default).
Assignee | ||
Comment 13•11 years ago
|
||
Hey zac, I'm still interested in reproducing the problem, so what do I need to run? I can undo my change locally and run the python script. I'm trying to understand why the marionette test triggers the problem but why none of the xpcshell tests or the test app trigger the problem.
Reporter | ||
Updated•11 years ago
|
Attachment #749485 -
Attachment is obsolete: true
Reporter | ||
Comment 14•11 years ago
|
||
I had to obsolete that python script as it didn't seem to replicate outside the context of our gaiatest/gaia-ui-tests. I have a more detailed replication script but you have to do a bit of checking out and what not to run it. Best step now is probably to to CC Jgriffin in here as he knows the guts of Marionette and he may be able to shed some light on the execution difference. If he can't then we can fall back to the other replication script. Also setting Verified-fixed because our automation suite is back up and running. Thanks!
Status: RESOLVED → VERIFIED
Flags: needinfo?(jgriffin)
Comment 15•11 years ago
|
||
It's hard to say, but one issue may be that the Python script is executing this in the top-level process, and in gaia, this API will likely be exercised in the context of child processes. You might need to launch an app, switch to its frame, and then try enumerating the storage object.
Flags: needinfo?(jgriffin)
Updated•11 years ago
|
Flags: in-moztrap-
You need to log in
before you can comment on or make changes to this bug.
Description
•