client-sdk-android icon indicating copy to clipboard operation
client-sdk-android copied to clipboard

ConcurrentModificationException

Open fiather opened this issue 1 year ago • 1 comments

Occurs when a call is terminated or a new participant is created

Device Info:

  • Device: SM-S908
  • OS: [e.g. Android 13
  • LiveKit SDK version: 1.2.1

08-28 11:57:54.156 E 11575  12158  AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-3  08-28 11:57:54.156 E 11575  12158  AndroidRuntime: Process: com.samsung.android.app.mango, PID: 11575  08-28 11:57:54.156 E 11575  12158  AndroidRuntime: java.util.ConcurrentModificationException  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at java.util.ArrayList$Itr.next(ArrayList.java:860)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at io.livekit.android.room.track.VideoTrack.stop(VideoTrack.kt:27)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at io.livekit.android.room.track.RemoteVideoTrack.stop(RemoteVideoTrack.kt:68)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at io.livekit.android.room.participant.RemoteParticipant.unpublishTrack(RemoteParticipant.kt:159)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at io.livekit.android.room.Room.handleParticipantDisconnect(Room.kt:316)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at io.livekit.android.room.Room.onUpdateParticipants(Room.kt:690)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at io.livekit.android.room.RTCEngine.onParticipantUpdate(RTCEngine.kt:745)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at io.livekit.android.room.SignalClient.handleSignalResponseImpl(SignalClient.kt:567)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at io.livekit.android.room.SignalClient.access$handleSignalResponseImpl(SignalClient.kt:39)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at io.livekit.android.room.SignalClient$onReadyForResponses$1$1.emit(SignalClient.kt:190)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at io.livekit.android.room.SignalClient$onReadyForResponses$1$1.emit(SignalClient.kt:188)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at kotlinx.coroutines.flow.SharedFlowImpl.collect$suspendImpl(SharedFlow.kt:383)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at kotlinx.coroutines.flow.SharedFlowImpl$collect$1.invokeSuspend(Unknown Source:15)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)  08-28 11:57:54.156 E 11575  12158  AndroidRuntime:     Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@98db374, Dispatchers.IO] 

override fun stop() { for (sink in sinks) { rtcTrack.removeSink(sink) } sinks.clear() super.stop() }

when the stop method of videoTrack operates, methods such as addRenderer and removeRenderer access the sink. At this time, exception may occur due to their methods.

it seems that it needs to be modified so that it cannot be accessed at the same time such as semaphore, mutex, etc.

fiather avatar Aug 28 '23 03:08 fiather

I find same question

Oliver-WJ avatar Nov 03 '23 07:11 Oliver-WJ