Switch from JVB to P2P sometimes break screenshare

This is something we’ve seen on our deployments, and I’ve been able to repro on meet.jit.si as well. It does not happen 100% of the time, and could take several attempts to repro.

Repro steps:

  1. Start a 3-party call. For this example participants are Alice, Bob and Carol.

  2. Alice shares screen. Bob and Carol can see Alice’s webcam and her screenshare.

  3. Carol leaves the meeting.

  4. After a few seconds, the call switches to P2P.

    • Alice is still screen sharing and can see both streams
    • Bob can still see Alice’s webcam
    • Bob sometimes lose the screenshare stream and only see a block box. Connection indicator shows disconnected.
      Wealthy_Flags_Favour_Uneasily___Jitsi_Meet_🔊
    • There are no errors in dev console for either Alice or Bob
    • (Note: this does not always happen. Could take several attempts to repro)
  5. Bob leaves the room

    • Alice is still screensharing and can see both her streams
    • Alice sees this error in console
    no peer media info available for...

    react_devtools_backend.js:4026 2022-10-14T10:35:45.165Z [JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>: UnhandledError: TPC[id=1,type=JVB]: no peer media info available for 658b0e72 Script: null Line: null Column: null StackTrace: Error: TPC[id=1,type=JVB]: no peer media info available for 658b0e72
    at Vd._remoteTrackAdded (https://web-cdn.jitsi.net/meetjitsi_6644.3399/libs/lib-jitsi-meet.min.js?v=6644.3399:2:651108)
    at Vd._usesUnifiedPlan.onTrack (https://web-cdn.jitsi.net/meetjitsi_6644.3399/libs/lib-jitsi-meet.min.js?v=6644.3399:2:643251)
    at RTCPeerConnection.r (https://web-cdn.jitsi.net/meetjitsi_6644.3399/libs/lib-jitsi-meet.min.js?v=6644.3399:2:546249)

  6. Bob rejoins the room

    • Alice sees this error in console
    remote track removal failed - track not found

    react_devtools_backend.js:4026 2022-10-14T10:38:00.815Z [JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>: UnhandledError: TPC[id=2,type=JVB] remote track removal failed - track not found Script: null Line: null Column: null StackTrace: Error: TPC[id=2,type=JVB] remote track removal failed - track not found
    at Vd._remoteTrackRemoved (https://web-cdn.jitsi.net/meetjitsi_6644.3399/libs/lib-jitsi-meet.min.js?v=6644.3399:2:652910)
    at MediaStream. (https://web-cdn.jitsi.net/meetjitsi_6644.3399/libs/lib-jitsi-meet.min.js?v=6644.3399:2:643337)

    • Bob can see Alice’s webcam but not her screenshare
    • This might happen even if Bob did not lose the video in step (4)
  7. Carol rejoins the room, and the call moves back to JVB

    • Now everyone can see the screenshare stream again.

Tested with Chrome 106.0.5249.119 and Brave 1.44.108. It appears to be easier to repro with Brave, but I cannot substantiate that.

2 Likes

Paging the screen sharing expert @jallamsetty :slight_smile:

Thanks @shawn for the report. We are aware of this issue and I am working on a fix for this specific case.

2 Likes

Hello, is this problem fixed, and if it has been fixed, which version was submitted. sincere thanks!

Yes, this was fixed back in Nov.

Thank you for your answer. What is the reason for this problem?

@jallamsetty Could you please let me know the commit number for this incident so that I can check what has been fixed?

IIRC, there were multiple commits, fix(TPC) Do not force immediate O/A cycles after track replace operat… · jitsi/lib-jitsi-meet@9b2eef3 · GitHub and Fix codec negotiation and other multi-stream issues (#2133) · jitsi/lib-jitsi-meet@eb623e7 · GitHub are the ones that comes to my mind.

@jallamsetty Thank you very much.