MirakelX / mirakel-android

Easy task management for professionals
http://mirakel.azapps.de/
384 stars 117 forks source link

Crashes when syncing with taskwarrior server #127

Closed danfoster closed 10 years ago

danfoster commented 10 years ago

When syncing with my existing taskwarrior server and user, Mirakel crashes. If I create a new user with only one task entry, Mirakel syncs successfully.

I suspect I have a task (either past or current) that is causes this crash. Is there a log file on my android device that might help me track this down?

itadventurer commented 10 years ago

Thank you for your bug report. That sounds crazy. You could try to debug it with logcat. Logcat is the logging service of Android. If Mirakel has internet access it sends us bug reports if it crashes and you tap on ok. I will look soon if there was a message.

danfoster commented 10 years ago

I've sent a few bug reports via the app. One should be tagged with this issue ID to help you find it easily.

The following is the snippet from logcat between starting a sync and it crashing:

I/TLSClient(27389): init
I/TLSClient(27389): connect 
D/TLSClient(27389): connected to shell.zem.org.uk:6544
D/TLSClient(27389): connected to shell.zem.org.uk:6544
I/TLSClient(27389): send data
I/TLSClient(27389): reveive data from /172.20.45.239:56763
D/dalvikvm(27389): GC_CONCURRENT freed 334K, 4% free 9833K/10204K, paused 3ms+3ms, total 28ms
D/audio_hw_primary(  841): out_standby: enter: usecase(1: low-latency-playback)
D/audio_hw_primary(  841): stop_output_stream: enter: usecase(1: low-latency-playback)
D/audio_hw_primary(  841): disable_audio_route: reset mixer path: low-latency-playback
D/audio_hw_primary(  841): disable_snd_device: snd_device(2: speaker)
D/audio_hw_primary(  841): stop_output_stream: exit: status(0)
D/audio_hw_primary(  841): out_standby: exit
D/TaskWarroirSync(27389): Success 
F/TaskWarroirSync(27389): List vanish
W/dalvikvm(27389): threadid=16: thread exiting with uncaught exception (group=0x41501700)
E/ACRA    (27389): ACRA caught a RuntimeException exception for de.azapps.mirakelandroid. Building report. 
D/ACRA    (27389): Using default Report Fields
D/dalvikvm(27389): GC_CONCURRENT freed 352K, 4% free 9869K/10276K, paused 2ms+3ms, total 25ms
I/ACRA    (27389): READ_LOGS granted! ACRA can include LogCat and DropBox data.
D/ACRA    (27389): Retrieving logcat output...
D/dalvikvm(27389): GC_CONCURRENT freed 474K, 5% free 9895K/10412K, paused 5ms+2ms, total 42ms
D/dalvikvm(27389): WAIT_FOR_CONCURRENT_GC blocked 17ms
D/ACRA    (27389): Writing crash report file 1383845051000.stacktrace.
D/dalvikvm(27389): GC_FOR_ALLOC freed 155K, 6% free 9874K/10428K, paused 16ms, total 17ms
D/ACRA    (27389): Waiting for Toast + worker...
D/ACRA    (27389): About to create DIALOG from #handleException
D/ACRA    (27389): Creating Dialog for 1383845051000.stacktrace
I/ActivityManager( 1168): START u0 {flg=0x10000000 cmp=de.azapps.mirakelandroid/org.acra.CrashReportDialog (has extras)} from pid 27389
D/dalvikvm( 1168): GC_FOR_ALLOC freed 1715K, 24% free 54585K/71056K, paused 158ms, total 158ms
D/ACRA    (27389): Wait for Toast + worker ended. Kill Application ? true
E/ACRA    (27389): de.azapps.mirakelandroid fatal error : Can't create handler inside thread that has not called Looper.prepare() 
E/ACRA    (27389): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
E/ACRA    (27389):   at android.os.Handler.<init>(Handler.java:197)
E/ACRA    (27389):   at android.os.Handler.<init>(Handler.java:111)
E/ACRA    (27389):   at android.widget.Toast$TN.<init>(Toast.java:324)
E/ACRA    (27389):   at android.widget.Toast.<init>(Toast.java:91)
E/ACRA    (27389):   at android.widget.Toast.makeText(Toast.java:238)
E/ACRA    (27389):   at android.widget.Toast.makeText(Toast.java:265)
E/ACRA    (27389):   at de.azapps.mirakel.sync.taskwarrior.TaskWarriorSync.doSync(TaskWarriorSync.java:245)
E/ACRA    (27389):   at de.azapps.mirakel.sync.taskwarrior.TaskWarriorSync.sync(TaskWarriorSync.java:157)
E/ACRA    (27389):   at de.azapps.mirakel.sync.SyncAdapter.onPerformSync(SyncAdapter.java:136)
E/ACRA    (27389):   at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:254)
I/ACRA    (27389): Finishing the last Activity prior to killing the Process
D/MainWidgetProvider(27389): android.appwidget.action.APPWIDGET_UPDATE
D/ACRA    (27389): Opening CrashReportDialog for 1383845051000.stacktrace
I/ACRA    (27389): Finished class de.azapps.mirakel.main_activity.MainActivity
I/Process (27389): Sending signal. PID: 27389 SIG: 9
I/ActivityManager( 1168): Process de.azapps.mirakelandroid (pid 27389) has died.
I/WindowState( 1168): WIN DEATH: Window{42106438 u0 Toast EXITING}
W/ActivityManager( 1168): Scheduling restart of crashed service de.azapps.mirakelandroid/de.azapps.mirakel.services.NotificationService in 20000ms
I/WindowState( 1168): WIN DEATH: Window{425e7f78 u0 de.azapps.mirakelandroid/de.azapps.mirakel.main_activity.MainActivity}

