Commit Graph

88 Commits

Author SHA1 Message Date
germanocaumo
d770a7df8c fix(whiteboard): only call annotation upsert in one frontend instance
We were calling upsert in the Annotations collection for the same annotation in all frontend instances, this could lead to the same annotation being inserted
multiple times with different ids due to concurrency.

Added the html5InstanceId of the original request to the redis message so we can use it to only call upsert in one instance.
2022-09-28 12:03:59 +00:00
germanocaumo
a04fbc56e1 feat(html5): add error logs and redis prometheus metrics
New config: settings.private.prometheus.collectRedisMetrics disabled by default
2022-04-08 14:21:55 +00:00
Ramón Souza
dba04834c7 Merge remote-tracking branch 'upstream/v2.4.x-release' into 2524-feb08 2022-02-09 15:52:42 +00:00
Joao Victor
a0434ff1e0 Change message queue concurrency to 1 2022-02-01 14:20:08 -03:00
Joao Victor
fbb807208e Undo presentation queue implementation 2022-02-01 14:18:16 -03:00
Joao Victor
914739ffc2 Add chaining operator 2022-01-28 10:18:55 -03:00
Joao Victor
da13e0aa93 Add own message queue for presentations 2022-01-28 09:59:41 -03:00
Pedro Beschorner Marin
810deb907b refactor(etherpad): access control et al.
Move all Etherpad's access control from Meteor to a separated [Node application](https://github.com/bigbluebutton/bbb-pads).
This new app uses [Etherpad's API](https://etherpad.org/doc/v1.8.4/#index_overview)
to create groups and manage session tokens for users to access them. Each group
represents one distinct pad at the html5 client.

- Removed locked users' access to pads: replaced readOnly pad's access with a new pad's content sharing routine
- Pad's access is now controlled by [Etherpad's API](https://etherpad.org/doc/v1.8.4/#index_overview)
- Closed captions edited content now reflects at it's live feedback
- Improved closed caption's dictation mode live feedback
- Moved all Etherpad's API control from Meteor to a separated [app](https://github.com/bigbluebutton/bbb-pads)
- Included access control both in akka-apps and bbb-pads
2022-01-21 16:56:01 -03:00
Ramon Souza
57cdf3f6b7 replace power-queue with queue 2021-05-24 16:41:22 -03:00
Anton Georgiev
91b57f82f9 feat: allow to omit chat message from logging 2021-04-26 16:04:57 -04:00
Anton Georgiev
abd9539405
Update redis.js 2021-04-08 15:55:55 -04:00
Anton Georgiev
30229cebb6
Remove bbb-html5-backend log when meeting handled by other backend 2021-04-08 15:51:57 -04:00
Pedro Beschorner Marin
0c4cf0135d Handle pad's events and Meteor's instances
Since Meteor was split in multiple process and events started to be
filtered by instances, all Etherpad's Redis events were being discarded.

Etherpad has a Redis' publisher plugin that is unaware of BigBlueButton's
existence. All the communication between them is kept simple with minimal
of internal data exchange. The concept of distincts subscribers at Meteor's
side broke part of this simplicity and, now, Etherpad has to know which
instance must receive it's messages. To provide such information I decided
to include Meteor's instance as part of the pad's id. Should look like:

 - [instanceId]padId for the shared notes
 - [instanceId]padId_cc_(locale) for the closed captions

With those changes the pad id generation made at the recording scripts had to
be re-done because there is no instance id available. Pad id is now recorded at
akka-apps and queried while archiving the shared notes.
2021-03-23 18:03:50 -03:00
Anton Georgiev
a41fa87bdd
Re-enable redis.js log for meetings handled by other processes
I was shown a case just now where `CreateNewPresentationPodEvtMsg` can happen prior to the full add of a meeting. This log line becomes relevant once again
2021-03-15 12:55:51 -04:00
Anton Georgiev
8568bb03b9
Disable redis.js log for meetings handled by other processes
Disabled `'Backend meeting queue had not been initialized'` which was added to pinpoint an issue with handling of meeting create events, but the issue seems to be unrelated (and has not been hit after resolving a memory leak)
2021-03-15 12:30:02 -04:00
Joao Siebel
31d49536e8 Add extra logs when handling messages on redis 2021-02-24 17:56:14 -03:00
Anton Georgiev
683847304d on frontend attempt to handle events without matching queue 2021-02-17 20:51:36 +00:00
Anton Georgiev
1cedc56504 process only some of CreateMeeting logic in frontends to avoid meeting duplication 2021-02-16 15:12:25 +00:00
Anton Georgiev
f43560d535 Support for backend vs frontend nodejs instances bbb-html5 2021-02-16 03:19:31 +00:00
Anton Georgiev
8c0f0fdd52 Split Meteor roles backend-frontend revisit 2021-02-05 17:47:46 +00:00
Anton Georgiev
fc93b5a91c correctly add chat message without flattening 2020-12-17 22:02:38 +00:00
Anton Georgiev
c1ffced27d Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into develop 2020-12-17 21:14:29 +00:00
Anton Georgiev
8b65f9e15b Set bbb-html5 loadbalancing to be round robin 2020-12-15 01:55:57 +00:00
Anton Georgiev
9239d515a5 dispatch whiteboard events to html5 redis channel only 2020-12-12 01:45:38 +00:00
Anton Georgiev
0be8773e4c Loadbalance bbb-html5 in bbb-web based on CPU 2020-12-11 21:36:06 +00:00
Joao Siebel
5b0d6c59e6 Code clean up 2020-12-10 14:05:22 -03:00
Joao Siebel
bf5a45d303 Create Metrics class 2020-12-10 12:07:06 -03:00
Joao Siebel
d6a1f1a454 Change processing start time 2020-12-09 15:06:25 -03:00
Joao Siebel
029c42c1e5 Add processing time metrics 2020-12-09 14:24:41 -03:00
Joao Siebel
b532673691 Move metric function 2020-12-08 10:49:07 -03:00
Joao Siebel
0ec8576209 Fix multiple write listeners 2020-12-08 09:37:59 -03:00
Joao Siebel
829591ffc7 Implement redis metrics object 2020-12-07 17:57:33 -03:00
Anton Georgiev
244a239810 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into 2020-12-01-merge 2020-12-01 20:02:50 +00:00
Anton Georgiev
f34826718d include instanceId in resources url 2020-11-30 16:09:35 +00:00
Anton Georgiev
0c7ae7537b
Only display Redis: MeetingMessageQueue if size > 100 2020-11-25 10:32:45 -05:00
Anton Georgiev
3faabd1821 Merge 2.2.29 and 2.2.30 into 2.3.x 2020-11-24 15:13:09 +00:00
Anton Georgiev
39257aa2d8 parse instanceId as int; develop on port 4000 2020-11-19 15:31:24 +00:00
Anton Georgiev
23f2df11d5 code changes to allow for meetings' redis events to be processed on different html5 nodejs pids 2020-11-18 20:34:02 +00:00
Anton Georgiev
a8dc7a0bff Simplified redis debug and placed behind check 2020-11-12 21:03:57 -05:00
Anton Georgiev
4a38524778 Logging with JSON stringify was leading to crashes. Reverting, need to investigate further 2020-05-24 08:22:10 -04:00
Anton Georgiev
e7917994d5 add banUser field in EjectUserFromMeetingCmdMsgBody 2020-05-22 10:45:28 -04:00
Richard Alam
62e5e599d3 - add timestamp field to messages sent from html5 server 2019-10-18 09:50:38 -07:00
Chad Pilkey
cef913294f stop silencing message exceptions in html5 server 2019-06-28 18:51:26 +00:00
Anton Georgiev
aba6f72202
Handle both null and undefined password 2019-05-15 14:50:28 -04:00
Anton Georgiev
7937a779a6
Merge pull request #7231 from BobakOftadeh/redis-password
Add password field for redis settings
2019-05-15 14:49:20 -04:00
bobakoftadeh
b3cac0e855 improve password option for redis 2019-04-12 19:55:25 +00:00
bobakoftadeh
6871b5d35c Add password field for redis settings 2019-04-10 21:20:36 +00:00
Maxim Khlobystov
3fa22c6908 User information lookup feature in HTML5 client. 2019-04-05 18:32:21 -04:00
Anton Georgiev
d2397cba3e handle change of downloadable pres status 2019-02-15 19:45:42 +00:00
Anton Georgiev
51f7645607 remove REDIS pubsub html5 logs; turned off debug 2019-01-21 17:00:24 +00:00