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

[2.3] Closed Captions broken #11518

Closed
alangecker opened this issue Feb 27, 2021 · 3 comments · Fixed by #11726
Closed

[2.3] Closed Captions broken #11518

alangecker opened this issue Feb 27, 2021 · 3 comments · Fixed by #11726
Assignees
Milestone

Comments

@alangecker
Copy link
Contributor

alangecker commented Feb 27, 2021

Describe the bug
Typed characters in the closed caption pad don't appear anymore since sometime between 2.3-alpha5 and 2.3-alpha7

To Reproduce
Steps to reproduce the behavior:

  1. Open a room on https://test23.bigbluebutton.org
  2. In the participants cogwheel, click on "Write closed captions"
  3. Down in the toolbar, activate the closed captions
  4. Start writing

Expected behavior
The typed characters should appear on top of the presentation

Actual behavior
nothing appears

Debugging

  • PadUpdateSysMsg events appear in the redis channel from-etherpad-redis-channel
  • event reaches RedisPubSub::handleMessage() (imports/startup/server/redis.js) at all backend instances, example:
parsedMessage = {
    envelope: {
      name: 'PadUpdateSysMsg',
      routing: { sender: 'etherpad' },
      timestamp: 1614431195596
    },
    core: {
      header: { name: 'PadUpdateSysMsg' },
      body: {
        pad: {
          atext: [Object],
          pool: [Object],
          head: 18,
          chatHead: -1,
          publicStatus: false,
          id: 'ceb8e762_captions_en',
          savedRevisions: []
        },
        author: 'a.VPY6mJmMtieBljH4',
        revs: 23,
        changeset: 'Z:n>1=m*0+1$a',
        timestamp: 1614431195596
      }
    }
}
  • RedisPubSub.on('PadUpdateSysMsg', handler) in mod/html5/src/imports/api/captions/server/eventHandlers.js never gets called
  • No related events appear on meteor's websocket connection

-> it seems like the event gets thrown away somehow inside RedisPubSub::handleMessage(), maybe because it doesn't contain any instanceId?

Most likely this was introcued with @antobinary (et al.?^^) amazing recent work in Split Meteor roles backend-frontend revisit #11317

@alangecker
Copy link
Contributor Author

alangecker commented Feb 27, 2021

update

after adding this, the closed captions work again, but having the same instance handle all these events goes somewhat against the principle of load balancing, and I don't know how to distribute it probably^^

...especially so far it would handle all PadUpdateSysMsg events, not just the ones from closed captions, which could become a huge load.

diff --git a/bigbluebutton-html5/imports/startup/server/redis.js b/bigbluebutton-html5/imports/startup/server/redis.js
index d78b9c4fe6..a3f33e087c 100755
--- a/bigbluebutton-html5/imports/startup/server/redis.js
+++ b/bigbluebutton-html5/imports/startup/server/redis.js
@@ -286,6 +286,13 @@ class RedisPubSub {
               parsedMessage,
             });
             }
+          } else if(eventName === 'PadUpdateSysMsg' && this.instanceId == 1) {
+            this.meetingsQueues[NO_MEETING_ID].add({
+              pattern,
+              channel,
+              eventName,
+              parsedMessage,
+            });
           }
           // I ignore
         }

@pedrobmarin
Copy link
Collaborator

Yeah, that's a good catch. I believe the whole communication between bigbluebutton and etherpad will have to move from meteor to akka-apps because I think it's the one who can map meetings and instances.

@antobinary
Copy link
Member

Thanks for reporting, and reporting thoroughly! 🥇

Yeah, looks to me like it's the lack of meetingId that is the problem, not the instanceId per se.

We'll give it a deeper look next week

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

Successfully merging a pull request may close this issue.

3 participants