crash after mount weirdness
I was troubleshooting some issues where ./stop-debian.sh does not successfully unmount and lives things in a kind of limbo state where /data/debian is mounted, but no other lildebi mount is. In this case, /data/debian and /data/debian/mnt/sdcard were the only two things still mounted. When I manually unmounted them, Lil' Debi showed me the "Install" button as if there was no image file any more. When I clicked on "Install", I got a crash, the stacktrace is at the bottom of this post.
It seems like something make the sdcard mounting process die, because trying to see it in adb shell did:
shell@android:/ # ls -l /storage/sdcard0/
/storage/sdcard0/: Transport endpoint is not connected
Here's the stacktrace:
AndroidRuntime E FATAL EXCEPTION: main
E java.lang.RuntimeException: Unable to resume activity {info.guardianproject.lildebi/info.guardianproject.lildebi.InstallActivity}: java.lang.IllegalArgumentException: Invalid path: /storage/emulated/legacy
E at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2870)
E at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2899)
E at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)
E at android.app.ActivityThread.access$600(ActivityThread.java:153)
E at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
E at android.os.Handler.dispatchMessage(Handler.java:99)
E at android.os.Looper.loop(Looper.java:137)
E at android.app.ActivityThread.main(ActivityThread.java:5227)
E at java.lang.reflect.Method.invokeNative(Native Method)
E at java.lang.reflect.Method.invoke(Method.java:511)
E at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
E at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
E at dalvik.system.NativeStart.main(Native Method)
E Caused by: java.lang.IllegalArgumentException: Invalid path: /storage/emulated/legacy
E at android.os.StatFs.doStat(StatFs.java:46)
E at android.os.StatFs.<init>(StatFs.java:39)
E at info.guardianproject.lildebi.NativeHelper.getInstallPathFreeMegaBytes(NativeHelper.java:296)
E at info.guardianproject.lildebi.InstallActivity.setImageSizeInMB(InstallActivity.java:192)
E at info.guardianproject.lildebi.InstallActivity.onResume(InstallActivity.java:172)
E at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1185)
E at android.app.Activity.performResume(Activity.java:5182)
E at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2860)
E ... 12 more
E Caused by: libcore.io.ErrnoException: statfs failed: ENOTCONN (Transport endpoint is not connected)
E at libcore.io.Posix.statfs(Native Method)
E at libcore.io.ForwardingOs.statfs(ForwardingOs.java:126)
E at android.os.StatFs.doStat(StatFs.java:44)
E ... 19 more
It looks like the "killall" logic is killing something it should not. I just got this again. @SDkie any ideas?
@eighthave : can you help me reproduce it on my device?
I had it happen a couple of times to me, but I couldn't find a way to reproduce it. I'll keep it in mind.
Hmm, I have a hunch here. It seems that if you are logged into the device using adb shell, the storage mapper thingy will also claim the Lil' Debi loopback mount.