This doesn't make sense to me without looking at the code, which I haven't had chance to do yet.

itadventurer commented 10 years ago

E/ACRA (27389): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() E/ACRA (27389): at android.os.Handler.(Handler.java:197) E/ACRA (27389): at android.os.Handler.(Handler.java:111) E/ACRA (27389): at android.widget.Toast$TN.(Toast.java:324) E/ACRA (27389): at android.widget.Toast.(Toast.java:91) E/ACRA (27389): at android.widget.Toast.makeText(Toast.java:238) E/ACRA (27389): at android.widget.Toast.makeText(Toast.java:265) E/ACRA (27389): at de.azapps.mirakel.sync.taskwarrior.TaskWarriorSync.doSync(TaskWarriorSync.java:245) E/ACRA (27389): at de.azapps.mirakel.sync.taskwarrior.TaskWarriorSync.sync(TaskWarriorSync.java:157) E/ACRA (27389): at de.azapps.mirakel.sync.SyncAdapter.onPerformSync(SyncAdapter.java:136)

This are the interesting lines. The error is not because of the sync itself. For the code look here: https://github.com/azapps/mirakel-android/blob/src/de/azapps/mirakel/sync/taskwarrior/TaskWarriorSync.java#L238 Somehow there is a problem with downloading a task (as you've mentioned) but in the log there is no info about, which task it is :( @weiznich pushed a workaround (see 9239850) but i'm not really sure if this helps…

danfoster commented 10 years ago

I've built the project from git to make sure I got 9239850 and installed it to an emulator. I still get a crash:

D/ACRA    (  749): Wait for Toast + worker ended. Kill Application ? true
E/ACRA    (  749): de.azapps.mirakelandroid fatal error : Can't create handler inside thread that has not called Looper.prepare()
E/ACRA    (  749): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
E/ACRA    (  749):  at android.os.Handler.<init>(Handler.java:121)
E/ACRA    (  749):  at android.widget.Toast$TN.<init>(Toast.java:322)
E/ACRA    (  749):  at android.widget.Toast.<init>(Toast.java:91)
E/ACRA    (  749):  at android.widget.Toast.makeText(Toast.java:238)
E/ACRA    (  749):  at android.widget.Toast.makeText(Toast.java:265)
E/ACRA    (  749):  at de.azapps.mirakel.sync.taskwarrior.TaskWarriorSync.doSync(TaskWarriorSync.java:245)
E/ACRA    (  749):  at de.azapps.mirakel.sync.taskwarrior.TaskWarriorSync.sync(TaskWarriorSync.java:157)
E/ACRA    (  749):  at de.azapps.mirakel.sync.SyncAdapter.onPerformSync(SyncAdapter.java:136)
E/ACRA    (  749):  at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:254)
I/ACRA    (  749): Finishing the last Activity prior to killing the Process
I/ACRA    (  749): Finished class de.azapps.mirakel.main_activity.MainActivity
I/Process (  749): Sending signal. PID: 749 SIG: 9
itadventurer commented 10 years ago

Hey dan, You're on the wrong branch ;) Please checkout the developing branch. This is the current developing branch and there could be some other bugs (I don't find any ;) ) git checkout --track origin/developing If you like to help us, it would be really awesome if you help us to fix some of our current issues ;)