Hunting for the source of "RecordingsBN Exception - String could not be parsed as XML"

278 views
Skip to first unread message

Alexander

unread,
Feb 26, 2013, 9:24:30 PM2/26/13
to bigbluebu...@googlegroups.com
Hello BBB Devs,

We are using the default installation of BBB v 0.80 on the recommended Ubuntu 10.04, 4 cores, 4 gb ram. BBB is integrated with our Moodle.

Yesterday one of our users reported that she could no longer see the recordings for her course anymore. Instead, Moodle presented her with the following message 'RecordingsBN Exception - String could not be prased as XML'.

Quick Google search recommended updating Moodle BBB integration plugin, which was done to no effect.

After long searching and experimenting, Moodle and BBB integration was fixed. The following steps were done to get it fixed - all steps were required.
1. adding the following parameters to /etc/nginx/sites-enabled/bigbluebutton
right after server_name directive:

     client_header_buffer_size 16k;
     large_client_header_buffers 10 64k;

2. in /etc/tomcat6/server.xml find <Connector directive and add the following:

                maxHttpHeaderSize="65536"
 between ConnectionTimeout and URIEncoding attributes

3. remove default website from nginx, rm /etc/nginx/sites-enabled/default

4. restart bbb with bbb-conf --restart


Questions:

1. the situation where recordings are all passed via URL seems highly inefficient. User merely recorded 15 lectures, and the URL "GET /bigbluebutton/api/getRecordings?meetingID=xxx" went over 8K in size, which was enough to break nginx - it started returning 414 error. When nginx was fixed, tomcat connector also dropped requests over 8K and thus required reconfiguration.

small clarification: the user in question actually has moodle admin privileges.

2. /etc/nginx/sites-enabled/default does not seem to do anything other than intercepting the requests sent to tomcat (and thus ignoring any of the parameters specified in bigbluebutton server config). should it be there?

3. do you guys want any of the above as bugreports in your issue tracker?

Thanks,
Alex

Fred Dixon

unread,
Feb 26, 2013, 10:25:57 PM2/26/13
to BigBlueButton-users
Hi Alex,

Many thanks for sharing this!

User merely recorded 15 lectures, and the URL "GET /bigbluebutton/api/getRecordings?meetingID=xxx" went over 8K in size,

Following your post, did you have 15 activity links for BigBlueButton (RecordingsBN)?  For most of our testing, we would place a few BigBlueButtonBN links, as each link adds another value to meetingID string.  

/etc/nginx/sites-enabled/default

It's good to have this in place for the situation when an administrator hasn't properly configured (using bbb-conf --setip) so that BigBlueButton will process incoming requests.  If that doesn't occur, the default definition kicks in an displays "Welcome to Nginx!" (which let's the administrator know that the server is responding to HTTP requests).


Right now, we're in working through the remaining development items for BigBlueButton 0.81 before we reach beta.  I'll make the above modifications you did part of the default install for BigBlueButton 0.81-beta.  Opened an issue to track this


Thanks again for sharing your fix.


Regards,... Fred
-- 
BigBlueButton Developer
BigBlueButton on twitter: @bigbluebutton



--
You received this message because you are subscribed to the Google Groups "bigbluebutton-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bigbluebutton-u...@googlegroups.com.
To post to this group, send email to bigbluebu...@googlegroups.com.
Visit this group at http://groups.google.com/group/bigbluebutton-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 




Alexander

unread,
Feb 27, 2013, 7:11:52 AM2/27/13
to bigbluebu...@googlegroups.com
Hi Fred!

Thank you very much for a prompt answer - I am sure your efforts play a major role in making BBB a community-friendly product!


User merely recorded 15 lectures, and the URL "GET /bigbluebutton/api/getRecordings?meetingID=xxx" went over 8K in size,

Following your post, did you have 15 activity links for BigBlueButton (RecordingsBN)?  For most of our testing, we would place a few BigBlueButtonBN links, as each link adds another value to meetingID string.  

Yes, it was 14, to be exact. So this made me wonder why would 14 hashes and a checksum ran out of 8K space, so I looked into it further. It seems that getRecordins script is passed meetingID that has a list of records in the following format: <moodlecourseid>-<recording#>-hash and a second parameter is checksum. However, what I found was interesting: for every recording, they were followed by 10(!) repetitions with minor variations, which made the request longer than 8K (see link to pastebin). I guess this is something wrong with BBB Moodle plugin?

(actually tried to attach file here, but was getting errors)

If these repetitions aren't necessary, then 8K should be enough not just for 14, but for the list of 150 recorded meetings/lectures. Then increasing the limit of request headers to 64K will make it possible to display around 1200 recorded lectures in one request.
 
/etc/nginx/sites-enabled/default

It's good to have this in place for the situation when an administrator hasn't properly configured (using bbb-conf --setip) so that BigBlueButton will process incoming requests.  If that doesn't occur, the default definition kicks in an displays "Welcome to Nginx!" (which let's the administrator know that the server is responding to HTTP requests).


I absolutely agree, having a default plug in case things go wrong is a great idea! My only concern is - the default website isn't just a plug in case things go wrong: it currently handles proxy requests to tomcat, not bigbluebutton config. You can see it by looking at nginx logs - tomcat requests to recording api will go to localhost.access.log. This can be a bit confusing if trying to tweak nginx parameters in bigbluebutton file, only to realize that the default one need to be modified as well. 

Regards,
Alexander
To unsubscribe from this group and stop receiving emails from it, send an email to bigbluebutton-users+unsub...@googlegroups.com.

Alexander

unread,
Feb 27, 2013, 8:16:02 AM2/27/13
to bigbluebu...@googlegroups.com
It seems the problem was caused by having groups turned on in moodle course. In our case we had 10 of them, which caused such multiplication factor. Personally I do not see any reason why groups should be used for looking up the list of recordings, so I created a small patch and added it along with its description to https://groups.google.com/d/topic/bigbluebutton-dev/k_7kL5rHQMA/discussion

Thanks,
Alexander
Reply all
Reply to author
Forward
0 new messages