REPRODUCIBILITY (% or how often): always for me
BUILD ID = OS VERSION (Settings > About product): 4.3.0.12
HARDWARE (XA2, X10, X10 II, …): XA2
UI LANGUAGE: DE
REGRESSION: (compared to previous public release: Yes, No, ?):
Ever since version 4. Worked on version 4.
DESCRIPTION:
On my device, I can’t access any pictures in galery from android apps. After trying the obvious things (dir permissions, cache, …), I started to dig deeper. I had a look at the android logs:
lxc-attach -n aliendalvik – /system/bin/logcat
→ Android spawns a new process to display media:
12-13 22:18:37.722 13363 13363 E AndroidRuntime: Process: android.process.media, PID: 13363
→ Then has a problem with the storage location of a file and crashes
12-13 22:18:37.722 13363 13363 E AndroidRuntime: java.lang.RuntimeException: Unable to get provider com.android.providers.downloads.DownloadProvider: java.lang.IllegalStateException: Unknown volume at /storage/128gb/Android/media/org.mozilla.rocket/downloads/others/harbour-storeman-0.2.3-1.sfos3_.4.i486.rpm
12-13 22:18:37.722 13363 13363 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:6988)
12-13 22:18:37.722 13363 13363 E AndroidRuntime: at android.app.ActivityThread.installContentProviders(ActivityThread.java:6528)
12-13 22:18:37.722 13363 13363 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6445)
12-13 22:18:37.722 13363 13363 E AndroidRuntime: at android.app.ActivityThread.access$1300(ActivityThread.java:219)
12-13 22:18:37.722 13363 13363 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)
12-13 22:18:37.722 13363 13363 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107)
12-13 22:18:37.722 13363 13363 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
12-13 22:18:37.722 13363 13363 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7356)
12-13 22:18:37.722 13363 13363 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
12-13 22:18:37.722 13363 13363 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
12-13 22:18:37.722 13363 13363 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
12-13 22:18:37.722 13363 13363 E AndroidRuntime: Caused by: java.lang.IllegalStateException: Unknown volume at /storage/128gb/Android/media/org.mozilla.rocket/downloads/others/harbour-storeman-0.2.3-1.sfos3_.4.i486.rpm
…
12-13 22:18:37.727 164 3937 W ActivityManager: Process android.process.media has crashed too many times: killing!
…
12-13 22:18:37.742 164 814 E ActivityManager: Timeout waiting for provider com.android.providers.media/10008 for provider media providerRunning=false caller=com.whatsapp/10049
12-13 22:18:37.743 12638 12638 E ActivityThread: Failed to find provider info for media
→ And retries it
12-13 22:18:37.754 39 39 D Zygote : Forked child process 13384
12-13 22:18:37.757 39 39 I Zygote : Process 13363 exited due to signal 9 (Killed)
12-13 22:18:37.757 164 201 I ActivityManager: Start proc 13384:android.process.media/u0a8 for restart android.process.media
→ Until it runs sometimes into a timeout or trashhold with to many tries
The problem is not solved by just deleting the i486.rpm file. Even without it in the filesystem, the error is still there. I only can assume that this entry is in some apps database file and the crash gets triggerd by trying to evaluate the storage location.
And another point: The path 128gb inside /storage/128gb/ does not exist. In the time of SFOS 2 or 3, I installed that card and gave it the name 128gb. This is still shown in the settings->storage. But did not exist as a name in the file system. But even if I simlink the name ‘128gb’ to the uuid of the physical available card path, the crash is still there.
PRECONDITIONS:
Have an old db entry to a file, downloaded to sdcard in the past. And the path to that sdcard does not exists any longer. A later path creation does not help here.
STEPS TO REPRODUCE:
- Have a, now non existing, file path to ‘/storage/foo/…’ in some Android apps database
- Start an Android App and try to access the Image Galerie
- The Image-Picker displays no images at all
- Have a look in the android logs
EXPECTED RESULT:
Images in Android Apps get displayed.
The volume type at ‘/sorage/foo’ (foo not existing) gets ignored instead of a crash.
ACTUAL RESULT:
Android tries to respawn the process of parsing a i486.rpm file until it gives up crashing, without showing any pictures.
ADDITIONAL INFORMATION:
logs are shown in the description.