fix(xaseco): Neustart-Schleifen durch TS3-Plugin und Dedimania beheben
- tsstatus.php: ungefangene Exception bei fehlerhafter TS3-Query-Antwort beendete XAseco (auch unter PHP 7, live 58x im Log); jetzt leere Antwort - XAsecoHealthcheck.sh: Webaccess-/Dedimania-Verbindungsfehler nicht mehr als XAseco-Fehler werten; das nicht erreichbare dedimania.net loeste sonst alle ~30 Minuten einen Neustart aus
This commit is contained in:
1 parent
96798c2db6
commit
8b6a34e8d1
2 files changed
+15
-2
No files matched your search
@@ -446,6 +446,15 @@ if [ -f "$XASECO_TS3" ] && grep -qF "if ( count(\$info['players']) > 0 ) {" "$XA
|
||||
echo " plugin.teamspeak3.php: count()-Pruefung entschaerft."
|
||||
fi
|
||||
|
||||
# XAseco TeamSpeak3-Plugin: Antwortet der TS3-Query-Port nicht korrekt, wirft
|
||||
# tsstatus.php eine Exception, die niemand faengt -> XAseco stirbt (auch unter
|
||||
# PHP 7). Wie bei den uebrigen, bereits auskommentierten throws: leer zurueck.
|
||||
XASECO_TSSTATUS="/opt/tmserver/xaseco/includes/tsstatus.php"
|
||||
if [ -f "$XASECO_TSSTATUS" ] && grep -qF 'if(!$isTs3) throw new Exception("Not a Teamspeak 3 server/bad query port");' "$XASECO_TSSTATUS"; then
|
||||
sed -i 's|if(!\$isTs3) throw new Exception("Not a Teamspeak 3 server/bad query port");|if(!$isTs3) { $this->disconnect(); return ""; } // tmserver-docker: kein Absturz|' "$XASECO_TSSTATUS"
|
||||
echo " tsstatus.php: Exception bei fehlerhaftem TS3-Query entschaerft."
|
||||
fi
|
||||
|
||||
# AdminServ: stat() liefert bei Dateinamen mit Sonderzeichen false (AdminServ
|
||||
# wandelt sie vorher per utf8_encode um). @array_slice(false) war unter PHP 7
|
||||
# still, unter PHP 8 ein TypeError -> "MatchSettings erstellen" brach ab.
|
||||
|
||||
@@ -94,8 +94,12 @@ check_xaseco_log() {
|
||||
if [ ! -f "$LOG_FILE" ]; then
|
||||
return 0
|
||||
fi
|
||||
# Letzte 20 Zeilen auf fatale Fehler / Verbindungsabbrueche pruefen
|
||||
LAST_LINES=$(tail -20 "$LOG_FILE" 2>/dev/null)
|
||||
# Letzte 20 Zeilen auf fatale Fehler / Verbindungsabbrueche pruefen.
|
||||
# Fehlschlaege externer Webdienste (Dedimania, ManiaKarma, ...) laufen ueber
|
||||
# Webaccess/fsockopen und betreffen nicht die Verbindung zum TM-Server.
|
||||
# Ohne Filter loeste das nicht erreichbare dedimania.net alle ~30 Minuten
|
||||
# einen XAseco-Neustart aus.
|
||||
LAST_LINES=$(tail -20 "$LOG_FILE" 2>/dev/null | grep -v -i "webaccess\|fsockopen\|dedimania")
|
||||
# Typische Fehlermeldungen bei XAseco-Verbindungsverlust
|
||||
if echo "$LAST_LINES" | grep -qi "connection refused\|broken pipe\|server not responding\|transport error\|socket error\|fatal error"; then
|
||||
return 1
|
||||
|
||||
Reference in new issue
Block a user