bigbluebutton icon indicating copy to clipboard operation
bigbluebutton copied to clipboard

recorded meeting won't get processed when BBB is restarted

Open bigbluebutton-issue-import opened this issue 9 years ago • 5 comments

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?

ffdixon avatar Apr 07 '19 02:04 ffdixon

Nothing has changed, this is still an issue. No idea how to fix it.

kepstin avatar Apr 08 '19 15:04 kepstin

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

TiagoJacobs avatar Jun 14 '20 22:06 TiagoJacobs

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.

pedrobmarin avatar Apr 10 '21 23:04 pedrobmarin

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.

stale[bot] avatar Aug 09 '22 21:08 stale[bot]