Skip to content
This repository has been archived by the owner on Dec 14, 2021. It is now read-only.

Recording for Moodle-BBB-Rooms #70

Open
staukini opened this issue Oct 22, 2020 · 5 comments
Open

Recording for Moodle-BBB-Rooms #70

staukini opened this issue Oct 22, 2020 · 5 comments

Comments

@staukini
Copy link

Hello!
When I create a room using greenlight, I am able to record that session.

But when I create a room using moodle (and the plugin to connect bbb with moodle), I am not able to record that session - there is no recording afterwards, even if I try to search on the cli.

Is this a known issue, or is there a way to resolve this?

Best regards

@NerdyProjects
Copy link

Can you check the log files? I quickly checked the recording implementation here & what moodle does. I am no expert in this area but I don't see an obvious thing.

You are sure, that you enabled the recording feature in moodle and have it either auto record or started the recording in the conference?

You can run docker logs to see log files of all docker containers. Use docker logs -f to keep them attached (it will still display the whole log since container start before), then create & join a meeting using moodle and watch if anything seems broken.

@staukini
Copy link
Author

Hello!
It took me quite a while to find a timeslot to test this - sorry for the late response.

I figured out, that after ending the meeting in moodle, the recording container has some errors.

Here is the error message:

execute workers...
rap-worker | I, [2020-11-20T08:44:32.823322 #74]  INFO -- : Executing: ruby archive/archive.rb -m df3ee83b5b42da50643b7171fe37c3c1aff7837d-1605861778505
rap-worker | I, [2020-11-20T08:44:33.201768 #74]  INFO -- : /usr/local/bigbluebutton/core/lib/recordandplayback/events_archiver.rb:232:in `tr': invalid byte sequence in US-ASCII (ArgumentError)
rap-worker | I, [2020-11-20T08:44:33.201884 #74]  INFO -- : 	from /usr/local/bigbluebutton/core/lib/recordandplayback/events_archiver.rb:232:in `strip_control_chars'
rap-worker | I, [2020-11-20T08:44:33.201930 #74]  INFO -- : 	from /usr/local/bigbluebutton/core/lib/recordandplayback/events_archiver.rb:324:in `block (2 levels) in store_events'
rap-worker | I, [2020-11-20T08:44:33.201971 #74]  INFO -- : 	from /usr/local/bigbluebutton/core/lib/recordandplayback/events_archiver.rb:317:in `each'
rap-worker | I, [2020-11-20T08:44:33.202089 #74]  INFO -- : 	from /usr/local/bigbluebutton/core/lib/recordandplayback/events_archiver.rb:317:in `block in store_events'
rap-worker | I, [2020-11-20T08:44:33.202165 #74]  INFO -- : 	from /usr/local/bigbluebutton/core/lib/recordandplayback/events_archiver.rb:311:in `each'
rap-worker | I, [2020-11-20T08:44:33.202201 #74]  INFO -- : 	from /usr/local/bigbluebutton/core/lib/recordandplayback/events_archiver.rb:311:in `each_with_index'
rap-worker | I, [2020-11-20T08:44:33.202244 #74]  INFO -- : 	from /usr/local/bigbluebutton/core/lib/recordandplayback/events_archiver.rb:311:in `store_events'
rap-worker | I, [2020-11-20T08:44:33.202280 #74]  INFO -- : 	from archive/archive.rb:38:in `archive_events'
rap-worker | I, [2020-11-20T08:44:33.202317 #74]  INFO -- : 	from archive/archive.rb:197:in `<main>'
rap-worker | I, [2020-11-20T08:44:33.204356 #74]  INFO -- : Success?: false
rap-worker | I, [2020-11-20T08:44:33.204417 #74]  INFO -- : Process exited? true
rap-worker | I, [2020-11-20T08:44:33.204449 #74]  INFO -- : Exit status: 1
rap-worker | E, [2020-11-20T08:44:33.204873 #74] ERROR -- : Failed to archive df3ee83b5b42da50643b7171fe37c3c1aff7837d-1605861778505

That looks strange - is there an argument missing, or is the encoding not right?

@NerdyProjects
Copy link

Thanks for looking into it! @alangecker I didn't look into it, but are you aware of any locale fuckups, e.g. should it be UTF8-something but defaults to C?

@wolbernd
Copy link

wolbernd commented Apr 9, 2021

Sorry to bump this old issue. This error occured on our servers since the last update to 2.2.36. However this only happens if there is a non-ascii Character in the metadata (e.g. meetingName = Täst).

I did some debugging in the events_archiver.rb and found out the following:

Ruby gets the Metadatastrings from redis in Line 261 of events_archiver.rb. For debugging purposes I put the following in Line 281 so that the block loocked like this:

meeting_metadata.each do |k, v|
        BigBlueButton.logger.error("Key: #{k} Value: #{v} Encoding: #{v.encoding}")
        metadata[strip_control_chars(k)] = strip_control_chars(v)
end

This led to the following output:

I, [2021-04-09T14:47:24.971335 #3525]  INFO -- : Archiving events for 907c6100bf4c65a8f381b73781f6bb52f17a06a0-1617972405342
E, [2021-04-09T14:47:24.972191 #3525] ERROR -- : Key: bbb-origin Value: Greenlight Encoding: US-ASCII
E, [2021-04-09T14:47:24.972230 #3525] ERROR -- : Key: bbb-origin-server-name Value: xxx Encoding: US-ASCII
E, [2021-04-09T14:47:24.972247 #3525] ERROR -- : Key: bbb-origin-version Value: release-2.8.2.2 Encoding: US-ASCII
E, [2021-04-09T14:47:24.972261 #3525] ERROR -- : Key: gl-listed Value: false Encoding: US-ASCII
E, [2021-04-09T14:47:24.972275 #3525] ERROR -- : Key: isBreakout Value: false Encoding: US-ASCII
E, [2021-04-09T14:47:24.972287 #3525] ERROR -- : Key: meetingId Value: yyy Encoding: US-ASCII
E, [2021-04-09T14:47:24.972306 #3525] ERROR -- : Key: meetingName Value: Täst Encoding: US-ASCII

That last line is odd because US-ASCII does not have a representation for ä. Something is going wrong with the encoding here but I was not able to find the source of the problem.
A bit of further testing revealed that the supposedly US-ASCII strings are actually UTF-8 Strings. Only ruby thinks they are not.

As a workaround I changed the method strip_control_chars() from

    def strip_control_chars(str)
      str.tr("\x00-\x08\x0B\x0C\x0E-\x1F\x7F", '')
    end

to

    def strip_control_chars(str)
      tstr = str.dup
      tstr.force_encoding("UTF-8")
      tstr.tr("\x00-\x08\x0B\x0C\x0E-\x1F\x7F", '')
      str = tstr
    end

I tested it and it works for meetings with or without special characters. However I don't know much about ruby to confidently say that this is a good fix.

manfred-w pushed a commit to manfred-w/bigbluebutton-docker that referenced this issue May 18, 2021
Network config details the IP addresses
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants