Skip to content

Conversation

gustavotrott
Copy link
Collaborator

@gustavotrott gustavotrott commented Aug 15, 2022

Problem 1:

When the user is ejected due to inactivity, a generic error is being showed.
And there is a random behavior where sometimes the user see the first print and sometimes the second.
ejected-before
error403-before

This PR will show the properly reason why he was removed:
error-ejected

Problem 2:

When the user has problem with disconnection. When the connection is re-established he can't join to the meeting again!
He is immediately removed once he connects to the server!

removed_from_meeting.mp4

With this PR this situation will be avoided once the user will have 3 seconds to try to re-establish the connection before being removed from the meeting:

connection_re-established.mp4

  • Problem 1 details:
  1. When user is ejected by the system, he is updated with the following props:
    {ejected: true, ejectedReason: 'user_inactivity_eject_reason'}
    It would take the user to the meeting-ended screen.

  2. But the user is also REMOVED from the Users collection.
    And it makes the user identify that he was removed and take the user to the error-screen with 403 code.

Sometimes the first option is faster, and sometimes the second one is faster.
It will stop happening once the second option will have a delay of 3 seconds where client can identify the ejected:true and show the right screen meeting-ended.

Moreover: Now the meeting-ended will check if there is an error msg for the ejectedReason that the user received! And show the reason message in this cases!


  • Problem 2 details:
    When the user loses connection with the server, he firstly is updated with the userLeftFlag. And after 10 seconds he is removed from the Users collection.

Once the user can establish a connection with the server again, he would try authenticate again.
But at the same time he received the updated Users collection and check that he is not in the list anymore! And immediately call the function endMeeting() without having time to try to authenticate (and join meeting) again!

With this PR there will be a delay of 3 seconds before call the endMeeting() and the user is able to rejoin the meeting during this time and avoid the "You were removed" error.


A refactor of this part in order to avoid this random behavior is welcome! Let's prioritize it for BBB 2.7 release!

PS: A thorough test/review will be appreciated. Once this part is sensitive and this change can possibly trigger some side effect.
Once the observer that call endMeeting() immediately when user is removed was introduced a long time ago (2.3-alpha-3) and remain working until now.. #10369
image

Closes #15527

@gustavotrott gustavotrott changed the title fix (2.6): ejected reason not being showed properly to user fix (2.6): enhancements over disconnection situation (delay to remove and show ejected reason) Aug 17, 2022
@gustavotrott gustavotrott marked this pull request as ready for review August 17, 2022 17:47
@antobinary antobinary added this to the Release 2.6 milestone Aug 18, 2022
@antobinary antobinary removed the request for review from jfsiebel August 18, 2022 13:25
Copy link
Member

@ramonlsouza ramonlsouza left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks like the same issue happens when a user is removed by a moderator (sometimes the 403 page is displayed instead of the "You have been removed from the conference"), but when it happens with the changes made in this PR, an empty blue screen is displayed instead.

correct "user removal" behavior

correct.mp4

incorrect (current 2.6)

2022-08-22_13-39

incorrect (2.6 + PR #15544)

incorrect-pr.mp4

@gustavotrott gustavotrott marked this pull request as draft August 24, 2022 00:00
@gustavotrott gustavotrott marked this pull request as ready for review August 30, 2022 01:51
@gustavotrott
Copy link
Collaborator Author

Hey @ramonlsouza ,
I just changed the behavior when the user is ejected from meeting. And managed the message to be showed properly (instead of the msg id).
Can you check again when you have the chance?

@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 1 Code Smell

No Coverage information No Coverage information
0.0% 0.0% Duplication

@ramonlsouza ramonlsouza merged commit 8aa0d1b into bigbluebutton:v2.6.x-release Aug 30, 2022
@gustavotrott gustavotrott deleted the html5-show-ejectedReason-2.6 branch March 11, 2024 16:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants