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

"participants->update" is sent again and again once a guest left a conversation #9489

Closed
danxuliu opened this issue May 8, 2023 · 2 comments · Fixed by #9517
Closed

"participants->update" is sent again and again once a guest left a conversation #9489

danxuliu opened this issue May 8, 2023 · 2 comments · Fixed by #9517
Assignees
Labels
1. to develop bug feature: signaling 📶 Internal and external signaling backends regression

Comments

@danxuliu
Copy link
Member

danxuliu commented May 8, 2023

Since #9412 the HPB endlessly sends participants->update signaling messages to the other participants once a guest left a conversation.

How to test

  • Add 'debug' => true, to config.php
  • Setup the HPB
  • Create a public conversation
  • In a private window, open the public conversation as a guest
  • Reload the page
  • In the original window, open the browser console

Expected behaviour

Some signaling messages are received, but then everything is stable

Actual behaviour

participants->update signaling messages are received again and again; signaling server logs show User map[inCall:0 lastPing:0 participantPermissions:1 participantType:4 sessionId:0] is not in the meeting, ignoring again and again

Originally posted by @danxuliu in #9412 (comment)

@danxuliu danxuliu added 1. to develop bug regression feature: signaling 📶 Internal and external signaling backends labels May 8, 2023
@danxuliu danxuliu added this to the 💙 Next Beta (27) milestone May 8, 2023
@nickvergessen
Copy link
Member

Hmm, I can not reproduce this locally neither on sermo, so something else should be triggering the update loop.

But I can see that guests without a session are not excluded on

} else {
$users[] = $data;
anymore. We could add that.

@danxuliu
Copy link
Member Author

The problem seems to be a type conversion when the permissions are 0 in the database but the value is returned as a string instead of an integer; I can reproduce the issue locally with SQLite and MySQL (actually, MariaDB), but not with PostgreSQL:

  • After the guest leaves the room the database contains a ghost guest:
| id | room_id | actor_type | actor_id                                 | display_name | pin  | participant_type | favorite | notification_level | last_joined_call | last_read_message | last_mention_message | read_privacy | access_token | remote_id | last_mention_direct | permissions | notification_calls |
+----+---------+------------+------------------------------------------+--------------+------+------------------+----------+--------------------+------------------+-------------------+----------------------+--------------+--------------+-----------+---------------------+-------------+--------------------+
|  2 |       2 | users      | admin                                    | admin        | NULL |                1 |        0 |                  0 |                0 |                51 |                    0 |            0 | NULL         | NULL      |                   0 |           0 |                  1 |
|  3 |       2 | guests     | ac350ba8a14d614e778df21f50f28a69108ad170 |              | NULL |                4 |        0 |                  0 |                0 |                51 |                    0 |            0 | NULL         | NULL      |                   0 |           0 |                  1 |

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1. to develop bug feature: signaling 📶 Internal and external signaling backends regression
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants