signalapp / Signal-Android

A private messenger for Android.
https://signal.org
GNU Affero General Public License v3.0
25.48k stars 6.1k forks source link

Cannot send Photos larger or equal to 8 MB in size #10074

Open reieRMeister opened 3 years ago

reieRMeister commented 3 years ago

Bug description

When adding photos from my Android 10 device all images larger or equal to 8 MB in size are not rendered and when selected they are not sent.

Steps to reproduce

Actual result: scroll through the list of photos and notice some empty tiles where images should be shown Expected result: scroll through the list of photos and notice all images are shown (even those larger than 8 MB)

Device info

Device: Motorola G8 Plus Android version: 10 (20e48, QPI30.28-Q3-28-26) Signal version: 4.72.5

Link to debug log

https://debuglogs.org/10f78b2a85da75561840fbdd91ab448ac9f527cd5569793b3096cec71ccf5506

reieRMeister commented 3 years ago

A side node to this: When resizing the images that cannot be shown/sent with a third party app the resized images are visible and can be sent.

stale[bot] commented 2 years ago

Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

qftlzxfz commented 1 year ago

Hello, this issue still exists in Signal version 6.3.6. The photo is not displayed in the preview and cannot be resized from within Signal (as other images and photos). When sending the message with a large photo, it is not delivered.

alex-signal commented 1 year ago

Hi! Unfortunately the linked debug log has expired. If other folk are encountering this issue, please submit a new debug log and link it here!

qftlzxfz commented 1 year ago

Thank you, Alex. Are you saying that you cannot reproduce the issue? I have large .heic images on my mobile and is completely reproducible.

When in the Android gallery and choosing share with Signal, the preview does not show and Signal fails with the delivery.

When in Signal and using the + button to choose an image, the thumbnails do not even show.

cody-signal commented 1 year ago

@qftlzxfz are you able to reproduce the issue with non-HEIC images? HEIC and our image loading dependency do not get along and fail often regardless of size unfortunately.

https://github.com/bumptech/glide/issues?q=is%3Aissue+is%3Aopen+heic

qftlzxfz commented 1 year ago

Hello Cody! I tried with a couple of images of various sizes. All JPEG images load fine, even a 13.9 MB one (9248 × 6936 pixels), that I converted from HEIC. From the 4 HEIC images only the smallest (3.9 MB; 2604 × 4624 pixels) is handled correctly by Signal. So, it is not only the file size, but the combination of HEIC and file size. Shall I open a new ticket?

Ged-fi commented 9 months ago

20231205_202450

@cody-signal I ran across this issue on a new Sony Xperia 5 V, which frequently produces photos bigger than 8 MB. This makes it impossible to view or share such pictures.

Attaching a rather inconspicuous picture of a beer can to demonstrate. To reproduce, you might have to use an SD card as well - not sure if that's related, though.

Edit: This is not a HEIC file, but a standard jpeg directly from the camera.

manuc66 commented 4 months ago

Hello

I have this bug too, here is the log https://debuglogs.org/android/7.5.2/de22611031a58ee81a2d58516eaa5d42c88a27feca79f37abcd15def312c5f52

If you need you can try to send this picture https://mega.nz/file/PQ433T5R#boBL2QeEcwRZL2CxMD-WjO-xA-5l8zt4QFnxDxviNH0

I would spot this as related to the issue:

[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil: com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream$InvalidMarkException: Mark has been invalidated, pos: 338 markLimit: 5242880
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.reset(RecyclableBufferedInputStream.java:344)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.data.InputStreamRewinder.rewindAndGet(InputStreamRewinder.java:31)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.resource.bitmap.ImageReader$InputStreamImageReader.getImageOrientation(ImageReader.java:205)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.resource.bitmap.Downsampler.decodeFromWrappedStreams(Downsampler.java:330)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.resource.bitmap.Downsampler.decode(Downsampler.java:285)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.resource.bitmap.Downsampler.decode(Downsampler.java:222)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder.decode(StreamBitmapDecoder.java:62)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder.decode(StreamBitmapDecoder.java:18)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:92)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:70)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:59)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:76)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:57)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:539)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:503)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:489)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:434)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:399)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.SourceGenerator.onDataReadyInternal(SourceGenerator.java:211)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.SourceGenerator$1.onDataReady(SourceGenerator.java:101)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.data.LocalUriFetcher.loadData(LocalUriFetcher.java:45)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.SourceGenerator.startNextLoad(SourceGenerator.java:95)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:88)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:311)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:277)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:235)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:424)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at java.lang.Thread.run(Thread.java:1012)
[7.5.2] [327  ] 2024-05-04 22:19:23.530 GMT+02:00 I ImageCompressionUtil:   at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultPriorityThreadFactory$1.run(GlideExecutor.java:383)

Given the exception message I would say that it's quite similar to this issue : https://github.com/bumptech/glide/issues/4755