bumptech / bumptech/glide

Big PNG can't be decoded: Mark has been invalidated

Open
#5,383 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
35k
Forks
6.2k
Avg merge
1d 11h
Merged PRs (30d)
8

Description

**Glide Version**:
4.16.0
(same with 5.0.0-rc01)

**Integration libraries**:
No

**Device/Android Version**:
Android 12

**Issue details / Repro steps / Use case background**:
Attached big image can't be loaded.
It seems that hardcoded 5MB mark limit was reached
in RecyclableBufferedInputStream, and loader can't recover from this with large image.

Attached image:
![noise](https://github.com/bumptech/glide/assets/3145438/00ce335f-237e-4216-b0e1-3a5b53780eb0)

**Glide load line / `GlideModule` (if any) / list Adapter code (if any)**:
```java
Glide.with(itemView.context)
.load(file)
.into(preview)
```

**Layout XML**:
```xml


...
```

**Stack trace / LogCat**:
```
11:34:06.423 System.err W com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream$InvalidMarkException: Mark has been invalidated, pos: 3895959 markLimit: 5242880
11:34:06.426 W at com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream.reset(RecyclableBufferedInputStream.java:344)
11:34:06.429 W at com.bumptech.glide.load.ImageHeaderParserUtils$5.getOrientationAndRewind(ImageHeaderParserUtils.java:184)
11:34:06.432 W at com.bumptech.glide.load.ImageHeaderParserUtils.getOrientationInternal(ImageHeaderParserUtils.java:229)
11:34:06.435 W at com.bumptech.glide.load.ImageHeaderParserUtils.getOrientation(ImageHeaderParserUtils.java:176)
11:34:06.437 W at com.bumptech.glide.load.resource.bitmap.ImageReader$InputStreamImageReader.getImageOrientation(ImageReader.java:204)
11:34:06.438 W at com.bumptech.glide.load.resource.bitmap.Downsampler.decodeFromWrappedStreams(Downsampler.java:330)
11:34:06.439 W at com.bumptech.glide.load.resource.bitmap.Downsampler.decode(Downsampler.java:285)
11:34:06.440 W at com.bumptech.glide.load.resource.bitmap.Downsampler.decode(Downsampler.java:222)
11:34:06.441 W at com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder.decode(StreamBitmapDecoder.java:62)
11:34:06.442 W at com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder.decode(StreamBitmapDecoder.java:18)
11:34:06.443 W at com.bumptech.glide.load.resource.bitmap.BitmapDrawableDecoder.decode(BitmapDrawableDecoder.java:58)
11:34:06.444 W at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList(DecodePath.java:92)
11:34:06.445 W at com.bumptech.glide.load.engine.DecodePath.decodeResource(DecodePath.java:70)
11:34:06.445 W at com.bumptech.glide.load.engine.DecodePath.decode(DecodePath.java:59)
11:34:06.446 W at com.bumptech.glide.load.engine.LoadPath.loadWithExceptionList(LoadPath.java:76)
11:34:06.447 W at com.bumptech.glide.load.engine.LoadPath.load(LoadPath.java:57)
11:34:06.447 W at com.bumptech.glide.load.engine.DecodeJob.runLoadPath(DecodeJob.java:539)
11:34:06.448 W at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher(DecodeJob.java:503)
11:34:06.449 W at com.bumptech.glide.load.engine.DecodeJob.decodeFromData(DecodeJob.java:489)
11:34:06.450 W at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData(DecodeJob.java:434)
11:34:06.451 W at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady(DecodeJob.java:399)
11:34:06.451 W at com.bumptech.glide.load.engine.SourceGenerator.onDataReadyInternal(SourceGenerator.java:211)
11:34:06.452 W at com.bumptech.glide.load.engine.SourceGenerator$1.onDataReady(SourceGenerator.java:101)
11:34:06.453 W at com.bumptech.glide.StorageFileModelLoader$Fetcher.loadData(GlideModule.kt:151)
11:34:06.454 W at com.bumptech.glide.load.engine.SourceGenerator.startNextLoad(SourceGenerator.java:95)
11:34:06.454 W at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:88)
11:34:06.455 W at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:311)
11:34:06.455 W at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:280)
11:34:06.456 W at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:235)
11:34:06.457 W at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
11:34:06.457 W at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
11:34:06.458 W at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:424)
11:34:06.458 W at java.lang.Thread.run(Thread.java:920)
11:34:06.459 W at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultPriorityThreadFactory$1.run(GlideExecutor.java:383)
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.