bigbluebutton
bigbluebutton copied to clipboard
recorded meeting won't get processed when BBB is restarted
Originally reported on Google Code with ID 1918
What steps will reproduce the problem?
1. Start a recorded meeting
2. Kill tomcat7 and/or Red5 to simulate crash (OOM)
3. Start BBB (bbb-conf --restart)
4. Recording won't be processed.
What is the expected output? What do you see instead?
If a meeting is being recorded and BBB is restarted, the recorded meeting should at
least be attempted to be processed. This is important for example the class is at 2.5
hrs of a 3 hr session.
When Tomcat7 is restarted, BBB-Web won't have any knowledge of the running meetings.
So the recorded meetings before the restart won't have .done files to trigger processing
of the recordings.
Please use labels and text to provide additional information.
Reported by ritzalam
on 2015-04-02 20:40:28
@kepstin Is this still an issue in the current record and playback scripts?
Nothing has changed, this is still an issue. No idea how to fix it.
Hello, I've faced this issue today and after @ffdixon help it got fixed by creating the following file:
/var/bigbluebutton/recording/status/recorded/<internal meeting id>.done
So let's say your recording ID is eb60ea08d8238fdca0c946f35126b7b825999999-1592026999999
, the command that can solve this issue s:
touch /var/bigbluebutton/recording/status/recorded/eb60ea08d8238fdca0c946f35126b7b825999999-1592026999999.done
We tried this with a bbb-web pre-run script once
#!/bin/bash
if [ $(command -v redis-cli) == "" ]; then
echo "Missing redis-cli"
exit
fi
STATUS_DIR=/var/bigbluebutton/recording/status
RECORDED_DIR=$STATUS_DIR/recorded
ENDED_DIR=$STATUS_DIR/ended
isRecorded() {
if [ "$(echo $@ | grep "record true")" != "" ]; then
return 0
else
return -1
fi
}
hasRecordedTag() {
for file in "$RECORDED_DIR"/*; do
if [ "$(echo $file | grep $1)" != "" ]; then
return 0
fi
done
return -1
}
hasEndedTag() {
for file in "$ENDED_DIR"/*; do
if [ "$(echo $file | grep $1)" != "" ]; then
return 0
fi
done
return -1
}
echo "Collecting redis meeting info"
KEYS=$(redis-cli keys "meeting:info:*")
for key in $KEYS; do
meetingId=$(echo $key | cut -d ':' -f 3)
info=$(redis-cli hgetall $key)
isRecorded $info; if [ $? == 0 ]; then
hasRecordedTag $meetingId; if [ $? != 0 ]; then
echo "Creating recorded done tag for meeting $meetingId"
touch $RECORDED_DIR/$meetingId".done"
fi
fi
hasEndedTag $meetingId; if [ $? != 0 ]; then
echo "Creating ended done tag for meeting $meetingId"
touch $ENDED_DIR/$meetingId".done"
fi
done
Not sure if we are running this, as far as I remember we had some issues with the medias.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.