When creating a room containing 6-8 users, and one user frequently connects and disconnects the room, about 30 times, other users will have the following exception:
android.opengl.GLException: Failed to create EGL context: 0x3000
at org.webrtc.EglBase14Impl.createEglContext(EglBase14Impl.java:268)
at org.webrtc.EglBase14Impl.(EglBase14Impl.java:63)
at org.webrtc.EglBase.createEgl14(EglBase.java:213)
at org.webrtc.EglBase.create(EglBase.java:156)
at org.webrtc.EglRenderer.lambda$init$0$org-webrtc-EglRenderer(EglRenderer.java:241)
at org.webrtc.EglRenderer$$ExternalSyntheticLambda7.run(Unknown Source:6)
at org.webrtc.ThreadUtils$4.call(ThreadUtils.java:199)
at org.webrtc.ThreadUtils$4.call(ThreadUtils.java:196)
at org.webrtc.ThreadUtils$3.run(ThreadUtils.java:173)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at org.webrtc.EglRenderer$HandlerWithExceptionCallback.dispatchMessage(EglRenderer.java:103)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.os.HandlerThread.run(HandlerThread.java:67)
at org.webrtc.ThreadUtils.invokeAtFrontUninterruptibly(ThreadUtils.java:184)
at org.webrtc.ThreadUtils.invokeAtFrontUninterruptibly(ThreadUtils.java:196)
at org.webrtc.EglRenderer.init(EglRenderer.java:232)
at org.webrtc.EglRenderer.init(EglRenderer.java:259)
at org.webrtc.SurfaceEglRenderer.init(SurfaceEglRenderer.java:61)
at io.livekit.android.renderer.TextureViewRenderer.init(TextureViewRenderer.kt:91)
at io.livekit.android.renderer.TextureViewRenderer.init$default(TextureViewRenderer.kt:81)
at io.livekit.android.room.Room.initVideoRenderer(Room.kt:1029)
The debugging information shows that in the ParticipantItem class, setupVideoIfNeeded will be called to bind new tracks for all users, and then all old tracks will be unbind. It is suspected that there is a bug in removeRenderer and the EGL context is not released correctly.
When creating a room containing 6-8 users, and one user frequently connects and disconnects the room, about 30 times, other users will have the following exception:
android.opengl.GLException: Failed to create EGL context: 0x3000 at org.webrtc.EglBase14Impl.createEglContext(EglBase14Impl.java:268) at org.webrtc.EglBase14Impl.(EglBase14Impl.java:63)
at org.webrtc.EglBase.createEgl14(EglBase.java:213)
at org.webrtc.EglBase.create(EglBase.java:156)
at org.webrtc.EglRenderer.lambda$init$0$org-webrtc-EglRenderer(EglRenderer.java:241)
at org.webrtc.EglRenderer$$ExternalSyntheticLambda7.run(Unknown Source:6)
at org.webrtc.ThreadUtils$4.call(ThreadUtils.java:199)
at org.webrtc.ThreadUtils$4.call(ThreadUtils.java:196)
at org.webrtc.ThreadUtils$3.run(ThreadUtils.java:173)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at org.webrtc.EglRenderer$HandlerWithExceptionCallback.dispatchMessage(EglRenderer.java:103)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.os.HandlerThread.run(HandlerThread.java:67)
at org.webrtc.ThreadUtils.invokeAtFrontUninterruptibly(ThreadUtils.java:184)
at org.webrtc.ThreadUtils.invokeAtFrontUninterruptibly(ThreadUtils.java:196)
at org.webrtc.EglRenderer.init(EglRenderer.java:232)
at org.webrtc.EglRenderer.init(EglRenderer.java:259)
at org.webrtc.SurfaceEglRenderer.init(SurfaceEglRenderer.java:61)
at io.livekit.android.renderer.TextureViewRenderer.init(TextureViewRenderer.kt:91)
at io.livekit.android.renderer.TextureViewRenderer.init$default(TextureViewRenderer.kt:81)
at io.livekit.android.room.Room.initVideoRenderer(Room.kt:1029)
The debugging information shows that in the ParticipantItem class, setupVideoIfNeeded will be called to bind new tracks for all users, and then all old tracks will be unbind. It is suspected that there is a bug in removeRenderer and the EGL context is not released correctly.
thanks.
Device Info: