ankidroid / Anki-Android

AnkiDroid: Anki flashcards on Android. Your secret trick to achieve superhuman information retention.
GNU General Public License v3.0
8.69k stars 2.24k forks source link

[Bug] App hangs if there is too much work to do while checking media + crashes if another screen is opened while hanged #15626

Open BrayanDSO opened 8 months ago

BrayanDSO commented 8 months ago
Reproduction Steps

emulator 31, 2.17beta6:

  1. create a lot of fake media in dev options (10.000+)
  2. Check media
  3. try interacting with the screen → you can't
  4. try opening the deck picker or note editor → it crashes

it happened.webm

bingo.webm

Expected Result

A progress dialog or something like it is shown

Actual Result

app hangs until media is checked

Debug info

Refer to the support page if you are unsure where to get the "debug info".

Research

Enter an [x] character to confirm the points below:

it happened.webm bu

BrayanDSO commented 8 months ago
java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 876776 bytes
    at android.app.ActivityClient.activityStopped(ActivityClient.java:86)
    at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:143)
    at android.os.Handler.handleCallback(Handler.java:938)
    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:7839)
    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:1003)
Caused by: android.os.TransactionTooLargeException: data parcel size 876776 bytes
    at android.os.BinderProxy.transactNative(Native Method)
    at android.os.BinderProxy.transact(BinderProxy.java:571)
    at android.app.IActivityClientController$Stub$Proxy.activityStopped(IActivityClientController.java:1297)
    at android.app.ActivityClient.activityStopped(ActivityClient.java:83)
    at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:143) 
    at android.os.Handler.handleCallback(Handler.java:938) 
    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:7839) 
    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:1003) 
mikehardy commented 8 months ago

okay with releasing with this (so: agree on 2.17.1 milestone vs 2.17) but obviously a crash bug is higher priority than most

neeldoshii commented 8 months ago

I would like to take this @BrayanDSO @david-allison

BrayanDSO commented 8 months ago

if nobody has asked, go for it. No need for pinging

github-actions[bot] commented 3 months ago

Hello 👋, this issue has been opened for more than 3 months with no activity on it. If the issue is still here, please keep in mind that we need community support and help to fix it! Just comment something like still searching for solutions and if you found one, please open a pull request! You have 7 days until this gets closed automatically