Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ANR in setScreenShareEnabled(false) #565

Open
dcarr622 opened this issue Dec 19, 2024 · 1 comment
Open

ANR in setScreenShareEnabled(false) #565

dcarr622 opened this issue Dec 19, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@dcarr622
Copy link

Describe the bug
We're seeing this in our crash reporting data; pretty low frequency

This is happening when setScreenShareEnabled(false) is called

To Reproduce
We don't have repro steps, unfortunately

Device Info:

  • Seen on at least Android 11, 14, 15 on Samsung devices

Additional context

at jdk.internal.misc.Unsafe.park (Native method)
 at java.util.concurrent.locks.LockSupport.park (LockSupport.java:211)
 at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire (AbstractQueuedSynchronizer.java:715)
 at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly (AbstractQueuedSynchronizer.java:1047)
 at java.util.concurrent.CountDownLatch.await (CountDownLatch.java:230)
 at livekit.org.webrtc.ThreadUtils$2.run (ThreadUtils.java:118)
 at livekit.org.webrtc.ThreadUtils.executeUninterruptibly (ThreadUtils.java:68)
 at livekit.org.webrtc.ThreadUtils.awaitUninterruptibly (ThreadUtils.java:115)
 at livekit.org.webrtc.ThreadUtils.invokeAtFrontUninterruptibly (ThreadUtils.java:180)
 at livekit.org.webrtc.ThreadUtils.invokeAtFrontUninterruptibly (ThreadUtils.java:196)
 at livekit.org.webrtc.ScreenCapturerAndroid.stopCapture (ScreenCapturerAndroid.java:128)
 at io.livekit.android.room.track.LocalVideoTrack.stop (LocalVideoTrack.kt:135)
 at io.livekit.android.room.track.LocalScreencastVideoTrack.stop (LocalScreencastVideoTrack.kt:96)
 at io.livekit.android.room.participant.LocalParticipant.unpublishTrack (LocalParticipant.kt:682)
 at io.livekit.android.room.participant.LocalParticipant.unpublishTrack$default (LocalParticipant.kt:662)
 at io.livekit.android.room.participant.LocalParticipant.setTrackEnabled (LocalParticipant.kt:309)
 at io.livekit.android.room.participant.LocalParticipant.setScreenShareEnabled (LocalParticipant.kt:259)
 at io.livekit.android.room.participant.LocalParticipant.setScreenShareEnabled$default (LocalParticipant.java:255)
<>
 at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (ContinuationImpl.kt:33)
 at kotlinx.coroutines.DispatchedTask.run (DispatchedTask.kt:101)
 at kotlinx.coroutines.EventLoop.processUnconfinedEvent (EventLoop.java:65)
 at kotlinx.coroutines.DispatchedTaskKt.resumeUnconfined (DispatchedTask.kt:231)
 at kotlinx.coroutines.DispatchedTaskKt.dispatch (DispatchedTask.kt:149)
 at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume (CancellableContinuationImpl.kt:470)
 at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core (CancellableContinuationImpl.kt:504)
 at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core$default (CancellableContinuationImpl.kt:493)
 at kotlinx.coroutines.CancellableContinuationImpl.resumeWith (CancellableContinuationImpl.kt:359)
 at kotlinx.coroutines.flow.SharedFlowImpl.tryEmit (SharedFlow.kt:414)
<>
 at androidx.compose.foundation.ClickableNode$clickPointerInput$3.invoke-k-4lQ0M (Clickable.kt:639)
 at androidx.compose.foundation.ClickableNode$clickPointerInput$3.invoke (Clickable.kt:633)
 at androidx.compose.foundation.gestures.TapGestureDetectorKt$detectTapAndPress$2$1.invokeSuspend (TapGestureDetector.kt:255)
 at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (ContinuationImpl.kt:33)
 at kotlinx.coroutines.DispatchedTaskKt.resume (DispatchedTask.kt:165)
 at kotlinx.coroutines.DispatchedTaskKt.dispatch (DispatchedTask.kt:154)
 at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume (CancellableContinuationImpl.kt:470)
 at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core (CancellableContinuationImpl.kt:504)
 at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core$default (CancellableContinuationImpl.kt:493)
 at kotlinx.coroutines.CancellableContinuationImpl.resumeWith (CancellableContinuationImpl.kt:359)
 at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine.offerPointerEvent (SuspendingPointerInputModifierNodeImpl.java:719)
 at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.dispatchPointerEvent (SuspendingPointerInputFilter.kt:598)
 at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.onPointerEvent-H0pRuoY (SuspendingPointerInputFilter.kt:620)
 at androidx.compose.foundation.AbstractClickableNode.onPointerEvent-H0pRuoY (Clickable.kt:1044)
 at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass (HitPathTracker.kt:387)
 at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass (HitPathTracker.kt:373)
 at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass (HitPathTracker.kt:373)
 at androidx.compose.ui.input.pointer.NodeParent.dispatchMainEventPass (NodeParent.java:229)
 at androidx.compose.ui.input.pointer.HitPathTracker.dispatchChanges (HitPathTracker.java:144)
 at androidx.compose.ui.input.pointer.PointerInputEventProcessor.process-BIzXfog (PointerInputEventProcessor.java:120)
 at androidx.compose.ui.platform.AndroidComposeView.sendMotionEvent-8iAsVTc (AndroidComposeView.android.kt:1993)
 at androidx.compose.ui.platform.AndroidComposeView.handleMotionEvent-8iAsVTc (AndroidComposeView.android.kt:1944)
 at androidx.compose.ui.platform.AndroidComposeView.dispatchTouchEvent (AndroidComposeView.android.kt:1828)
 at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3352)
 at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3022)
 at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3352)
 at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3022)
 at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3352)
 at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3022)
 at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3352)
 at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3022)
 at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3352)
 at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3022)
 at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3352)
 at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3022)
 at com.android.internal.policy.DecorView.superDispatchTouchEvent (DecorView.java:794)
 at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1967)
 at android.app.Activity.dispatchTouchEvent (Activity.java:4571)
 at com.datadog.android.rum.internal.instrumentation.gestures.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.kt:69)
 at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.kt:69)
 at io.sentry.android.core.internal.gestures.WindowCallbackAdapter.dispatchTouchEvent (WindowCallbackAdapter.java:39)
 at io.sentry.android.core.internal.gestures.SentryWindowCallback.dispatchTouchEvent (SentryWindowCallback.java:64)
 at com.android.internal.policy.DecorView.dispatchTouchEvent (DecorView.java:752)
 at android.view.View.dispatchPointerEvent (View.java:16498)
 at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:8676)
 at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:8423)
 at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:7752)
 at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:7809)
 at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:7775)
 at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:7978)
 at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:7783)
 at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:8035)
 at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:7756)
 at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:7809)
 at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:7775)
 at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:7783)
 at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:7756)
 at android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:11343)
 at android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:11212)
 at android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:11168)
 at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:11477)
 at android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:337)
 at android.os.MessageQueue.nativePollOnce (Native method)
 at android.os.MessageQueue.next (MessageQueue.java:335)
 at android.os.Looper.loopOnce (Looper.java:187)
 at android.os.Looper.loop (Looper.java:319)
 at android.app.ActivityThread.main (ActivityThread.java:9063)
 at java.lang.reflect.Method.invoke (Native method)
 at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:588)
 at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1103)

@dcarr622 dcarr622 added the bug Something isn't working label Dec 19, 2024
@davidliu
Copy link
Contributor

davidliu commented Jan 8, 2025

@dcarr622 would you happen to have any of the ANR stack traces information available? Would help if I could see what the other threads are doing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants