Fehler 2003 (MEDIA_SERVER_REQUEST_TIMEOUT) tritt auf, wenn der BigBlueButton-Mediendienst bbb-webrtc-sfu zwar eine Verbindung zur Media-Engine (Kurento oder mediasoup) aufbauen kann, aber innerhalb des festgelegten Zeitlimits keine Antwort auf seine Anfragen erhält. Die Media-Engine läuft also noch, reagiert jedoch nicht – sei es wegen Überlastung, Speichermangel oder eines internen Hängezustands.
Wie äußert sich der Fehler?
Teilnehmer bemerken den Fehler 2003 in der Regel daran, dass sich Kamera oder Mikrofon nicht aktivieren lassen, die Bildschirmfreigabe abbricht oder generell keine Medienverbindung zustande kommt. Im Browser erscheint eine Fehlermeldung mit dem Code 2003. Administratoren finden entsprechende Einträge in den Protokolldateien von bbb-webrtc-sfu, die auf abgelaufene RPC-Anfragen (z. B. Kurento-JSON-RPC-Befehle wie create, invoke oder connect) hinweisen.
Mögliche Ursachen
- Überlasteter Kurento-Prozess (KMS): Zu viele gleichzeitige Medienpipelines verbrauchen die CPU vollständig, sodass neue Anfragen nicht mehr bearbeitet werden.
- Dateideskriptor-Erschöpfung: Kurento erreicht das systemweite Limit für offene Dateideskriptoren; weitere Operationen blockieren.
- Speichermangel / Swap-Aktivität: Wenn der Arbeitsspeicher des Servers voll ist und intensiv ausgelagert wird, verlangsamen sich die Antwortzeiten von Kurento dramatisch.
- Angesammelter Sitzungsmüll: Nach längerem Betrieb ohne Neustart häufen sich veraltete Medienpipelines und Ressourcenlecks an, die neue Anfragen blockieren.
- ICE-TCP auf eingeschränkten Netzwerken: Mit aktiviertem ICE-TCP kann das ICE-Gathering für die gesamte
failAfter-Dauer hängen bleiben. - Inkonsistenter mcs-core-Zustand (bbb-webrtc-sfu < 2.3.2): Nach einem Kurento-Absturz und schnellem Neustart wurde der interne Zustand nicht korrekt zurückgesetzt – alle folgenden Anfragen liefen dann ins Timeout. Dieser Fehler wurde in Version 2.3.2 behoben.
- Fehlender oder defekter KMS-Neustart-Cronjob: Wenn der stündliche Neustart von Kurento (
/etc/cron.hourly/bbb-restart-kms) deaktiviert oder fehlerhaft ist, akkumulieren sich Probleme über die Zeit.
Lösungen
Für Teilnehmer
- Seite neu laden: Schließen Sie den Browser-Tab und öffnen Sie den Meeting-Link erneut. Ein einfacher Neustart löst vorübergehende Verbindungsprobleme oft sofort.
- Anderen Browser oder Gerät testen: Versuchen Sie es mit einem anderen Browser (Chrome, Firefox, Edge) oder einem anderen Endgerät, um gerätespezifische Probleme auszuschließen.
- Netzwerkverbindung prüfen: Stellen Sie sicher, dass Ihre Internetverbindung stabil ist. VPNs oder restriktive Firewalls können die WebRTC-Verbindung beeinträchtigen.
- Administrator informieren: Wenn das Problem nach dem Neuladen weiterhin besteht und auch andere Teilnehmer betroffen sind, liegt die Ursache wahrscheinlich auf dem Server. Wenden Sie sich an Ihren BigBlueButton-Administrator.
Für Administratoren
- Sofortmaßnahme – Dienste neu starten: Ein Neustart von Kurento und dem SFU-Dienst behebt den Fehler in den meisten Fällen sofort.
sudo systemctl restart kurento-media-server
sudo systemctl restart bbb-webrtc-sfu
# Alternativ: vollständiger BBB-Neustart
sudo bbb-conf --restart- CPU- und Speicherauslastung prüfen:
top -p $(pgrep kurento-media-server) -b -n 5 -d 2
free -h
vmstat 1 10- Dateideskriptor-Erschöpfung prüfen:
KMS_PID=$(pgrep kurento-media-server)
cat /proc/$KMS_PID/limits | grep "open files"
ls /proc/$KMS_PID/fd | wc -l- Dateideskriptor- und Thread-Limits erhöhen: Falls die Auslastung nahe am Limit liegt, erhöhen Sie die Werte in der Konfiguration.
sudo nano /etc/default/kurento-media-server
# Folgende Werte setzen:
# DAEMON_MAX_FILES=65536
# DAEMON_MAX_THREADS=8192
sudo systemctl restart kurento-media-server- Kurento-Protokolle auf Abstürze und Fehler prüfen:
cat /var/log/kurento-media-server/errors.log
journalctl -u kurento-media-server --since "2 hours ago" | tail -100
ls /var/crash/ | grep kurento- bbb-webrtc-sfu aktualisieren (Zustandsfehler in < 2.3.2): Wenn die installierte Version älter als 2.3.2 ist, sollte ein Update die Ursache dauerhaft beheben.
sudo apt-get update && sudo apt-get install --only-upgrade bbb-webrtc-sfu
sudo bbb-conf --restart- ICE-TCP deaktivieren (bei Netzwerkproblemen): Auf Servern hinter restriktiven Firewalls kann ICE-TCP das ICE-Gathering blockieren.
sudo nano /etc/kurento/modules/kurento/WebRtcEndpoint.conf.ini
# Zeile auskommentieren: iceTcp=0
sudo systemctl restart kurento-media-server bbb-webrtc-sfu- Automatischen KMS-Neustart einrichten: Damit Kurento bei Inaktivität regelmäßig neu gestartet wird, empfiehlt sich ein korrekt konfigurierter Cronjob.
cat > /etc/cron.hourly/bbb-restart-kms <<'CRON'
#!/bin/bash
# Kurento nur neu starten, wenn keine aktiven Meetings laufen
ACTIVE=$(curl -s http://localhost:8090/bigbluebutton/api/getMeetings | grep -c "meetingID")
if [ "$ACTIVE" -eq "0" ]; then
systemctl restart kurento-media-server
sleep 3
systemctl restart bbb-webrtc-sfu
fi
CRON
chmod +x /etc/cron.hourly/bbb-restart-kmsWeitere Informationen
Fehler 2003 ist hauptsächlich auf BBB-Versionen bis 2.4 mit Kurento als Standard-Media-Engine relevant. Ab BBB 2.5 wird standardmäßig mediasoup verwendet – dort tritt 2003 nur noch unter extremer Überlast auf (mediasoup-Worker-IPC-Timeout). Ab BBB 2.7 übernimmt bbb-webrtc-recorder (Pion-basiert) die Aufnahme, sodass der Aufnahmepfad in neueren Installationen nicht mehr von Kurento abhängt.
Technische Details für Entwickler
Fehler 2003 entspricht dem internen Code MEDIA_SERVER_REQUEST_TIMEOUT in mcs-core (Teil von bbb-webrtc-sfu). mcs-core sendet JSON-RPC-Befehle an Kurento (Port 8888) oder über mediasoup-IPC und wartet auf eine Antwort. Bleibt diese aus, wird nach Ablauf des failAfter-Timeouts Fehler 2003 ausgelöst. Der kritische Zustandsfehler in Versionen vor 2.3.2 (GitHub PR #19) führte dazu, dass nach einem schnellen Kurento-Neustart der Host-Zustand in mcs-core nicht zurückgesetzt wurde und alle nachfolgenden Anfragen permanent ins Timeout liefen.
