media icon indicating copy to clipboard operation
media copied to clipboard

Crash due to prewarming - flush() is valid only at Executing states; currently at Released state

Open AradiPatrik opened this issue 10 months ago • 3 comments

Version

Media3 pre-release (alpha, beta or RC not in this list)

More version details

1.6.0-beta01

Devices that reproduce the issue

OS version: android15 Model:Galaxy S25 Ultra

OS version: android14 Model:Pixel 4a (5G)

Devices that do not reproduce the issue

No response

Reproducible in the demo app?

Yes

Reproduction steps

I think this happens when the user leaves a screen that had an exoplayer playing with prewarming renderers enabled. This crash shows up in crashlytics for me with high frequency but I can't reproduce it on my device.

Expected result

no crash

Actual result

        Fatal Exception: java.lang.IllegalStateException: flush() is valid only at Executing states; currently at Released state

       at android.media.MediaCodec.native_flush(MediaCodec.java)
       at android.media.MediaCodec.flush(MediaCodec.java:2504)
       at androidx.media3.exoplayer.mediacodec.AsynchronousMediaCodecAdapter.flush(AsynchronousMediaCodecAdapter.java:272)
       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.flushCodec(MediaCodecRenderer.java:968)
       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.flushOrReleaseCodec(MediaCodecRenderer.java:961)
       at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.onDisabled(MediaCodecRenderer.java:784)
       at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.onDisabled(MediaCodecVideoRenderer.java:1026)
       at androidx.media3.exoplayer.BaseRenderer.disable(BaseRenderer.java:244)
       at androidx.media3.exoplayer.RendererHolder.disableRenderer(RendererHolder.java:645)
       at androidx.media3.exoplayer.RendererHolder.disablePrewarming(RendererHolder.java:586)
       at androidx.media3.exoplayer.ExoPlayerImplInternal.disableAndResetPrewarmingRenderers(ExoPlayerImplInternal.java:1984)
       at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:731)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loopOnce(Looper.java:205)
       at android.os.Looper.loop(Looper.java:294)
       at android.os.HandlerThread.run(HandlerThread.java:67)
        
       at androidx.media3.exoplayer.RendererHolder.disableRenderer(RendererHolder.java:645)
       at androidx.media3.exoplayer.RendererHolder.disablePrewarming(RendererHolder.java:586)
       at androidx.media3.exoplayer.ExoPlayerImplInternal.disableAndResetPrewarmingRenderers(ExoPlayerImplInternal.java:1984)
       at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:731)

☝ this part makes me suspect that the issue relates to prewarming

Media

unknown - stack trace should provide enough information to figure out what's going wrong

Bug Report

  • [ ] You will email the zip file produced by adb bugreport to [email protected] after filing this issue.

AradiPatrik avatar Mar 17 '25 03:03 AradiPatrik

@AradiPatrik

Thank you for reporting your issue. Based on the trace, it appears that the error is thrown in the logical path that is disabling pre-warming due to some other thrown error while pre-warming. For instance, if ExoPlayer received an decoder initalization error while setting up for pre-warming, it would disable pre-warming and fallback to original paths for playback.

Therefore, it would be helpful to identify the original issue that caused ExoPlayer to start disabling pre-warming.

Can you provide additional details of your setup? Are you just running a generic ExoPlayer with pre-warming enabled? Are you trying to use Effects? Could you supply a full bug-report of the reproduced issue?

microkatz avatar Mar 19 '25 13:03 microkatz

@microkatz Thanks for checking. I'm not using any effects. I only use a pre-warming exoplayer with a single media item inside it. So far I only see the stacktrace in crashlytics and couldn't find out how to reproduce it locally, I'll let you know when I find out more.

AradiPatrik avatar Mar 20 '25 02:03 AradiPatrik

facing same issue

AwaisQazii avatar Jun 10 '25 07:06 AwaisQazii