ActivityWatch / aw-android

ActivityWatch for Android, using aw-server-rust as backend.
Mozilla Public License 2.0
175 stars 29 forks source link

Doesn't work without wifi/data #47

Open nicolae-stroncea opened 4 years ago

nicolae-stroncea commented 4 years ago

For some reason, doesn't work without wifi, and on some instances seemed to crash/hang?

ErikBjare commented 4 years ago

Weird about the wifi/data, but about the crashes/hangs I was hoping they'd all be resolved, so I took a look at the Play Store vitals page.

ANRs:

image

Crashes:

image

Still waaaay better than before (although we don't have a lot of users, so that impacts things).

The crashes are all distinct, I guess we'll have to resymbolize the stacktraces to look into them.

Here's the top one:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> net.activitywatch.android <<<

backtrace:
  #00  pc 000000000001a6fa  /system/lib/libc.so (abort+63)
  #01  pc 0000000000334155  /data/app/net.activitywatch.android-W_H7ebjc3TFO458OrV-j1w==/lib/arm/libaw_server.so
  #02  pc 0000000000331fcd  /data/app/net.activitywatch.android-W_H7ebjc3TFO458OrV-j1w==/lib/arm/libaw_server.so
  #03  pc 0000000000332a41  /data/app/net.activitywatch.android-W_H7ebjc3TFO458OrV-j1w==/lib/arm/libaw_server.so
  #04  pc 00000000003329bb  /data/app/net.activitywatch.android-W_H7ebjc3TFO458OrV-j1w==/lib/arm/libaw_server.so
  #05  pc 00000000003326e9  /data/app/net.activitywatch.android-W_H7ebjc3TFO458OrV-j1w==/lib/arm/libaw_server.so
  #06  pc 0000000000351e13  /data/app/net.activitywatch.android-W_H7ebjc3TFO458OrV-j1w==/lib/arm/libaw_server.so
  #07  pc 0000000000351d0f  /data/app/net.activitywatch.android-W_H7ebjc3TFO458OrV-j1w==/lib/arm/libaw_server.so
  #08  pc 0000000000053b29  /data/app/net.activitywatch.android-W_H7ebjc3TFO458OrV-j1w==/lib/arm/libaw_server.so
  #09  pc 0000000000054855  /data/app/net.activitywatch.android-W_H7ebjc3TFO458OrV-j1w==/lib/arm/libaw_server.so (Java_net_activitywatch_android_RustInterface_heartbeat+16)
  #10  pc 0000000000011325  /data/app/net.activitywatch.android-W_H7ebjc3TFO458OrV-j1w==/oat/arm/base.odex (offset 0x11000)

Here's the second one:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> net.activitywatch.android <<<

backtrace:
  #00  pc 000000000001ce5e  /system/lib/libc.so (abort+58)
  #01  pc 0000000000334155  /data/app/net.activitywatch.android-8JvAZYAtbXZHAQKREkWhBg==/lib/arm/libaw_server.so
  #02  pc 0000000000331fcd  /data/app/net.activitywatch.android-8JvAZYAtbXZHAQKREkWhBg==/lib/arm/libaw_server.so
  #03  pc 0000000000332a41  /data/app/net.activitywatch.android-8JvAZYAtbXZHAQKREkWhBg==/lib/arm/libaw_server.so
  #04  pc 00000000003329bb  /data/app/net.activitywatch.android-8JvAZYAtbXZHAQKREkWhBg==/lib/arm/libaw_server.so
  #05  pc 00000000003326e9  /data/app/net.activitywatch.android-8JvAZYAtbXZHAQKREkWhBg==/lib/arm/libaw_server.so
  #06  pc 0000000000351e13  /data/app/net.activitywatch.android-8JvAZYAtbXZHAQKREkWhBg==/lib/arm/libaw_server.so
  #07  pc 0000000000351d0f  /data/app/net.activitywatch.android-8JvAZYAtbXZHAQKREkWhBg==/lib/arm/libaw_server.so
  #08  pc 0000000000053b29  /data/app/net.activitywatch.android-8JvAZYAtbXZHAQKREkWhBg==/lib/arm/libaw_server.so
  #09  pc 0000000000054855  /data/app/net.activitywatch.android-8JvAZYAtbXZHAQKREkWhBg==/lib/arm/libaw_server.so (Java_net_activitywatch_android_RustInterface_heartbeat+16)
  #10  pc 0000000000048325  /data/app/net.activitywatch.android-8JvAZYAtbXZHAQKREkWhBg==/oat/arm/base.odex (offset 0x48000) (net.activitywatch.android.RustInterface.heartbeat+132)
  #11  pc 00000000000e3c9d  /data/app/net.activitywatch.android-8JvAZYAtbXZHAQKREkWhBg==/oat/arm/base.odex (offset 0x48000) (net.activitywatch.android.watcher.UsageStatsWatcher$SendHeartbeatsTask.doInBackground+1980)
  #12  pc 0000000000090807  /data/app/net.activitywatch.android-8JvAZYAtbXZHAQKREkWhBg==/oat/arm/base.odex (offset 0x48000) (net.activitywatch.android.watcher.UsageStatsWatcher$SendHeartbeatsTask.doInBackground+78)
  #13  pc 00000000017c185f  /system/framework/arm/boot-framework.oat (offset 0x9d3000) (android.os.AsyncTask$2.call+158)
  #14  pc 00000000007cff29  /system/framework/arm/boot-core-oj.oat (offset 0x2c9000) (java.util.concurrent.FutureTask.run+208)
  #15  pc 0000000001436263  /system/framework/arm/boot-framework.oat (offset 0x9d3000) (android.os.AsyncTask$SerialExecutor$1.run+58)
  #16  pc 000000000091cbe1  /system/framework/arm/boot-core-oj.oat (offset 0x2c9000) (java.util.concurrent.ThreadPoolExecutor.runWorker+1048)
  #17  pc 000000000091967f  /system/framework/arm/boot-core-oj.oat (offset 0x2c9000) (java.util.concurrent.ThreadPoolExecutor$Worker.run+54)
  #18  pc 00000000004d2391  /system/framework/arm/boot-core-oj.oat (offset 0x2c9000) (java.lang.Thread.run+64)
  #19  pc 000000000040e775  /system/lib/libart.so (art_quick_invoke_stub_internal+68)
  #20  pc 00000000003e80d9  /system/lib/libart.so (art_quick_invoke_stub+224)
  #21  pc 00000000000a143d  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136)
  #22  pc 000000000034890d  /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52)
  #23  pc 0000000000349665  /system/lib/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+320)
  #24  pc 000000000036a5f7  /system/lib/libart.so (art::Thread::CreateCallback(void*)+866)
  #25  pc 0000000000071501  /system/lib/libc.so (__pthread_start(void*)+22)
  #26  pc 000000000001de85  /system/lib/libc.so (__start_thread+24)
nicolae-stroncea commented 4 years ago

So I tried it more times without wifi/data, and it does work.

However, I distinctly remember that on the 2-3 instances where nothing was working, my wifi/data was off. After that, when I turned the data on, everything was suddenly working. I'm wondering if this was caused instead by AW being busy sending events to the server, and it finished around the time i connected to data. In that case fix would be to visualize more clearly that AW is loading. Difficult to test this given that it occured randomly

ErikBjare commented 4 years ago

I'm wondering if this was caused instead by AW being busy sending events to the server, and it finished around the time i connected to data.

This sounds like the most likely explanation.

In that case fix would be to visualize more clearly that AW is loading.

I've thought the same, but I think the preferred solution would be to just load it quicker as that should be doable.