element-hq / element-hq/element-x-android
Sending a 134 MiB MPEG-4 file crashes VC 202508030 in JNI, then Java, due to an `OutOfMemoryError`, then ANRs.
- Dominant language
- Kotlin
- Stars
- 2.4k
- Forks
- 624
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 149
Description
### Steps to reproduce
The traces are quite myriad:
1.
~~~YAML
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'Fairphone/FP5/FP5:15/AQ3A.240912.001/VT28:user/release-keys'
Revision: '0'
ABI: 'arm64'
Timestamp: 2025-08-31 19:18:41.358899756+0100
Process uptime: 14s
Cmdline: io.element.android.x
pid: 20749, tid: 20749, name: ement.android.x >>> io.element.android.x <<<
uid: 10017
signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
Abort message: 'No pending exception expected: java.lang.OutOfMemoryError: OutOfMemoryError thrown while trying to throw an exception; no stack trace available
(Throwable with no stack trace)'
x0 0000000000000000 x1 000000000000510d x2 0000000000000006 x3 0000007ffbeeaeb0
x4 d059ca631f560f73 x5 d059ca631f560f73 x6 d059ca631f560f73 x7 ff7fff7f7f7f7f7f
x8 00000000000000f0 x9 00000076cf6d13e8 x10 ffffff80fffffbdf x11 0000000000000001
x12 0000007ffbee9c10 x13 00000000000000e1 x14 0000007ffbee9cc0 x15 0000000034155555
x16 00000076cf782fe0 x17 00000076cf76eb00 x18 0000000000000000 x19 000000000000510d
x20 000000000000510d x21 00000000ffffffff x22 0000007433d7d000 x23 0000007433d7ee20
x24 b4000075d7a54010 x25 0000000000fffff9 x26 000000005a000000 x27 00000076f4787025
x28 0000000000000006 x29 0000007ffbeeaf30
lr 00000076cf70a8e8 sp 0000007ffbeeae90 pc 00000076cf70a918 pst 0000000000001000
32 total frames
backtrace:
#00 pc 000000000005c918 /apex/com.android.runtime/lib64/bionic/libc.so (abort+172) (BuildId: 64eb5106bc8ae51d575bce9d5c64cec5)
#01 pc 00000000008a0c74 /apex/com.android.art/lib64/libart.so (art::Runtime::Abort(char const*)+476) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#02 pc 0000000000016188 /apex/com.android.art/lib64/libbase.so (android::base::SetAborter(std::__1::function&&)::$_0::__invoke(char const*)+80) (BuildId: 8aca1185566f3990ce9d6c61841c18af)
#03 pc 0000000000015730 /apex/com.android.art/lib64/libbase.so (android::base::LogMessage::~LogMessage()+544) (BuildId: 8aca1185566f3990ce9d6c61841c18af)
#04 pc 00000000002d7df8 /apex/com.android.art/lib64/libart.so (art::Thread::AssertNoPendingException() const+572) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#05 pc 000000000020523c /apex/com.android.art/lib64/libart.so (art::ClassLinker::FindClass(art::Thread*, char const*, unsigned long, art::Handle)+68) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#06 pc 000000000062ab34 /apex/com.android.art/lib64/libart.so (art::JNI::FindClass(_JNIEnv*, char const*)+480) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#07 pc 000000000018ed70 /system/lib64/libandroid_runtime.so (jniLogException(_JNIEnv*, int, char const*, _jthrowable*)+440) (BuildId: 9f5b598290f136d07374d1a5b8388358)
#08 pc 000000000018e55c /system/lib64/libandroid_runtime.so (android::MessageQueue::raiseAndClearException(_JNIEnv*, char const*)+124) (BuildId: 9f5b598290f136d07374d1a5b8388358)
#09 pc 000000000015dd94 /system/lib64/libandroid_runtime.so (android::NativeDisplayEventReceiver::dispatchVsync(long, android::PhysicalDisplayId, unsigned int, android::gui::VsyncEventData)+484) (BuildId: 9f5b598290f136d07374d1a5b8388358)
#10 pc 00000000000c2ae8 /system/lib64/libgui.so (android::DisplayEventDispatcher::handleEvent(int, int, void*)+276) (BuildId: 87abcdd5785bfdab79aa90b0288fd99e)
#11 pc 00000000000120d8 /system/lib64/libutils.so (android::Looper::pollInner(int)+1236) (BuildId: 974f050a274d2b06051a6a711d1870ac)
#12 pc 0000000000011ba0 /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+124) (BuildId: 974f050a274d2b06051a6a711d1870ac)
#13 pc 000000000018fa14 /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+48) (BuildId: 9f5b598290f136d07374d1a5b8388358)
#14 pc 0000000000dec7b0 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+112)
#15 pc 0000000000983ca0 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.MessageQueue.next+256)
#16 pc 0000000000980a80 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loopOnce+96)
#17 pc 000000000098097c /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loop+812)
#18 pc 000000000070055c /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.ActivityThread.main+2332)
#19 pc 000000000032d460 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#20 pc 00000000003273d0 /apex/com.android.art/lib64/libart.so (_jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+544) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#21 pc 00000000005c6f80 /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) (.__uniq.165753521025965369065708152063621506277)+32) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#22 pc 0000000000ded994 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+116)
#23 pc 0000000000ca73b4 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+132)
#24 pc 0000000000cb1de4 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.ZygoteInit.main+3348)
#25 pc 000000000032d460 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#26 pc 000000000032bfc8 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+800) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#27 pc 000000000064a488 /apex/com.android.art/lib64/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+156) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#28 pc 00000000000da42c /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+108) (BuildId: 9f5b598290f136d07374d1a5b8388358)
#29 pc 00000000000f1314 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector const&, bool)+916) (BuildId: 9f5b598290f136d07374d1a5b8388358)
#30 pc 0000000000002654 /system/bin/app_process64 (main+1428) (BuildId: cf8363ee21ac2741a6c8dbbb8c562607)
#31 pc 000000000005628c /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+120) (BuildId: 64eb5106bc8ae51d575bce9d5c64cec5)
~~~
1.
~~~YAML
FATAL EXCEPTION: Transformer:Internal
Process: io.element.android.x, PID: 21657
java.lang.OutOfMemoryError: Failed to allocate a 104 byte allocation with 42640 free bytes and 41KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
at java.util.Arrays.copyOf(Arrays.java:3785)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:182)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:548)
at java.lang.StringBuilder.append(StringBuilder.java:186)
at androidx.compose.ui.input.key.Key$$ExternalSyntheticOutline0.m(r8-map-id-b4450a32c5760e344018d2165d55128c76cdadfe562115f7905414cc4e2cce1b:63)
at androidx.media3.transformer.FrameworkMuxer.writeSampleData(r8-map-id-b4450a32c5760e344018d2165d55128c76cdadfe562115f7905414cc4e2cce1b:159)
at androidx.media3.transformer.DefaultMuxer.writeSampleData(r8-map-id-b4450a32c5760e344018d2165d55128c76cdadfe562115f7905414cc4e2cce1b:3)
at androidx.media3.transformer.MuxerWrapper.writeSample(r8-map-id-b4450a32c5760e344018d2165d55128c76cdadfe562115f7905414cc4e2cce1b:265)
at androidx.media3.transformer.TransformerInternal.drainExportersInternal(r8-map-id-b4450a32c5760e344018d2165d55128c76cdadfe562115f7905414cc4e2cce1b:520)
at androidx.media3.common.util.ListenerSet$$ExternalSyntheticLambda0.handleMessage(r8-map-id-b4450a32c5760e344018d2165d55128c76cdadfe562115f7905414cc4e2cce1b:50)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.os.HandlerThread.run(HandlerThread.java:85)
~~~
1.
~~~YAML
ANR in io.element.android.x (io.element.android.x/.MainActivity)
PID: 21657
Reason: Input dispatching timed out (5591a3b io.element.android.x/io.element.android.x.MainActivity (server) is not responding. Waited 5001ms for MotionEvent).
Parent: io.element.android.x/.MainActivity
ErrorId: 2155aba6-4251-49d5-95a8-cd3165efeb11
Frozen: false
Load: 11.43 / 7.91 / 6.55
----- Output from /proc/pressure/memory -----
some avg10=1.38 avg60=1.43 avg300=0.53 total=230208063
full avg10=0.34 avg60=0.23 avg300=0.07 total=72955342
----- End output from /proc/pressure/memory -----
----- Output from /proc/pressure/cpu -----
some avg10=12.79 avg60=22.75 avg300=16.11 total=12849152659
----- End output from /proc/pressure/cpu -----
----- Output from /proc/pressure/io -----
some avg10=1.27 avg60=2.54 avg300=1.02 total=486991678
full avg10=0.41 avg60=0.76 avg300=0.30 total=250140056
----- End output from /proc/pressure/io -----
CPU usage from 19235ms to -2ms ago (2025-08-31 19:19:00.228 to 2025-08-31 19:19:19.464):
102% 21657/io.element.android.x: 87% user + 14% kernel / faults: 270385 minor 57 major
33% 20969/com.google.android.apps.photos: 19% user + 14% kernel / faults: 9808 minor 89 major
13% 1477/system_server: 8.6% user + 4.7% kernel / faults: 13746 minor 71 major
12% 1212/surfaceflinger: 7.6% user + 4.6% kernel / faults: 187 minor 22 major
10% 1104/media.hwcodec: 3.3% user + 7.2% kernel / faults: 1219 minor 7 major
10% 28918/com.google.android.googlequicksearchbox:trusted_disable_art_image_:com.google.android.apps.gsa.hot: 7.5% user + 3% kernel / faults: 385 minor 62 major
9.8% 4403/com.google.android.providers.media.module: 3.4% user + 6.3% kernel / faults: 55008 minor 84 major
3.4% 1086/vendor.qti.hardware.display.composer-service: 2% user + 1.4% kernel / faults: 465 minor 9 major
3.4% 31190/com.spotify.music: 1.7% user + 1.7% kernel / faults: 109 minor 4 major
3.2% 1084/vendor.qti.hardware.display.allocator-service: 0.2% user + 3% kernel / faults: 294 minor
37% TOTAL: 21% user + 13% kernel + 0.5% iowait + 1.3% irq + 1% softirq
CPU usage from 69ms to 432ms later (2025-08-31 19:19:19.531 to 2025-08-31 19:19:19.894):
152% 21657/io.element.android.x: 99% user + 53% kernel / faults: 8126 minor 25 major
78% 21667/HeapTaskDaemon: 61% user + 16% kernel
70% 21664/Signal Catcher: 37% user + 33% kernel
91% 1477/system_server: 44% user + 47% kernel / faults: 12195 minor
37% 23615/AnrAuxiliaryTas: 9.4% user + 28% kernel
18% 2630/TaskSnapshotPer: 15% user + 3.1% kernel
6.3% 1522/android.anim: 3.1% user + 3.1% kernel
6.3% 4796/binder:1477_1D: 3.1% user + 3.1% kernel
3.1% 1521/android.display: 0% user + 3.1% kernel
3.1% 2829/EventHandler: 0% user + 3.1% kernel
3.1% 2937/binder:1477_A: 3.1% user + 0% kernel
3.1% 4727/binder:1477_17: 3.1% user + 0% kernel
37% 1212/surfaceflinger: 25% user + 12% kernel / faults: 15 minor
15% 1212/surfaceflinger: 15% user + 0% kernel
3.1% 1328/binder:1212_2: 0% user + 3.1% kernel
3.1% 1344/RenderEngine: 3.1% user + 0% kernel
3.1% 1391/app: 3.1% user + 0% kernel
3.1% 1392/appSf: 3.1% user + 0% kernel
3.1% 1399/BckgrndExec HP: 3.1% user + 0% kernel
3.1% 4337/binder:1212_5: 0% user + 3.1% kernel
37% 20969/com.google.android.apps.photos: 20% user + 16% kernel / faults: 48 minor
20% 21058/CronetNet: 8.2% user + 12% kernel
16% 21165/AsyncTask #1: 16% user + 0% kernel
4.1% 20969/oid.apps.photos: 0% user + 4.1% kernel
12% 1086/vendor.qti.hardware.display.composer-service: 6.1% user + 6.1% kernel / faults: 21 minor
9.2% 1336/HwBinder:1086_1: 6.1% user + 3% kernel
5.6% 128/kswapd-1:0: 0% user + 5.6% kernel
5.7% 358/crtc_commit:113: 0% user + 5.7% kernel
7% 3692/kswapd0:1: 0% user + 7% kernel
8.4% 28918/com.google.android.googlequicksearchbox:trusted_disable_art_image_:com.google.android.apps.gsa.hot: 4.2% user + 4.2% kernel / faults: 3 minor
4.2% 28980/soda_process: 0% user + 4.2% kernel
4.2% 29022/pool-2-thread-1: 4.2% user + 0% kernel
2.7% 11/rcu_preempt: 0% user + 2.7% kernel
2.7% 46/rcuop/5: 0% user + 2.7% kernel
2.7% 58/rcuop/7: 0% user + 2.7% kernel
2.8% 146/system: 0% user + 2.8% kernel
2.8% 188/kgsl_worker_thr: 0% user + 2.8% kernel
2.9% 607/logd: 0% user + 2.9% kernel
2.9% 613/logd.writer: 0% user + 2.9% kernel
2.9% 21830/logd.reader.per: 2.9% user + 0% kernel
2.9% 826/loop37: 0% user + 2.9% kernel
3.2% 1666/cnss_diag: 3.2% user + 0% kernel
3.3% 2642/dp_rx_thread_1: 0% user + 3.3% kernel
3.3% 2651/com.android.systemui: 0% user + 3.3% kernel / faults: 10 minor
3.3% 2734/ll.splashscreen: 3.3% user + 0% kernel
3.3% 2808/com.android.bluetooth: 3.3% user + 0% kernel / faults: 2 minor
3.4% 2965/com.android.launcher3: 3.4% user + 0% kernel / faults: 9 minor
3.4% 3151/binder:2965_4: 3.4% user + 0% kernel
3.4% 3052/com.google.android.gms.persistent: 0% user + 3.4% kernel / faults: 85 minor
3.4% 20926/lowpool[4604]: 0% user + 3.4% kernel
3.6% 6905/com.google.android.as: 3.6% user + 0% kernel / faults: 1 minor 1 major
3.7% 14756/kworker/u16:1-devfreq_wq: 0% user + 3.7% kernel
3.9% 16122/kworker/u16:3-kverityd: 0% user + 3.9% kernel
3.9% 16123/kworker/u16:4-kverityd: 0% user + 3.9% kernel
3.9% 16243/kworker/u16:12-kverityd: 0% user + 3.9% kernel
4% 18802/irq/51-90b6400.: 0% user + 4% kernel
+0% 23619/ement.android.x: 0% user + 0% kernel
68% TOTAL: 31% user + 29% kernel + 3.8% iowait + 1.7% irq + 1% softirq
Completed ANR of io.element.android.x in 3025ms, latency 5ms
~~~
### Outcome
#### What did you expect?
1. It shouldn't crash.
1. The file should be sent.
#### What happened instead?
1. It crashed.
1. No file was sent.
### Your phone model
Fairphone 5
### Operating system version
> ~~~YAML
> [ro.build.version.release]: [15]
> [ro.build.display.id]: [FP5.VT2D.C.054.20250814]
> ~~~
### Application version and app store
> ~~~ini
> versionName=25.08.3
> versionCode=202508030
> ~~~
### Homeserver
`matrix.org`
### Will you send logs?
Yes
### Are you willing to provide a PR?
No
Contributor guide
Assessment
This issue has not been assessed yet.