Closed Bug 871383 Opened 11 years ago Closed 11 years ago

DeviceStorage API shouldn't kill the process while failed unmounting sdcard for USB mass storage.

Categories

(Firefox OS Graveyard :: General, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 876782

People

(Reporter: johnhu, Unassigned)

Details

While debugging Bug #866848, I found that there is a Vold process who kills video app process while a video file is locked by video app and USB cable is plugging in. The logcat of that issue is:

E/ProcessKiller(  106): Process /system/b2g/plugin-container (6930) has open file /mnt/secure/staging/DCIM/100MZLLA/VID_0008.3gp
D/memalloc( 6806): /dev/pmem: Freeing buffer base:0x4a4e0000 size:614400 offset:3694592 fd:173
D/memalloc( 6806): /dev/pmem: Freeing buffer base:0x4a44a000 size:614400 offset:3080192 fd:170
W/Vold    (  106): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 8, action 0)
E/ProcessKiller(  106): Process /system/b2g/plugin-container (6930) has open file /mnt/secure/staging/DCIM/100MZLLA/VID_0008.3gp
W/Vold    (  106): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 7, action 0)
E/ProcessKiller(  106): Process /system/b2g/plugin-container (6930) has open file /mnt/secure/staging/DCIM/100MZLLA/VID_0008.3gp
W/Vold    (  106): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 6, action 0)
E/ProcessKiller(  106): Process /system/b2g/plugin-container (6930) has open file /mnt/secure/staging/DCIM/100MZLLA/VID_0008.3gp
W/Vold    (  106): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 5, action 0)
E/ProcessKiller(  106): Process /system/b2g/plugin-container (6930) has open file /mnt/secure/staging/DCIM/100MZLLA/VID_0008.3gp
W/Vold    (  106): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 4, action 0)
E/ProcessKiller(  106): Process /system/b2g/plugin-container (6930) has open file /mnt/secure/staging/DCIM/100MZLLA/VID_0008.3gp
W/Vold    (  106): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 3, action 0)
E/ProcessKiller(  106): Process /system/b2g/plugin-container (6930) has open file /mnt/secure/staging/DCIM/100MZLLA/VID_0008.3gp
W/Vold    (  106): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 2, action 1)
E/ProcessKiller(  106): Process /system/b2g/plugin-container (6930) has open file /mnt/secure/staging/DCIM/100MZLLA/VID_0008.3gp
W/ProcessKiller(  106): Sending SIGHUP to process 6930


This issue may also happen to Browser app. If a user browses a unknown website using content from SD card and user plugs USB cable in at the same time, that website will make browser app be killed. This will be a strange usability.
related bugs: #869259, #807020
In volume.cpp we used the code as below to fire unmount command into vold. And the force argument will cause vold to kill process which held fd on mount_points.

  StartCommand(new VolumeActionCommand(this, "unmount", "force", aCallback));

According to vold will give 1 second time after sending unmouting state for Gecko to release fd, and 1 second time on each try (8 times before sending any signal) so

  1. Gaia apps need to release file handle after receiving device storage is not avaliable.

  2. Gecko may do something to force releasing file handle.

  3. To consider use non-force unmouting command then handle the error case.
This seems to be the same problem being seen in bug 870327
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.