ArrayIndexOutOfBoundsException in microG makes WhatsApp crash and/or fail
- /e/ version: 0.11
- Device model(s): FP3
Summary
An ArrayIndexOutOfBoundsException, which appears to be originated in microG code, causes different harm in WhatsApp "share live location" feature depending on which UnifiedNlp backend is being used.
The problem
- Start WhatsApp
- Open a conversation
- Tap attach icon, then Location, then Share live location
What is the current behavior?
- when using Radiocells/openbmap, the "share live location" attempt will fail and WhatsApp will display a "Retry" button
- when using DejaVu, WhatsApp will often crash (I've reported this as a bug in DejaVu)
- when using MLS, no noticeable effect is seen in the UI. However I suspect the live location might not be correctly shared
What is the expected correct behavior?
No app crash, no "failed attempt" response from WhatsApp UI.
Technical informations
Relevant logs (adb logcat
)
--------- beginning of crash
10-26 22:08:10.595 3122 3122 E AndroidRuntime: FATAL EXCEPTION: main
10-26 22:08:10.595 3122 3122 E AndroidRuntime: Process: com.whatsapp, PID: 3122
10-26 22:08:10.595 3122 3122 E AndroidRuntime: java.lang.ArrayIndexOutOfBoundsException: length=30; index=30
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at a.b.c.f.f.a(Unknown Source:9)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at org.microg.gms.maps.mapbox.GoogleMapImpl.clear(Unknown Source:16)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at org.microg.gms.maps.mapbox.GoogleMapImpl.clear(Unknown Source:25)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at com.google.android.gms.maps.internal.IGoogleMapDelegate$Stub.onTransact(Unknown Source:846)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at org.microg.gms.maps.mapbox.GoogleMapImpl.onTransact(Unknown Source:0)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at android.os.Binder.transact(Binder.java:667)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at X.1EX.A02(:263077)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at X.1sP.clear(:330635)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at X.2aA.A03(:407683)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at X.2aA.A0S(:408227)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at X.0Yb.onAnimationStart(:177870)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at android.view.animation.Animation$1.run(Animation.java:373)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:873)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at android.os.Looper.loop(Looper.java:193)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6718)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
10-26 22:08:10.595 3122 3122 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
10-26 22:08:10.612 1211 2041 W ActivityManager: Force finishing activity com.whatsapp/.location.LocationPicker2
10-26 22:08:10.617 3122 3122 I Process : Sending signal. PID: 3122 SIG: 9
10-26 22:08:10.675 1211 1561 W InputDispatcher: channel 'c27227b com.whatsapp/com.whatsapp.location.LocationPicker2 (server)' ~ Consumer closed input channel or an error occurred. events=0x9
10-26 22:08:10.675 1211 1561 E InputDispatcher: channel 'c27227b com.whatsapp/com.whatsapp.location.LocationPicker2 (server)' ~ Channel is unrecoverably broken and will be disposed!
10-26 22:08:10.676 1211 1561 W InputDispatcher: channel 'f5f25e4 com.whatsapp/com.whatsapp.Conversation (server)' ~ Consumer closed input channel or an error occurred. events=0x9
10-26 22:08:10.676 1211 1561 E InputDispatcher: channel 'f5f25e4 com.whatsapp/com.whatsapp.Conversation (server)' ~ Channel is unrecoverably broken and will be disposed!
Edited by Robert B.