bumptech / bumptech/glide

ANR: com.bumptech.glide.request.BaseRequestOptions.clone

Open
#5,445 0 comments 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

**Integration libraries**:
N/A

**Device/Android Version**:
Android TV/Android 12

**Issue details / Repro steps / Use case background**:
No direct reproduction but reported by PlayStore vitals. It appears to be a lock contention issue in `com.bumptech.glide.RequestManager.onStart` where `com.bumptech.glide.RequestManager.` is still holding a lock. This causes an ANR to occur as `RequestManager.onStart()` runs on the main thread.

**Glide load line / `GlideModule` (if any) / list Adapter code (if any)**:
```kotlin
Glide.with(this) // this is a LinearLayout/LifecycleObserver
.asGif()
.load(R.drawable.loadingboxlooptt)
.into(findViewById(R.id.loadingDots))
.clearOnDetach()
```

**Layout XML**:
```xml

```

**Stack trace / LogCat**:
```ruby
"main" tid=1 Blocked
at com.bumptech.glide.RequestManager.onStart (RequestManager.java)
at com.bumptech.glide.manager.ApplicationLifecycle.addListener (ApplicationLifecycle.java)
at com.bumptech.glide.load.engine.ActiveResources$2.run (ActiveResources.java)
at android.os.Handler.handleCallback (Handler.java:938)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loopOnce (Looper.java:201)
at android.os.Looper.loop (Looper.java:288)
at android.app.ActivityThread.main (ActivityThread.java:7839)
at java.lang.reflect.Method.invoke (Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1006)

"glide-source-thread-0" tid=58 Runnable
at androidx.collection.ArraySet$1.colGetSize (ArraySet.java)
at androidx.collection.MapCollections$MapIterator. (MapCollections.java)
at androidx.collection.MapCollections$KeySet.iterator (MapCollections.java)
at androidx.collection.ArrayMap.putAll (ArrayMap.java)
at com.bumptech.glide.request.BaseRequestOptions.clone (BaseRequestOptions.java)
at com.bumptech.glide.RequestManager. (RequestManager.java)
at com.bumptech.glide.manager.RequestManagerRetriever.get (RequestManagerRetriever.java)
at com.bumptech.glide.load.resource.gif.GifFrameLoader. (GifFrameLoader.java)
at com.bumptech.glide.load.resource.gif.ByteBufferGifDecoder.decode (ByteBufferGifDecoder.java)
at com.bumptech.glide.load.resource.gif.ByteBufferGifDecoder.decode (ByteBufferGifDecoder.java)
at com.bumptech.glide.load.resource.gif.StreamGifDecoder.decode (StreamGifDecoder.java)
at com.bumptech.glide.load.engine.DecodePath.decodeResourceWithList (DecodePath.java)
at com.bumptech.glide.load.engine.DecodePath.decode (DecodePath.java)
at com.bumptech.glide.load.engine.LoadPath.load (LoadPath.java)
at com.bumptech.glide.load.engine.DecodeJob.decodeFromFetcher (DecodeJob.java)
at com.bumptech.glide.load.engine.DecodeJob.decodeFromData (DecodeJob.java)
at com.bumptech.glide.load.engine.DecodeJob.decodeFromRetrievedData (DecodeJob.java)
at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherReady (DecodeJob.java)
at com.bumptech.glide.load.engine.SourceGenerator$1.onDataReady (SourceGenerator.java)
at com.bumptech.glide.load.model.DirectResourceLoader$ResourceDataFetcher.loadData (DirectResourceLoader.java)
at com.bumptech.glide.load.engine.SourceGenerator.startNext (SourceGenerator.java)
at com.bumptech.glide.load.engine.DecodeJob.runGenerators (DecodeJob.java)
at com.bumptech.glide.load.engine.DecodeJob.runWrapped (DecodeJob.java)
at com.bumptech.glide.load.engine.DecodeJob.run (DecodeJob.java)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at java.lang.Thread.run (Thread.java:920)
at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultPriorityThreadFactory$1.run (GlideExecutor.java)
```

![Screenshot 2024-09-06 at 01 27 23](https://github.com/user-attachments/assets/d3ca3e3e-7150-474a-bc91-61a69a7767c1)

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.