Issue 1:
Glide Version:

3.7

Integration libraries:

okhttp3

Device/Android Version:

Galaxy Nexus 4.1.1 API 16 720X1250 on Genymotion emulator

Issue details / Repro steps / Use case background:

Glide load line / GlideModule (if any) / list Adapter code (if any):

Glide.with...

I download the image from network by glide. The ui has a viewpager. The viewPager contains some fragments. When I exit from activity some times, I view the memory from device motiors ( I click the GC some times), the activity exists.

If I remove the glide, test as above, the activity doesn't exist.

In adapter, I call Glide.with(Fragment). When I debug, it call RequestManager.onDestroy().

I find that when call removeCallback() in EngineJob, the hasResource is true. so it can't be removed.

Layout XML:

<FrameLayout xmlns:android="...

Stack trace / LogCat:

* com.energysh.drawshow.activity.MainActivity has leaked:
* GC ROOT thread com.bumptech.glide.load.engine.executor.FifoPriorityThreadPoolExecutor$DefaultThreadFactory$1.<Java Local> (named 'fifo-pool-thread-0')
* references com.bumptech.glide.load.engine.executor.FifoPriorityThreadPoolExecutor$LoadTask.sync
* references java.util.concurrent.FutureTask$Sync.callable
* references java.util.concurrent.Executors$RunnableAdapter.task
* references com.bumptech.glide.load.engine.EngineRunnable.manager
* references com.bumptech.glide.load.engine.EngineJob.cbs
* references java.util.ArrayList.array
* references array java.lang.Object[].[0]
* references com.bumptech.glide.request.GenericRequest.target
* references com.bumptech.glide.request.target.GlideDrawableImageViewTarget.view
* references android.support.v7.widget.AppCompatImageView.mParent
* references android.widget.RelativeLayout.mContext
* leaks com.energysh.drawshow.activity.MainActivity instance

* Reference Key: 8d2d5a37-792b-4483-b624-0e9591d16137
* Device: Genymotion generic Google Galaxy Nexus - 4.1.1 - API 16 - 720x1280 vbox86p
* Android Version: 4.1.1 API: 16
* Durations: watch=5032ms, gc=118ms, heap dump=185ms, analysis=10329ms

Issue 2:
In com.example:2.0:45.
* com.example.ArtistActivity has leaked:
* GC ROOT thread com.bumptech.glide.load.engine.executor.FifoPriorityThreadPoolExecutor$DefaultThreadFactory$1.<Java Local> (named 'fifo-pool-thread-0')
* references com.bumptech.glide.load.engine.executor.FifoPriorityThreadPoolExecutor$LoadTask.sync
* references java.util.concurrent.FutureTask$Sync.callable
* references java.util.concurrent.Executors$RunnableAdapter.task
* references com.bumptech.glide.load.engine.EngineRunnable.manager
* references com.bumptech.glide.load.engine.EngineJob.cbs
* references java.util.ArrayList.array
* references array java.lang.Object[].[0]
* references com.bumptech.glide.request.GenericRequest.target
* references com.bumptech.glide.request.target.GlideDrawableImageViewTarget.view
* references android.widget.ImageView.mContext
* references android.support.v7.internal.view.ContextThemeWrapper.mBase
* leaks com.example.ArtistActivity instance

Leak Canary just found that memory leak in my app and it looks like it's related to Glide.

This call is not doing anything fancy:

Glide.with(heroImage.getContext())
.load("http://....")
.into(heroImage);

I only reproduced the issue on API 16.

Any ideas?