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

GLException: Failed to create EGL context: 0x3000

Open kendo6666 opened this issue 1 year ago • 5 comments

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:

  • Device: xiaomi,google,huawei
  • OS: Android 9+
  • LiveKit SDK version: 1.6.3

kendo6666 avatar Feb 05 '24 11:02 kendo6666

You must be call release() on the TextureViewRenderer or SurfaceViewRenderer

wzJun1 avatar Feb 06 '24 08:02 wzJun1