Random crash on latest build
Checklist
- [x] I've already searched in existing issues and haven't found a similar problem reported.
- [x] I'm using the latest version of the app
- [x] This error caused the app to crash
- [x] This error is reproducible
Which category best fits this error?
Feed Management
App version
0.15.0
Reproduction steps
1. Open and start reading an article
2. Scroll through article
3. The app should crash
The application is crashing due to java.lang.OutOfMemoryError when processing an incoming network response. The crash originates within the conscrypt security library while handling data for an okhttp3 network call, suggesting a potential memory leak or inefficient handling of a large data payload during a secure (HTTPS) connection.
The error indicates that the JVM heap was exhausted, and the Garbage Collector was unable to free up sufficient memory to proceed, even for a small 24-byte allocation.
The error is a memory exhaustion error..
Version: 0.15.0
Device: Google Pixel 9 Pro Fold
System: Android 16 (API 36)
Stack trace:
.lang.OutOfMemoryError: Failed to allocate a 24 byte allocation with 2328576 free bytes and 2274KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
at com.android.org.conscrypt.ConscryptEngine.newResult(ConscryptEngine.java:1363)
at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:933)
at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:744)
at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:709)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:907)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readUntilDataAvailable(ConscryptEngineSocket.java:873)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.read(ConscryptEngineSocket.java:846)
at okio.InputStreamSource.read(JvmOkio.kt:41)
at okio.AsyncTimeout$source$1.read(AsyncTimeout.kt:13)
at okio.RealBufferedSource.request(RealBufferedSource.kt:23)
at okio.RealBufferedSource.require(RealBufferedSource.kt:1)
at okhttp3.internal.http2.Http2Reader.nextFrame(Http2Reader.kt:13)
at okhttp3.internal.http2.Http2Connection$ReaderRunnable.invoke(Http2Connection.kt:16)
at okhttp3.internal.concurrent.TaskQueue$execute$1.runOnce(TaskQueue.kt:3)
at okhttp3.internal.concurrent.TaskRunner.access$runTask(TaskRunner.kt:16)
at okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.kt:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
at java.lang.Thread.run(Thread.java:1119)
Seems like you've enabled fetch full content for this feed, and the webpage of the entry is really large or long. Could you provide the link to the specific article?
Nibbles — HackTheBox Walkthrough https://medium.com/@B3TA-BLOCKER/nibbles-hackthebox-walkthrough-d59ed3b3fa36?source=rss------cybersecurity-5
This is one of the sites. There are more that just this site u am getting memory crashes happening. I think increasing the memory allocation might be beneficial for fetching full content on sites where the feed might be large.
`Version: 0.15.0 Device: Google Pixel 9 Pro Fold System: Android 16 (API 36)
Stack trace:
at okhttp3.internal.http2.Http2ExchangeCodec.readResponseHeaders(Http2ExchangeCodec.kt:104)
at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.kt:3)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:272)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126)
at me.ash.reader.infrastructure.di.UserAgentInterceptor.intercept(OkHttpClientModule.kt:26)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:134)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:159)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:148)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:162)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:89)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:40)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
at java.lang.Thread.run(Thread.java:1119)
https://0pointer.net/blog/index.atom
Version: 0.15.0 Device: Google Pixel 9 Pro Fold System: Android 16 (API 36)
Stack trace:
at okhttp3.internal.http2.Http2ExchangeCodec.readResponseHeaders(Http2ExchangeCodec.kt:104)
at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.kt:3)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:272)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126)
at me.ash.reader.infrastructure.di.UserAgentInterceptor.intercept(OkHttpClientModule.kt:26)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:134)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:159)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:148)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:162)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:126)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:89)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:40)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
at java.lang.Thread.run(Thread.java:1119)