zcash-android-wallet-sdk
zcash-android-wallet-sdk copied to clipboard
ANR Demo-app
Describe the issue
I was able to reproduce ANR with the Demo-app. It happened after the clean app install with this configuration:
- debug
- mainnet
- physical device Pixel6
Can you reliably reproduce the issue?
If so, please list the steps to reproduce below:
- Clean install
- Open the screen in order from top to down from the side menu
- On the screen List UTXOs click on the LOAD TRANSACTIONS
- App frozen (device frozen completely too - restart needed)
Actual behavior + errors
I was able to get this ANR stacktrace from logcat:
ANR in cash.z.ecc.android.sdk.demoapp.mainnet (cash.z.ecc.android.sdk.demoapp.mainnet/cash.z.ecc.android.sdk.demoapp.MainActivity)
PID: 18989
Reason: Input dispatching timed out (88364a4 cash.z.ecc.android.sdk.demoapp.mainnet/cash.z.ecc.android.sdk.demoapp.MainActivity (server) is not responding. Waited 5000ms for MotionEvent)
Parent: cash.z.ecc.android.sdk.demoapp.mainnet/cash.z.ecc.android.sdk.demoapp.MainActivity
ErrorId: 8434dbb4-3ee5-456e-b22e-657509571c05
Frozen: false
Load: 2.64 / 1.47 / 1.29
----- Output from /proc/pressure/memory -----
some avg10=0.14 avg60=0.22 avg300=0.06 total=141005079
full avg10=0.00 avg60=0.01 avg300=0.00 total=42198510
----- End output from /proc/pressure/memory -----
CPU usage from 0ms to 6055ms later (2022-12-19 14:19:34.991 to 2022-12-19 14:19:41.047) with 99% awake:
81% 20041/eu.inmite.prj.kb.mobilbank: 73% user + 7.7% kernel / faults: 14390 minor 284 major
77% 29764/cz.kb.paatproduction: 71% user + 6.2% kernel / faults: 12742 minor 80 major
28% 1748/system_server: 16% user + 12% kernel / faults: 6415 minor 208 major
17% 24151/com.android.vending: 14% user + 3.1% kernel / faults: 8498 minor 89 major
12% 18989/cash.z.ecc.android.sdk.demoapp.mainnet: 10% user + 2.7% kernel / faults: 6689 minor 97 major
10% 3609/com.google.android.inputmethod.latin: 7.4% user + 3.2% kernel / faults: 2475 minor 1065 major
9% 2029/com.android.systemui: 6.4% user + 2.6% kernel / faults: 3138 minor 134 major
8.8% 3676/com.google.android.googlequicksearchbox:interactor: 5.4% user + 3.4% kernel / faults: 1952 minor 777 major
5.6% 1116/adbd: 0.9% user + 3.6% kernel / faults: 6191 minor
2.1% 156/kswapd0: 0% user + 2.1% kernel
2.1% 1070/media.swcodec: 1.3% user + 0.8% kernel / faults: 5032 minor 40 major
1.4% 2324/com.android.phone: 1.1% user + 0.3% kernel / faults: 885 minor 178 major
1.4% 18767/kworker/u16:5-adb: 0% user + 1.4% kernel / faults: 33 minor
1.3% 522/surfaceflinger: 0.9% user + 0.3% kernel / faults: 58 minor 6 major
1.3% 18823/app_process: 0.4% user + 0.8% kernel / faults: 2 minor
0% 1041/media.extractor: 0% user + 0% kernel / faults: 1907 minor 33 major
0% 2238/com.google.android.grilservice: 0% user + 0% kernel / faults: 1014 minor 252 major
0% 2299/com.shannon.imsservice: 0% user + 0% kernel / faults: 1000 minor 129 major
0.9% 900/[email protected]: 0.6% user + 0.3% kernel / faults: 19 minor
0.9% 2163/com.android.networkstack.process: 0.6% user + 0.3% kernel / faults: 784 minor 100 major
0% 2309/com.samsung.slsi.telephony.oemril: 0% user + 0% kernel / faults: 1068 minor 407 major
0.9% 3746/com.android.nfc: 0.4% user + 0.4% kernel / faults: 1015 minor 514 major
0.9% 18909/kworker/u16:7-gpu-dvfs-control: 0% user + 0.9% kernel / faults: 7 minor
0% 1049/media.codec: 0% user + 0% kernel / faults: 1710 minor 45 major
0.8% 2207/com.shannon.qualifiednetworksservice: 0.4% user + 0.3% kernel / faults: 980 minor 250 major
0% 2252/com.samsung.slsi.telephony.oem.oemrilhookservice: 0% user + 0% kernel / faults: 1048 minor 389 major
0% 2257/com.android.se: 0% user + 0% kernel / faults: 1155 minor 335 major
0% 2274/com.shannon.rcsservice: 0% user + 0% kernel / faults: 979 minor 397 major
0% 3760/com.google.SSRestartDetector: 0% user + 0% kernel / faults: 1021 minor 397 major
0.8% 16845/kworker/u17:5-kbase_pm_poweroff_wait: 0% user + 0.8% kernel
0.6% 12/rcu_preempt: 0% user + 0.6% kernel
0.6% 13/rcuog/0: 0% user + 0.6% kernel
0.6% 475/sugov:4: 0% user + 0.6% kernel
0% 2302/com.google.android.apps.cbrsnetworkmonitor: 0% user + 0% kernel / faults: 1041 minor 350 major
0.6% 3807/com.google.android.connectivitythermalpowermanager: 0.3% user + 0.3% kernel / faults: 923 minor 351 major
0.4% 477/sugov:6: 0% user + 0.4% kernel
0% 689/tombstoned: 0% user + 0% kernel / faults: 26 minor 45 major
0.4% 2222/com.android.hbmsvmanager: 0.3% user + 0.1% kernel / faults: 990 minor 219 major
2.2% 650/surfaceflinger: 0% user + 2.2% kernel
9.5% 900/[email protected]: 7.1% user + 2.3% kernel / faults: 10 minor
2.3% 18873/HwBinder:900_3: 2.3% user + 0% kernel
10% 18989/cash.z.ecc.android.sdk.demoapp.mainnet: 10% user + 0% kernel / faults: 177 minor 2 major
7% 19058/mali-mem-purge: 3.5% user + 3.5% kernel
7% 19106/pool-6-thread-1: 7% user + 0% kernel
3.5% 18989/demoapp.mainnet: 0% user + 3.5% kernel
3.5% 19125/OkHttpClientTra: 3.5% user + 0% kernel
2.1% 11/ksoftirqd/0: 0% user + 2.1% kernel
2.1% 13/rcuog/0: 0% user + 2.1% kernel
2.1% 57/rcuop/5: 0% user + 2.1% kernel
2.3% 881/android.hardware.power.stats-service.pixel: 0% user + 2.3% kernel
2.3% 881/android.hardwar: 0% user + 2.3% kernel
2.7% 3807/com.google.android.connectivitythermalpowermanager: 2.7% user + 0% kernel
3.1% 16239/kworker/5:0-memlat_wq: 0% user + 3.1% kernel
3.1% 16828/kworker/u16:1-adb: 0% user + 3.1% kernel
3.4% 18767/kworker/u16:5-adb: 0% user + 3.4% kernel
3.8% 24151/com.android.vending: 3.8% user + 0% kernel / faults: 68 minor
3.8% 19181/libraries-threa: 3.8% user + 0% kernel
47% TOTAL: 29% user + 16% kernel + 1% irq + 0.5% softirq
And the demo-app crashes with this log at the end:
Process: cash.z.ecc.android.sdk.demoapp.mainnet, PID: 18989
io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED: deadline exceeded after 59.998158081s. [closed=[], committed=[remote_addr=mainnet.lightwalletd.com/140.238.134.157:9067]]
at io.grpc.Status.asRuntimeException(Status.java:539)
at io.grpc.stub.ClientCalls$BlockingResponseStream.hasNext(ClientCalls.java:662)
at cash.z.ecc.android.sdk.internal.service.LightWalletGrpcServiceKt.toList(LightWalletGrpcService.kt:207)
at cash.z.ecc.android.sdk.internal.service.LightWalletGrpcServiceKt.access$toList(LightWalletGrpcService.kt:1)
at cash.z.ecc.android.sdk.internal.service.LightWalletGrpcService.getTAddressTransactions(LightWalletGrpcService.kt:119)
at cash.z.ecc.android.sdk.demoapp.demos.listutxos.ListUtxosFragment.downloadTransactions$lambda$4$lambda$3(ListUtxosFragment.kt:87)
at cash.z.ecc.android.sdk.demoapp.demos.listutxos.ListUtxosFragment.$r8$lambda$MUUJt4ghNQkS9nMJBCMr-9KsBHY(Unknown Source:0)
at cash.z.ecc.android.sdk.demoapp.demos.listutxos.ListUtxosFragment$$ExternalSyntheticLambda1.run(Unknown Source:4)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7898)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
I don't see evidence here of a problem with the demo app per se. An unrelated app (which appears to be this Czech banking app) is taking 81% + 77% CPU. The demo app is taking 12%.
Thanks for the comment Daira. The ANR stacktrace is just additional information, which one can grab while experiencing an ANR on a device. Unfortunately, it does not tell us much, agree. But we aim to the entire old UI Demo-app removal (we replace it with Jetpack Compose-based Demo-app continuously), and thus this issue will be resolved, see https://github.com/zcash/zcash-android-wallet-sdk/issues/973.