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

Video freeze issue when someone leaves the session #778

Open
seantaylorgmi opened this issue Dec 30, 2022 · 7 comments
Open

Video freeze issue when someone leaves the session #778

seantaylorgmi opened this issue Dec 30, 2022 · 7 comments
Labels

Comments

@seantaylorgmi
Copy link

Hi Team
We are facing video freeze issue when someone leaves session.
This issue happens rarely, when there are more than 3 members in session.

Scenario
Consider 4 users A, B, C and D join a video session. User D leaves the session by clicking leave session button.
From user D point of view - he leaves the session without any issues.
But for other 3 users point of view - they can still see user D with his last picture of his video freezed. After 15 sec to 20 sec the last picture in user D video turns black and stays there for ever.
But when we check active users in session using /openvidu/api/sessions API, we can not see user D data in session.
Now User C leaves the same session and joins same session again. Now the user C can not see user D, but user A and B who are still in session can see user D.
Note: when user leaves and joins same session the freezed user is not there. But for users already in session from begining they can see freezed user.

Is there any probability user D data is stuck in local session or local cache that is causing this issue ?
Is there any function in openvidu-angular or openvidu-browser to clear this cache issue ?

We are using openvidu 2.23.0. We could find the same issue in openvidu 2.24.0 too.
This issue happens for multiple peoples at same session too.
Once this issue start to occur for a user, it starts to occur often. But after restarting openvidu docker server, it works fine for sometimes. But after sometime same issue occurs.

We are getting below errors in consoles and docker logs during this issue

[ERROR] 2022-12-16 14:54`:29,207 [SessionHandler-htphelpm00ttp6q0c3rs85hlsi-e74-t0] org.kurento.jsonrpc.internal.JsonRpcHandlerManager - Exception while processing request {"id":203,"method":"leaveRoom","params":{},"jsonrpc":"2.0"}
main.js:1 leaveRoom error: {"code":-1,"message":"java.lang.NullPointerException:null","data":"java.lang.NullPointerException\n\tat io.openvidu.server.cdr.CallDetailRecord.stopSubscriber(CallDetailRecord.java:151)\n\tat io.openvidu.server.kurento.core.KurentoParticipant.releaseSubscriberEndpoint(KurentoParticipant.java:595)\n\tat io.openvidu.server.kurento.core.KurentoParticipant.close(KurentoParticipant.java:376)\n\tat io.openvidu.server.kurento.core.KurentoSession.leave(KurentoSession.java:130)\n\tat io.openvidu.server.kurento.core.KurentoSessionManager.leaveRoom(KurentoSessionManager.java:224)\n\tat io.openvidu.server.rpc.RpcHandler.leaveRoom(RpcHandler.java:338)\n\tat io.openvidu.server.rpc.RpcHandler.handleRequest(RpcHandler.java:130)\n\tat org.kurento.jsonrpc.internal.JsonRpcHandlerManager.handleRequest(JsonRpcHandlerManager.java:142)\n\tat org.kurento.jsonrpc.internal.server.ProtocolManager$3.run(ProtocolManager.java:218)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base/java.lang.Thread.run(Thread.java:829)\n","requestTime":1671628819547}
WebRTC: ICE failed, add a STUN server and see about:webrtc for more details
IceConnectionState of RTCPeerConnection d95d800b-8106-46c2-b523-19fd7693b454 (str_CAM_JPXg_con_100042) to "failed"
ERROR:java.lang.NullPointerException:null in Request: method:leaveRoom params:{} request:undefined main.js:1:2714970
ERROR DATA:"java.lang.NullPointerException\n\tat io.openvidu.server.cdr.CallDetailRecord.stopSubscriber(CallDetailRecord.java:151)\n\tat io.openvidu.server.kurento.core.KurentoParticipant.releaseSubscriberEndpoint(KurentoParticipant.java:595)\n\tat io.openvidu.server.kurento.core.KurentoParticipant.cancelReceivingMedia(KurentoParticipant.java:336)\n\tat io.openvidu.server.kurento.core.KurentoSession.removeParticipant(KurentoSession.java:186)\n\tat io.openvidu.server.kurento.core.KurentoSession.leave(KurentoSession.java:129)\n\tat io.openvidu.server.kurento.core.KurentoSessionManager.leaveRoom(KurentoSessionManager.java:224)\n\tat io.openvidu.server.rpc.RpcHandler.leaveRoom(RpcHandler.java:338)\n\tat io.openvidu.server.rpc.RpcHandler.handleRequest(RpcHandler.java:130)\n\tat org.kurento.jsonrpc.internal.JsonRpcHandlerManager.handleRequest(JsonRpcHandlerManager.java:142)\n\tat org.kurento.jsonrpc.internal.server.ProtocolManager$3.run(ProtocolManager.java:218)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base/java.lang.Thread.run(Thread.java:829)\n" main.js:1:2714970
leaveRoom error: {"code":-1,"message":"java.lang.NullPointerException:null","data":"java.lang.NullPointerException\n\tat io.openvidu.server.cdr.CallDetailRecord.stopSubscriber(CallDetailRecord.java:151)\n\tat io.openvidu.server.kurento.core.KurentoParticipant.releaseSubscriberEndpoint(KurentoParticipant.java:595)\n\tat io.openvidu.server.kurento.core.KurentoParticipant.cancelReceivingMedia(KurentoParticipant.java:336)\n\tat io.openvidu.server.kurento.core.KurentoSession.removeParticipant(KurentoSession.java:186)\n\tat io.openvidu.server.kurento.core.KurentoSession.leave(KurentoSession.java:129)\n\tat io.openvidu.server.kurento.core.KurentoSessionManager.leaveRoom(KurentoSessionManager.java:224)\n\tat io.openvidu.server.rpc.RpcHandler.leaveRoom(RpcHandler.java:338)\n\tat io.openvidu.server.rpc.RpcHandler.handleRequest(RpcHandler.java:130)\n\tat org.kurento.jsonrpc.internal.JsonRpcHandlerManager.handleRequest(JsonRpcHandlerManager.java:142)\n\tat org.kurento.jsonrpc.internal.server.ProtocolManager$3.run(ProtocolManager.java:218)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base/java.lang.Thread.run(Thread.java:829)\n","requestTime":1671188405337}

Please let us know if you have any idea which is causing this issue or error.

Thank in advance

@selinamitchell
Copy link

+1

4 similar comments
@ReginaLisa
Copy link

+1

@richardkevinbox
Copy link

+1

@samkennardg
Copy link

+1

@skgith1
Copy link

skgith1 commented Feb 21, 2023

+1

@pabloFuente
Copy link
Member

We will research this issue

@cruizba
Copy link
Member

cruizba commented Feb 21, 2023

@seantaylorgmi Could you answer these questions?:

  • What OpenVidu version are you currently using, 2.24.0?
  • Is openvidu-browser updated and the same version as openvidu-server?
  • Do you have a way to replicate the error?

That ICE error makes me think that the turn configuration is not reaching the browser or somehow it is not reachable. But it probably has nothing to do with the null pointer exception you are having.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

8 participants