apps-android-commons: OutOfMemoryError crash when receiving picture

Steps to reproduce:

  1. Try to upload a rather big picture (7MB 6000x4000 pixels). It is a normal DLSR size these days. Either via gallery or via “share to”, and either from home activity or from nearby.
  2. Crash

I can send you such pictures via email if you want.

System logs:

12-07 20:04:58.162 18524 28962 D CustomApiResult:  <?xml version="1.0" encoding="UTF-8"?><api batchcomplete=""><query><allimages/></query></api>
12-07 20:04:58.259 18524 28962 V ImageUtils: left: 0 right: 6000 top: 0 bottom: 4000
12-07 20:04:58.911   786 17525 I ActivityManager: Process org.telegram.messenger (pid 18450) has died
12-07 20:04:58.911   786 17525 D ActivityManager: cleanUpApplicationRecord -- 18450
12-07 20:04:58.921   786 17525 W ActivityManager: Scheduling restart of crashed service org.telegram.messenger/.NotificationsService in 1000ms
12-07 20:04:58.955 18524 28962 I art     : Starting a blocking GC Alloc
12-07 20:04:58.956 18524 28962 I art     : Starting a blocking GC Alloc
12-07 20:04:58.961 18524 28962 I art     : Alloc sticky concurrent mark sweep GC freed 4(88B) AllocSpace objects, 0(0B) LOS objects, 12% free, 108MB/124MB, paused 508us total 5.419ms
12-07 20:04:58.961 18524 28962 I art     : Starting a blocking GC Alloc
12-07 20:04:59.001 18524 28962 I art     : Alloc partial concurrent mark sweep GC freed 50(1528B) AllocSpace objects, 0(0B) LOS objects, 12% free, 108MB/124MB, paused 506us total 39.506ms
12-07 20:04:59.001 18524 28962 I art     : Starting a blocking GC Alloc
12-07 20:04:59.045 18524 28962 I art     : Alloc concurrent mark sweep GC freed 46(1568B) AllocSpace objects, 0(0B) LOS objects, 12% free, 108MB/124MB, paused 524us total 43.441ms
12-07 20:04:59.045 18524 28962 I art     : Forcing collection of SoftReferences for 91MB allocation
12-07 20:04:59.045 18524 28962 I art     : Starting a blocking GC Alloc
12-07 20:04:59.092 18524 28962 I art     : Alloc concurrent mark sweep GC freed 3(72B) AllocSpace objects, 0(0B) LOS objects, 12% free, 108MB/124MB, paused 746us total 46.376ms
12-07 20:04:59.092 18524 28962 W art     : Throwing OutOfMemoryError "Failed to allocate a 96000012 byte allocation with 16776880 free bytes and 83MB until OOM"
12-07 20:04:59.092 18524 28962 I art     : Starting a blocking GC Alloc
12-07 20:04:59.092 18524 28962 I art     : Starting a blocking GC Alloc
12-07 20:04:59.099 18524 28962 I art     : Alloc sticky concurrent mark sweep GC freed 4(640B) AllocSpace objects, 0(0B) LOS objects, 12% free, 108MB/124MB, paused 716us total 6.659ms
12-07 20:04:59.099 18524 28962 I art     : Starting a blocking GC Alloc
12-07 20:04:59.139 18524 28962 I art     : Alloc partial concurrent mark sweep GC freed 6(144B) AllocSpace objects, 0(0B) LOS objects, 12% free, 108MB/124MB, paused 575us total 38.958ms
12-07 20:04:59.139 18524 28962 I art     : Starting a blocking GC Alloc
12-07 20:04:59.178 18524 28962 I art     : Alloc concurrent mark sweep GC freed 3(72B) AllocSpace objects, 0(0B) LOS objects, 12% free, 108MB/124MB, paused 755us total 38.742ms
12-07 20:04:59.178 18524 28962 I art     : Forcing collection of SoftReferences for 91MB allocation
12-07 20:04:59.178 18524 28962 I art     : Starting a blocking GC Alloc
12-07 20:04:59.216 18524 28962 I art     : Alloc concurrent mark sweep GC freed 3(72B) AllocSpace objects, 0(0B) LOS objects, 12% free, 108MB/124MB, paused 509us total 37.197ms
12-07 20:04:59.216 18524 28962 I art     : Starting a blocking GC HomogeneousSpaceCompact
12-07 20:04:59.294 18524 28962 I art     : HomogeneousSpaceCompact marksweep + semispace GC freed 3(72B) AllocSpace objects, 0(0B) LOS objects, 12% free, 108MB/124MB, paused 77.453ms total 77.453ms
12-07 20:04:59.294 18524 28962 W art     : Throwing OutOfMemoryError "Failed to allocate a 96000012 byte allocation with 16777216 free bytes and 83MB until OOM"
12-07 20:04:59.324 18524 28962 W System.err: io.reactivex.exceptions.UndeliverableException: java.lang.OutOfMemoryError: Failed to allocate a 96000012 byte allocation with 16777216 free bytes and 83MB until OOM
12-07 20:04:59.329 18524 28962 W System.err: 	at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
12-07 20:04:59.330 18524 28962 W System.err: 	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:69)
12-07 20:04:59.330 18524 28962 W System.err: 	at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
12-07 20:04:59.330 18524 28962 W System.err: 	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
12-07 20:04:59.330 18524 28962 W System.err: 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
12-07 20:04:59.330 18524 28962 W System.err: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
12-07 20:04:59.330 18524 28962 W System.err: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
12-07 20:04:59.330 18524 28962 W System.err: 	at java.lang.Thread.run(Thread.java:761)
12-07 20:04:59.330 18524 28962 W System.err: Caused by: java.lang.OutOfMemoryError: Failed to allocate a 96000012 byte allocation with 16777216 free bytes and 83MB until OOM
12-07 20:04:59.331 18524 28962 W System.err: 	at fr.free.nrw.commons.utils.ImageUtils.checkIfImageIsDark(ImageUtils.java:117)
12-07 20:04:59.331 18524 28962 W System.err: 	at fr.free.nrw.commons.utils.ImageUtils.checkIfImageIsTooDark(ImageUtils.java:88)
12-07 20:04:59.331 18524 28962 W System.err: 	at fr.free.nrw.commons.upload.UploadModel$$Lambda$8.apply(Unknown Source)
12-07 20:04:59.332 18524 28962 W System.err: 	at io.reactivex.internal.operators.single.SingleMap$MapSingleObserver.onSuccess(SingleMap.java:57)
12-07 20:04:59.332 18524 28962 W System.err: 	at io.reactivex.internal.operators.single.SingleMap$MapSingleObserver.onSuccess(SingleMap.java:64)
12-07 20:04:59.332 18524 28962 W System.err: 	at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:56)
12-07 20:04:59.332 18524 28962 W System.err: 	at io.reactivex.Single.subscribe(Single.java:3394)
12-07 20:04:59.332 18524 28962 W System.err: 	at io.reactivex.internal.operators.single.SingleMap.subscribeActual(SingleMap.java:34)
12-07 20:04:59.333 18524 28962 W System.err: 	at io.reactivex.Single.subscribe(Single.java:3394)
12-07 20:04:59.333 18524 28962 W System.err: 	at io.reactivex.internal.operators.single.SingleMap.subscribeActual(SingleMap.java:34)
12-07 20:04:59.333 18524 28962 W System.err: 	at io.reactivex.Single.subscribe(Single.java:3394)
12-07 20:04:59.333 18524 28962 W System.err: 	at io.reactivex.internal.operators.single.SingleZipArray.subscribeActual(SingleZipArray.java:64)
12-07 20:04:59.333 18524 28962 W System.err: 	at io.reactivex.Single.subscribe(Single.java:3394)
12-07 20:04:59.333 18524 28962 W System.err: 	at io.reactivex.Single.subscribe(Single.java:3380)
12-07 20:04:59.333 18524 28962 W System.err: 	at io.reactivex.Single.subscribe(Single.java:3351)
12-07 20:04:59.333 18524 28962 W System.err: 	at fr.free.nrw.commons.upload.UploadModel.receiveDirect(UploadModel.java:133)
12-07 20:04:59.333 18524 28962 W System.err: 	at fr.free.nrw.commons.upload.UploadPresenter.lambda$receiveDirect$4$UploadPresenter(UploadPresenter.java:96)
12-07 20:04:59.333 18524 28962 W System.err: 	at fr.free.nrw.commons.upload.UploadPresenter$$Lambda$3.run(Unknown Source)
12-07 20:04:59.333 18524 28962 W System.err: 	at io.reactivex.internal.operators.completable.CompletableFromRunnable.subscribeActual(CompletableFromRunnable.java:35)
12-07 20:04:59.333 18524 28962 W System.err: 	at io.reactivex.Completable.subscribe(Completable.java:2171)
12-07 20:04:59.333 18524 28962 W System.err: 	at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(CompletableSubscribeOn.java:64)
12-07 20:04:59.333 18524 28962 W System.err: 	at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:579)
12-07 20:04:59.333 18524 28962 W System.err: 	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
12-07 20:04:59.333 18524 28962 W System.err: 	... 6 more
12-07 20:04:59.337 18524 28962 E AndroidRuntime: FATAL EXCEPTION: RxCachedThreadScheduler-11
12-07 20:04:59.337 18524 28962 E AndroidRuntime: Process: fr.free.nrw.commons, PID: 18524
12-07 20:04:59.337 18524 28962 E AndroidRuntime: io.reactivex.exceptions.UndeliverableException: java.lang.OutOfMemoryError: Failed to allocate a 96000012 byte allocation with 16777216 free bytes and 83MB until OOM
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:69)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at java.lang.Thread.run(Thread.java:761)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: Caused by: java.lang.OutOfMemoryError: Failed to allocate a 96000012 byte allocation with 16777216 free bytes and 83MB until OOM
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at fr.free.nrw.commons.utils.ImageUtils.checkIfImageIsDark(ImageUtils.java:117)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at fr.free.nrw.commons.utils.ImageUtils.checkIfImageIsTooDark(ImageUtils.java:88)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at fr.free.nrw.commons.upload.UploadModel$$Lambda$8.apply(Unknown Source)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.internal.operators.single.SingleMap$MapSingleObserver.onSuccess(SingleMap.java:57)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.internal.operators.single.SingleMap$MapSingleObserver.onSuccess(SingleMap.java:64)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:56)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.Single.subscribe(Single.java:3394)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.internal.operators.single.SingleMap.subscribeActual(SingleMap.java:34)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.Single.subscribe(Single.java:3394)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.internal.operators.single.SingleMap.subscribeActual(SingleMap.java:34)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.Single.subscribe(Single.java:3394)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.internal.operators.single.SingleZipArray.subscribeActual(SingleZipArray.java:64)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.Single.subscribe(Single.java:3394)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.Single.subscribe(Single.java:3380)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.Single.subscribe(Single.java:3351)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at fr.free.nrw.commons.upload.UploadModel.receiveDirect(UploadModel.java:133)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at fr.free.nrw.commons.upload.UploadPresenter.lambda$receiveDirect$4$UploadPresenter(UploadPresenter.java:96)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at fr.free.nrw.commons.upload.UploadPresenter$$Lambda$3.run(Unknown Source)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.internal.operators.completable.CompletableFromRunnable.subscribeActual(CompletableFromRunnable.java:35)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.Completable.subscribe(Completable.java:2171)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(CompletableSubscribeOn.java:64)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:579)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
12-07 20:04:59.337 18524 28962 E AndroidRuntime: 	... 6 more
12-07 20:04:59.346   786  7837 W ActivityManager:   Force finishing activity fr.free.nrw.commons/.upload.UploadActivity

Device and Android version:

LineageOS 2.7.1

Commons app version:

2.9.0 latest alpha

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Reactions: 1
  • Comments: 16 (16 by maintainers)

Most upvoted comments

This does not happen anymore, thanks for fixing, now I can upload my DSLR pictures 😃