nextcloud / nextcloud/talk-android

crash during a video call (Failed to create EGL context)

Open
#2,947 14 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop bug
Dominant language
Kotlin
Stars
739
Forks
321
Avg merge
14h 59m
Merged PRs (30d)
151

Description

Steps to reproduce

1.Enter a session in the APP
2.Enable video call
3.Description During a video call, five users frequently enter or exit the video call (Because they lost the connection after entering the video call and tried to reconnect to the call)
4. Apps running in the background are more likely to crash (the operating system does not kill the process, even if you do not do this step still often crash)

Expected behaviour

app works normally

Actual behaviour

When they frequently join/drop out of a call, it causes the talk software to crash 90% of the time for the normal person

Device brand and model

Xiaomi Redmi K40

Android version

13

Nextcloud Talk app version

18.0.1

Nextcloud server version

28.0.2

Talk version

18.0.3

Custom Signaling server configured

None

Custom TURN server configured

None

Custom STUN server configured

None

Android logs
java.lang.RuntimeException: android.opengl.GLException: Failed to create EGL context: 0x3000
	at org.webrtc.EglBase14Impl.createEglContext(EglBase14Impl.java:268)
	at org.webrtc.EglBase14Impl.<init>(EglBase14Impl.java:63)
	at org.webrtc.EglBase$-CC.createEgl14(EglBase.java:213)
	at org.webrtc.EglBase$-CC.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:942)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at org.webrtc.EglRenderer$HandlerWithExceptionCallback.dispatchMessage(EglRenderer.java:103)
	at android.os.Looper.loopOnce(Looper.java:210)
	at android.os.Looper.loop(Looper.java:299)
	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 org.webrtc.SurfaceViewRenderer.init(SurfaceViewRenderer.java:87)
	at org.webrtc.SurfaceViewRenderer.init(SurfaceViewRenderer.java:71)
	at com.nextcloud.talk.activities.CallActivity.initSelfVideoView(CallActivity.java:840)
	at com.nextcloud.talk.activities.CallActivity.initViews(CallActivity.java:809)
	at com.nextcloud.talk.activities.CallActivity.updateUiForNormalMode(CallActivity.java:3087)
	at com.nextcloud.talk.activities.CallActivity.onPictureInPictureModeChanged(CallActivity.java:3022)
	at android.app.Activity.dispatchPictureInPictureModeChanged(Activity.java:8867)
	at android.app.ActivityThread.handleWindowingModeChangeIfNeeded(ActivityThread.java:6264)
	at android.app.ActivityThread.performActivityConfigurationChanged(ActivityThread.java:6079)
	at android.app.ActivityThread.performConfigurationChangedForActivity(ActivityThread.java:6056)
	at android.app.ActivityThread.handleActivityConfigurationChanged(ActivityThread.java:6401)
	at android.app.servertransaction.ActivityConfigurationChangeItem.execute(ActivityConfigurationChangeItem.java:53)
	at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2389)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:210)
	at android.os.Looper.loop(Looper.java:299)
	at android.app.ActivityThread.main(ActivityThread.java:8261)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:559)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:954)
Caused by: android.opengl.GLException: Failed to create EGL context: 0x3000
	at org.webrtc.EglBase14Impl.createEglContext(EglBase14Impl.java:268)
	at org.webrtc.EglBase14Impl.<init>(EglBase14Impl.java:63)
	at org.webrtc.EglBase$-CC.createEgl14(EglBase.java:213)
	at org.webrtc.EglBase$-CC.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:942)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at org.webrtc.EglRenderer$HandlerWithExceptionCallback.dispatchMessage(EglRenderer.java:103)
	at android.os.Looper.loopOnce(Looper.java:210)
	at android.os.Looper.loop(Looper.java:299)
	at android.os.HandlerThread.run(HandlerThread.java:67)
Server log

No response

Additional information

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with CallActivity.initSelfVideoView and initViews around the provided stack trace, then trace the Picture-in-Picture transition through updateUiForNormalMode. Reproduce repeated join and leave cycles on Android 13, especially while returning from background, and inspect the WebRTC EglRenderer initialization failure. Done means this scenario no longer crashes when the EGL context cannot be created.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
audio-video-rtc, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.