-
Notifications
You must be signed in to change notification settings - Fork 575
Open
Labels
Description
Version
Media3 pre-release (alpha, beta or RC not in this list)
More version details
2ca41b0 (somewhat close to 1.8.0-alpha1)
Devices that reproduce the issue
According to Play Console:
Pixel 6a running Android 16
Fairphone 4 running Android 13
Samsung a52sxq running Android 14
Redmi Note 10 (sunny) running Android 12
around 0.10% of all users are affected, but my app has a rather small install base of 4850 users, make of that what you will (but I want to avoid reaching the bad behaviour threshold)
Devices that do not reproduce the issue
any of the devices I have :)
Reproducible in the demo app?
I'm not sure
Reproduction steps
I'm not sure, I can't repro this locally. In the code I just call setMediaItems, nothing special.
Expected result
No ANR
Actual result
ANR 1: Pixel 6a running Android 16
"main" tid=1 Native
#00 pc 0x00000000000dc848 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+8)
#01 pc 0x000000000007fd7c /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)
#02 pc 0x000000000006d484 /system/lib64/libbinder.so (android::IPCThreadState::transact+1572)
#03 pc 0x0000000000066088 /system/lib64/libbinder.so (android::BpBinder::transact+312)
#04 pc 0x00000000001ed708 /system/lib64/libandroid_runtime.so (android_os_BinderProxy_transact+152)
at android.os.BinderProxy.transactNative (Native method)
at android.os.BinderProxy.transact (BinderProxy.java:592)
at android.media.session.ISession$Stub$Proxy.setMetadata (ISession.java:526)
at android.media.session.MediaSession.setMetadata (MediaSession.java:523)
at androidx.media3.session.legacy.MediaSessionCompat$MediaSessionImplApi21.setMetadata (MediaSessionCompat.java:2069)
at androidx.media3.session.legacy.MediaSessionCompat.setMetadata (MediaSessionCompat.java:538)
at androidx.media3.session.MediaSessionLegacyStub.setMetadata (MediaSessionLegacyStub.java:976)
at androidx.media3.session.MediaSessionLegacyStub.access$1100 (MediaSessionLegacyStub.java:110)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast.updateMetadataIfChanged (MediaSessionLegacyStub.java:1440)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast.onTimelineChanged (MediaSessionLegacyStub.java:1247)
at androidx.media3.session.MediaSessionImpl$PlayerListener.lambda$onTimelineChanged$11 (MediaSessionImpl.java:1671)
at androidx.media3.session.MediaSessionImpl.dispatchRemoteControllerTaskToLegacyStub (MediaSessionImpl.java:1092)
at androidx.media3.session.MediaSessionImpl.access$300 (MediaSessionImpl.java:99)
at androidx.media3.session.MediaSessionImpl$PlayerListener.onTimelineChanged (MediaSessionImpl.java:1670)
at androidx.media3.common.ForwardingPlayer$ForwardingListener.onTimelineChanged (ForwardingPlayer.java:876)
at androidx.media3.common.ForwardingPlayer$ForwardingListener.onTimelineChanged (ForwardingPlayer.java:876)
at androidx.media3.exoplayer.ExoPlayerImpl.lambda$updatePlaybackInfo$14 (ExoPlayerImpl.java:2144)
at androidx.media3.common.util.ListenerSet$ListenerHolder.invoke (ListenerSet.java:342)
at androidx.media3.common.util.ListenerSet.lambda$queueEvent$0 (ListenerSet.java:226)
at androidx.media3.common.util.ListenerSet.flushEvents (ListenerSet.java:248)
at androidx.media3.exoplayer.ExoPlayerImpl.updatePlaybackInfo (ExoPlayerImpl.java:2235)
at androidx.media3.exoplayer.ExoPlayerImpl.setMediaSourcesInternal (ExoPlayerImpl.java:2451)
at androidx.media3.exoplayer.ExoPlayerImpl.setMediaSources (ExoPlayerImpl.java:620)
at androidx.media3.exoplayer.ExoPlayerImpl.setMediaItems (ExoPlayerImpl.java:578)
at androidx.media3.common.ForwardingPlayer.setMediaItems (ForwardingPlayer.java:111)
at org.akanework.gramophone.logic.GramophonePlaybackService.onCreate$lambda$9 (GramophonePlaybackService.java:465)
at org.akanework.gramophone.logic.utils.LastPlayedManagerKt$runCallback$1.invokeSuspend (LastPlayedManager.kt:319)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run (DispatchedTask.kt:101)
at android.os.Handler.handleCallback (Handler.java:995)
at android.os.Handler.dispatchMessage (Handler.java:103)
at android.os.Looper.dispatchMessage (Looper.java:315)
at android.os.Looper.loopOnce (Looper.java:251)
at android.os.Looper.loop (Looper.java:349)
at android.app.ActivityThread.main (ActivityThread.java:9200)
at java.lang.reflect.Method.invoke (Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:593)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:929)
ANR 2: Samsung a52sxq running Android 14, Redmi Note 10 (sunny) running Android 12
"main" tid=1 Native
#00 pc 0x00000000000dbf98 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+8)
#01 pc 0x0000000000095c08 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)
#02 pc 0x00000000000530b4 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver+292)
#03 pc 0x0000000000054328 /system/lib64/libbinder.so (android::IPCThreadState::waitForResponse+120)
#04 pc 0x0000000000054034 /system/lib64/libbinder.so (android::IPCThreadState::transact+224)
#05 pc 0x000000000004bb28 /system/lib64/libbinder.so (android::BpBinder::transact+240)
#06 pc 0x000000000016ac04 /system/lib64/libandroid_runtime.so (android_os_BinderProxy_transact+156)
at android.os.BinderProxy.transactNative (Native method)
at android.os.BinderProxy.transact (BinderProxy.java:624)
at android.media.session.ISession$Stub$Proxy.setMetadata (ISession.java:646)
at android.media.session.MediaSession.setMetadata (MediaSession.java:514)
at androidx.media3.session.legacy.MediaSessionCompat$MediaSessionImplApi21.setMetadata (MediaSessionCompat.java:2069)
at androidx.media3.session.legacy.MediaSessionCompat.setMetadata (MediaSessionCompat.java:538)
at androidx.media3.session.MediaSessionLegacyStub.setMetadata (MediaSessionLegacyStub.java:976)
at androidx.media3.session.MediaSessionLegacyStub.access$1100 (MediaSessionLegacyStub.java:110)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast.updateMetadataIfChanged (MediaSessionLegacyStub.java:1440)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast.onTimelineChanged (MediaSessionLegacyStub.java:1247)
at androidx.media3.session.MediaSessionImpl$PlayerListener.lambda$onTimelineChanged$11 (MediaSessionImpl.java:1671)
at androidx.media3.session.MediaSessionImpl.dispatchRemoteControllerTaskToLegacyStub (MediaSessionImpl.java:1092)
at androidx.media3.session.MediaSessionImpl.access$300 (MediaSessionImpl.java:99)
at androidx.media3.session.MediaSessionImpl$PlayerListener.onTimelineChanged (MediaSessionImpl.java:1670)
at androidx.media3.common.ForwardingPlayer$ForwardingListener.onTimelineChanged (ForwardingPlayer.java:876)
at androidx.media3.common.ForwardingPlayer$ForwardingListener.onTimelineChanged (ForwardingPlayer.java:876)
at androidx.media3.exoplayer.ExoPlayerImpl.lambda$updatePlaybackInfo$14 (ExoPlayerImpl.java:2144)
at androidx.media3.common.util.ListenerSet$ListenerHolder.invoke (ListenerSet.java:342)
at androidx.media3.common.util.ListenerSet.lambda$queueEvent$0 (ListenerSet.java:226)
at androidx.media3.common.util.ListenerSet.flushEvents (ListenerSet.java:248)
at androidx.media3.exoplayer.ExoPlayerImpl.updatePlaybackInfo (ExoPlayerImpl.java:2235)
at androidx.media3.exoplayer.ExoPlayerImpl.setMediaSourcesInternal (ExoPlayerImpl.java:2451)
at androidx.media3.exoplayer.ExoPlayerImpl.setMediaSources (ExoPlayerImpl.java:620)
at androidx.media3.exoplayer.ExoPlayerImpl.setMediaItems (ExoPlayerImpl.java:578)
at androidx.media3.common.ForwardingPlayer.setMediaItems (ForwardingPlayer.java:111)
at androidx.media3.common.ForwardingPlayer.setMediaItems (ForwardingPlayer.java:111)
at androidx.media3.session.PlayerWrapper.setMediaItems (PlayerWrapper.java:552)
at androidx.media3.session.MediaUtils.setMediaItemsWithStartIndexAndPosition (MediaUtils.java:204)
at androidx.media3.session.MediaSessionStub.lambda$handleMediaItemsWithStartPositionWhenReady$7 (MediaSessionStub.java:249)
at androidx.media3.session.MediaSessionImpl.lambda$callWithControllerForCurrentRequestSet$3 (MediaSessionImpl.java:355)
at androidx.media3.common.util.Util.lambda$postOrRunWithCompletion$0 (Util.java:831)
at androidx.media3.common.util.Util.postOrRun (Util.java:801)
at androidx.media3.common.util.Util.postOrRunWithCompletion (Util.java:824)
at androidx.media3.session.MediaSessionStub.lambda$handleMediaItemsWithStartPositionWhenReady$8 (MediaSessionStub.java:243)
at androidx.media3.common.util.Util.lambda$transformFutureAsync$2 (Util.java:887)
at com.google.common.util.concurrent.DirectExecutor.execute (DirectExecutor.java:31)
at com.google.common.util.concurrent.AbstractFuture.executeListener (AbstractFuture.java:1300)
at com.google.common.util.concurrent.AbstractFuture.addListener (AbstractFuture.java:764)
at androidx.media3.common.util.Util.transformFutureAsync (Util.java:870)
at androidx.media3.session.MediaSessionStub.lambda$handleMediaItemsWithStartPositionWhenReady$9 (MediaSessionStub.java:240)
at androidx.media3.session.MediaSessionStub.handleSessionTaskWhenReady (MediaSessionStub.java:423)
at androidx.media3.session.MediaSessionStub.lambda$sendSessionResultWhenReady$3 (MediaSessionStub.java:183)
at androidx.media3.session.MediaSessionStub.lambda$queueSessionTaskWithPlayerCommandForControllerInfo$13 (MediaSessionStub.java:342)
at androidx.media3.session.ConnectedControllersManager.lambda$flushCommandQueue$3 (ConnectedControllersManager.java:295)
at androidx.media3.session.MediaSessionImpl.lambda$callWithControllerForCurrentRequestSet$3 (MediaSessionImpl.java:355)
at androidx.media3.common.util.Util.postOrRun (Util.java:801)
at androidx.media3.session.ConnectedControllersManager.flushCommandQueue (ConnectedControllersManager.java:289)
at androidx.media3.session.ConnectedControllersManager.flushCommandQueue (ConnectedControllersManager.java:270)
at androidx.media3.session.MediaSessionStub.lambda$flushCommandQueue$64 (MediaSessionStub.java:1693)
at androidx.media3.common.util.Util.postOrRun (Util.java:801)
at androidx.media3.session.MediaSessionStub.flushCommandQueue (MediaSessionStub.java:1691)
at androidx.media3.session.MediaControllerImplBase$FlushCommandQueueHandler.flushCommandQueue (MediaControllerImplBase.java:3647)
at androidx.media3.session.MediaControllerImplBase$FlushCommandQueueHandler.handleMessage (MediaControllerImplBase.java:3640)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loopOnce (Looper.java:210)
at android.os.Looper.loop (Looper.java:299)
at android.app.ActivityThread.main (ActivityThread.java:8302)
at java.lang.reflect.Method.invoke (Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1037)
ANR 3: Fairphone 4 running Android 13
"main" tid=1 Native
#00 pc 0x00000000000a5c48 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+8)
#01 pc 0x000000000005caa0 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+160)
#02 pc 0x000000000005c2a0 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver+284)
#03 pc 0x000000000005d4fc /system/lib64/libbinder.so (android::IPCThreadState::waitForResponse+76)
#04 pc 0x000000000005d238 /system/lib64/libbinder.so (android::IPCThreadState::transact+224)
#05 pc 0x0000000000054a44 /system/lib64/libbinder.so (android::BpBinder::transact+192)
#06 pc 0x0000000000176ae8 /system/lib64/libandroid_runtime.so (android_os_BinderProxy_transact+156)
at android.os.BinderProxy.transactNative (Native method)
at android.os.BinderProxy.transact (BinderProxy.java:584)
at android.media.session.ISession$Stub$Proxy.setMetadata (ISession.java:524)
at android.media.session.MediaSession.setMetadata (MediaSession.java:514)
at androidx.media3.session.legacy.MediaSessionCompat$MediaSessionImplApi21.setMetadata (MediaSessionCompat.java:2069)
at androidx.media3.session.legacy.MediaSessionCompat.setMetadata (MediaSessionCompat.java:538)
at androidx.media3.session.MediaSessionLegacyStub.setMetadata (MediaSessionLegacyStub.java:976)
at androidx.media3.session.MediaSessionLegacyStub.access$1100 (MediaSessionLegacyStub.java:110)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast.updateMetadataIfChanged (MediaSessionLegacyStub.java:1440)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast.onTimelineChanged (MediaSessionLegacyStub.java:1247)
at androidx.media3.session.MediaSessionImpl$PlayerListener.lambda$onTimelineChanged$11 (MediaSessionImpl.java:1671)
at androidx.media3.session.MediaSessionImpl.dispatchRemoteControllerTaskToLegacyStub (MediaSessionImpl.java:1092)
at androidx.media3.session.MediaSessionImpl.access$300 (MediaSessionImpl.java:99)
at androidx.media3.session.MediaSessionImpl$PlayerListener.onTimelineChanged (MediaSessionImpl.java:1670)
at androidx.media3.common.ForwardingPlayer$ForwardingListener.onTimelineChanged (ForwardingPlayer.java:876)
at androidx.media3.common.ForwardingPlayer$ForwardingListener.onTimelineChanged (ForwardingPlayer.java:876)
at androidx.media3.exoplayer.ExoPlayerImpl.lambda$updatePlaybackInfo$14 (ExoPlayerImpl.java:2144)
at androidx.media3.common.util.ListenerSet$ListenerHolder.invoke (ListenerSet.java:342)
at androidx.media3.common.util.ListenerSet.lambda$queueEvent$0 (ListenerSet.java:226)
at androidx.media3.common.util.ListenerSet.flushEvents (ListenerSet.java:248)
at androidx.media3.exoplayer.ExoPlayerImpl.updatePlaybackInfo (ExoPlayerImpl.java:2235)
at androidx.media3.exoplayer.ExoPlayerImpl.handlePlaybackInfo (ExoPlayerImpl.java:2069)
at androidx.media3.exoplayer.ExoPlayerImpl.lambda$new$1 (ExoPlayerImpl.java:353)
at android.os.Handler.handleCallback (Handler.java:942)
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:7932)
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:942)
Media
N/A
Bug Report
- You will email the zip file produced by
adb bugreport
to android-media-github@google.com after filing this issue.