guardianproject / lildebi

UNMAINTAINED please adopt! we can no longer maintain this
https://guardianproject.info/code
GNU General Public License v3.0
229 stars 55 forks source link

crash after mount weirdness #134

Open eighthave opened 10 years ago

eighthave commented 10 years ago

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
eighthave commented 10 years ago

It looks like the "killall" logic is killing something it should not. I just got this again. @SDkie any ideas?

SDkie commented 10 years ago

@eighthave : can you help me reproduce it on my device?

eighthave commented 10 years ago

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.

eighthave commented 10 years ago

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.