Server-Crash, nur bei einem bestimmten Spieler

A new update is now available, introducing seasons and more!
Latest hotfix: 0.8.0.1 (2024-12-20)
  • Sorry für die späte Rückmeldung! Tut mir Leid zu hören, dass die Probleme weiterhin auftreten... offensichtlich liegt es nicht am Plugin. Es sieht trotzdem so aus, als wäre irgendwo eine Endlosschleife o.ä. Der Server verwendet mehrere Threads, und einer der Threads hängt offenbar fest - darum läuft zwar der Server an sich noch weiter (mit Speicherausgaben), aber niemand kann mehr connecten :thinking:


    Um wirklich herausfinden zu können, was da überhaupt hängt, bräuchten wir das nächste Update, was explizit ein Monitoring dafür haben wird... das nächste Update war eigentlich zusammen mit dem Storepage-Update geplant, aber evtl. ziehen wir es etwas vor. Das könnte etwas Licht ins Dunkel bringen.


    Gibt es denn irgendeine Aktion, die das Verhalten hervorruft (also den Verbindungsverlust)? Wenn der betreffende Spieler rausfliegt (und du zufällig [noch] online bist), kannst du ggf. einmal serverinfo network in die Konsole eingeben? Die Ausgabe davon könnte interessant sein... du könntest dann vll entweder einen Screenshot hier posten oder alternativ einen Report danach senden (einfach anschließend report in die Konsole eingeben) :)


    Mir waren in den Log-Files Warnungen aufgefallen, die sich auf fehlende Permission-Keys bezogen:

    Diese Permission Keys gibt es tatsächlich nicht. Statt chatcolor_chatnamecolor ist vmtl. info_chatnamecolor gemeint. Auch ein chatcolor_deny gibt es nicht, vmtl. war info_chat gemeint (womit der Chat generell erlaubt/verboten werden kann)?


    Anschließend habe ich eine neue Permission-Gruppe mit dem Namen "player" erstellt und versucht diese dem betroffenen Spieler zuzuweisen. Dabei ist es zu einer Fehlermeldung gekommen, ohne Absturz des Servers:

    Danke für den Hinweis, das ist tatsächlich ein kleiner Bug! Allerdings ist der harmlos und hat keine Auswirkung auf den Server, der Befehl wird auch trotzdem ausgeführt - nur bekommt man in der Konsole keine Rückantwort durch diesen Bug ;)


    Allerdings wurde gleichzeitig bis zum Morgen alle 2 Minuten erfolglos versucht den Server erneut zu starten, wie die Log-Files zeigen.

    [...]

    Am Morgen habe ich den Server manuell gestoppt und wieder gestartet. Danach war wieder alles in Ordnung. Vermutlich hängt das irgendwie mit dem Scheduler zusammen

    Das Problem ist, dass Steam einen Port nicht freigibt (4254 UDP)... die Situation scheint sich neuerdings leider etwas verschärft zu haben und der Port zu lange blockiert bleibt. Vor allem wenn der Server nicht ordnungsgemäß heruntergefahren wird.

    Wahrscheinlich ist der Port aber effektiv gar nicht mehr unbedingt blockiert, sodass wir die Prüfung für den Steam-Port vmtl. einfach entfernen können. Das Problem können wir also evtl. mit dem nächsten Update fixen.


    "Du wurdest vom Server gekicked! Illegale State-Limite überschritten! Bitte überprüfe deine Internetverbindung und stelle sicher, keine modifizierten Spieldaten zu verwenden."

    Ein "Illegal State" tritt auf, wenn der Server irgendwas feststellt, was für ihn nicht plausibel ist. Grundsätzlich ist es so, dass fast alle Aktionen des Clients vom Server nochmal verifiziert werden. ZB dass beim Aufheben von Items oder Zerstören von Bauteilen der Spieler nicht zu weit entfernt ist. Wenn zu viele "Illegal States" auftreten, wird der entsprechende Spieler gekicked.


    In dem konkreten Fall wurde versucht, Bauteile zu entfernen, doch der Spieler war lt. Server zu weit davon entfernt (die erste Koordinate ist die Position, wo das Bauteil geschlagen wurde, und die zweite Koordinate ist die Position des Bauteils selbst).


    Wie das in dem Fall zustande kam ist nachträglich leider schwer zu sagen... das kann mit Desync zusammenhängen (dass neue Spielerpositionen nicht beim Server ankamen), oder aber natürlich kann auch ein Bug dafür verantwortlich sein. In der Vergangenheit gab es das Problem häufig bei besonders großen Bauteilen (das ist aber *eigentlich* gefixed). Waren in dem Fall evtl. extrem große Bauteile involviert?


    Neues zum Scheduler!


    Heute Nacht ist der gleiche Effekt aufgetreten, wie in der Nacht zuvor:


    - Der Scheduler arbeitete wie vorgesehen und restartete den Server erfolgreich und dauerhaft.

    - Gleichzeitig versucht er wohl im Hintergrund, alle zwei Minuten, eine zweite Server-Instanz zu starten, was aber zu einem Fehler führt. Übrig bleibt ein weiteres Log-File.


    Am Morgen konnte ich mich problemlos auf dem Server anmelden, während weiterhin versucht wurde den Server ein zweites Mal zu starten. Aus dem Spiel heraus habe ich mittels Konsoleneingabe einen Shutdown ausgeführt. Daraufhin konnte der Prozess im Hintergrund den Server erfolgreich nachstarten. Danach wurden keine weiteren Start-Versuche mehr unternommen.

    Hmm... aus den Log-Dateien geht das leider nicht direkt hervor :thinking: Lt. 2024-10-22-11-02-29.log wird der Server nach exakt 12 Stunden (wie im Scheduler eingestellt) neugestartet (mit dem Hinweis "R E S T A R T S E R V E R" ganz am Ende). Soweit alles wie erwartet. Lt. 2024-10-22-23-02-34.log startet der Server dann korrekt neu (und erkennt auch, dass es ein Restart war). Nach dann aber knapp 11 Stunden wird der Server beendet ohne Hinweis auf einen Restart. Da der Server scheinbar nicht ordnungsgemäß beendet wurde, bleibt der Port blockiert (weshalb der Neustart fehlschlägt).


    Auf mich wirkt es so, dass der 2. Restart extern durchgeführt wurde, also nicht vom Server selbst... denn es deutet nichts darauf hin, dass der Server den Restart initiiert hätte (und auch der Zeitpunkt stimmt wie gesagt nicht). Hat der Hoster vll so eine Mechanik?

  • Hallo red51


    Vielen Dank für die Infos :thumbup:


    .....

    Gibt es denn irgendeine Aktion, die das Verhalten hervorruft (also den Verbindungsverlust)? Wenn der betreffende Spieler rausfliegt (und du zufällig [noch] online bist), kannst du ggf. einmal serverinfo network in die Konsole eingeben? Die Ausgabe davon könnte interessant sein... du könntest dann vll entweder einen Screenshot hier posten oder alternativ einen Report danach senden (einfach anschließend report in die Konsole eingeben) :)


    Unmittelbare Zusammenhänge sind nicht erkennbar. Es sieht jedoch so aus, als wäre die Wahrscheinlichkeit herauszufliegen bei Bautätigkeiten größer als beim Umherlaufen.

    Leider fliegen alle die online sind immer zeitgleich vom Server. Erst nach einem Restart über die Browser-Konsole des Hosters kann man sich wieder einloggen. :(


    .....

    Ein "Illegal State" tritt auf, wenn der Server irgendwas feststellt, was für ihn nicht plausibel ist. Grundsätzlich ist es so, dass fast alle Aktionen des Clients vom Server nochmal verifiziert werden. ZB dass beim Aufheben von Items oder Zerstören von Bauteilen der Spieler nicht zu weit entfernt ist. Wenn zu viele "Illegal States" auftreten, wird der entsprechende Spieler gekicked.


    In dem konkreten Fall wurde versucht, Bauteile zu entfernen, doch der Spieler war lt. Server zu weit davon entfernt (die erste Koordinate ist die Position, wo das Bauteil geschlagen wurde, und die zweite Koordinate ist die Position des Bauteils selbst).


    Wie das in dem Fall zustande kam ist nachträglich leider schwer zu sagen... das kann mit Desync zusammenhängen (dass neue Spielerpositionen nicht beim Server ankamen), oder aber natürlich kann auch ein Bug dafür verantwortlich sein. In der Vergangenheit gab es das Problem häufig bei besonders großen Bauteilen (das ist aber *eigentlich* gefixed). Waren in dem Fall evtl. extrem große Bauteile involviert?


    Beides ist möglich, zu weit weit entfernt gewesen und/oder extrem großes Bauteil. Der Spieler spielt zum erst Mal in seinem Leben ein Computerspiel und alles ist noch neu und ungewohnt. :) Ich habe das Limit jetzt auf 500 gesetzt.


    Hmm... aus den Log-Dateien geht das leider nicht direkt hervor :thinking: Lt. 2024-10-22-11-02-29.log wird der Server nach exakt 12 Stunden (wie im Scheduler eingestellt) neugestartet (mit dem Hinweis "R E S T A R T S E R V E R" ganz am Ende). Soweit alles wie erwartet. Lt. 2024-10-22-23-02-34.log startet der Server dann korrekt neu (und erkennt auch, dass es ein Restart war). Nach dann aber knapp 11 Stunden wird der Server beendet ohne Hinweis auf einen Restart. Da der Server scheinbar nicht ordnungsgemäß beendet wurde, bleibt der Port blockiert (weshalb der Neustart fehlschlägt).


    Auf mich wirkt es so, dass der 2. Restart extern durchgeführt wurde, also nicht vom Server selbst... denn es deutet nichts darauf hin, dass der Server den Restart initiiert hätte (und auch der Zeitpunkt stimmt wie gesagt nicht). Hat der Hoster vll so eine Mechanik?


    Ich denke es lässt sich nachvollziehen. :thinking: Nach dem Start 2024-10-22-23-02-34.log ist der Server bis zum Morgen durchgelaufen. In dieser Zeit wurde alle 2 Minuten versucht ein weiteres Mal zu starten. Am Morgen habe ich mir die Sache angeschaut und mich auf dem Server eingeloggt, was problemlos funktioniert hat. Während ich auf dem Server war, wurden im Hintergrund weiterhin Startversuche unternommen. Dann habe ich den Konsolen-Befehl shutdown eingegeben und den Server angehalten. Letzter Eintrag im Log: "[WARNING] [10:13:18] Exit (0)".

    Ohne weiteres Zutun meinerseits ist der Server dann nachgestartet worden 2024-10-23-10-13-11.log. Danach wurden keine weiteren Startversuche mehr unternommen.


    Da ich den Scheduler im Verdacht hatte, habe ich scheduler.txt unbenannt und einen Restart ausgeführt. Seit dem ist wieder alles wie zuvor.


    Der Hoster bietet ebenfalls einen Scheduler für einen Restart an. Dieser hat aber nicht funktioniert, als ich ihn vor etwa 2 oder 3 Wochen ausprobiert habe. Daraufhin habe ich ihn wieder deaktiviert.


    LG

    Hans

  • Unmittelbare Zusammenhänge sind nicht erkennbar. Es sieht jedoch so aus, als wäre die Wahrscheinlichkeit herauszufliegen bei Bautätigkeiten größer als beim Umherlaufen.

    Leider fliegen alle die online sind immer zeitgleich vom Server. Erst nach einem Restart über die Browser-Konsole des Hosters kann man sich wieder einloggen. :(

    Schade... dann wird vmtl. nur das Monitoring des nächsten Updates helfen können, um irgendeinen Anhaltspunkt zu liefern, was da los sein kann :/


    Ich denke es lässt sich nachvollziehen. :thinking: Nach dem Start 2024-10-22-23-02-34.log ist der Server bis zum Morgen durchgelaufen. In dieser Zeit wurde alle 2 Minuten versucht ein weiteres Mal zu starten. Am Morgen habe ich mir die Sache angeschaut und mich auf dem Server eingeloggt, was problemlos funktioniert hat. Während ich auf dem Server war, wurden im Hintergrund weiterhin Startversuche unternommen. Dann habe ich den Konsolen-Befehl shutdown eingegeben und den Server angehalten. Letzter Eintrag im Log: "[WARNING] [10:13:18] Exit (0)".

    Stimmt, die weiteren Logs stammen tatsächlich aus der Zeit, während der Server noch läuft :wat: Allerdings kann das eigentlich nicht durch den Scheduler-Restart verursacht werden :monocle: Wenn der Server sich selbst neustartet, wird ausnahmslos immer ein -wasrestarted Parameter mitgegeben (und wenn dieser vorhanden ist, gibt der Server beim Start die Ausgabe Server was restarted before... aus). Es gibt nur eine zentrale Stelle für einen Restart (hier kann eigentlich nichts durcheinanderkommen oder dazwischenfunken). Das OS wird angewiesen, den bestehenden Prozess durch den neuen Serverprozess zu ersetzen (wenn das aus irgendeinem Grund OS-seitig nicht funktioniert, dann dürfte der Restart niemals korrekt funktionieren).


    Es muss also eigentlich irgendwas externes sein, was den Server immer wieder startet (was natürlich nicht klappt, da der Server ja bereits läuft und die Ports belegt) :thinking: Wahrscheinlich hat der Hoster eine Mechanik, die das auslöst (durch einen Restart ändert sich die PID - vll überwacht der Hoster diese und startet den Prozess dann neu, weil er denkt, dass der Server abgestürzt sei). In so einem Szenario ist es dann sinnvoll, den Server nicht durch die eingebaute Mechanik neuzustarten, sondern einfach einen shutdown durchzuführen (also im Scheduler die Zeile /restart einfach durch /shutdown ersetzen). Der erste Restart-Versuch seitens Hoster lt. Logs wurde aber erst 15 Min später durchgeführt (erst danach ja im 2 Min Takt), daher ist das vmtl. auch keine optimale Lösung (außer, das Webinterface des Hosters bietet da entsprechende Einstellungsmöglichkeiten)

  • .....

    Es muss also eigentlich irgendwas externes sein, was den Server immer wieder startet (was natürlich nicht klappt, da der Server ja bereits läuft und die Ports belegt) :thinking: Wahrscheinlich hat der Hoster eine Mechanik, die das auslöst (durch einen Restart ändert sich die PID - vll überwacht der Hoster diese und startet den Prozess dann neu, weil er denkt, dass der Server abgestürzt sei). In so einem Szenario ist es dann sinnvoll, den Server nicht durch die eingebaute Mechanik neuzustarten, sondern einfach einen shutdown durchzuführen (also im Scheduler die Zeile /restart einfach durch /shutdown ersetzen). Der erste Restart-Versuch seitens Hoster lt. Logs wurde aber erst 15 Min später durchgeführt (erst danach ja im 2 Min Takt), daher ist das vmtl. auch keine optimale Lösung .....

    Das werde ich mal ausprobieren.

    ..... (außer, das Webinterface des Hosters bietet da entsprechende Einstellungsmöglichkeiten)


    Es gibt eine solche Einstellmöglichkeit. Es werden Restart, Start und Stop angeboten.



    Hat allerdings nicht funktioniert! Daher habe ich die Funktion wieder deaktiviert.



    Allerdings ist der Server bisher noch nie komplett abgestürzt, so das wir einen automatischen Neustart auf Grund einer PID-Überwachung noch nie beobachten konnten. Ich werde mal einen Shutdown über die Konsole eingeben und warten, ob was passiert. :)


    LG

    Hans

  • Es scheint eine solche PID-Überwachung zu existieren! :) Nachdem ich den Server mit einem Konsolen-Shutdown gestoppt hatte, ist er von alleine wieder gestartet. Es sei denn, die Befehle "shutdown" und "restart", über Konsole eingegeben, führen beide einen anschließenden Neustart aus.


    LG

    Hans

  • Es scheint eine solche PID-Überwachung zu existieren! :) Nachdem ich den Server mit einem Konsolen-Shutdown gestoppt hatte, ist er von alleine wieder gestartet. Es sei denn, die Befehle "shutdown" und "restart", über Konsole eingegeben, führen beide einen anschließenden Neustart aus.

    Ahh, ok, dann ist zumindest dieses Rätsel schonmal gelüftet :D

  • .....

    Es muss also eigentlich irgendwas externes sein, was den Server immer wieder startet (was natürlich nicht klappt, da der Server ja bereits läuft und die Ports belegt) :thinking: Wahrscheinlich hat der Hoster eine Mechanik, die das auslöst (durch einen Restart ändert sich die PID - vll überwacht der Hoster diese und startet den Prozess dann neu, weil er denkt, dass der Server abgestürzt sei). In so einem Szenario ist es dann sinnvoll, den Server nicht durch die eingebaute Mechanik neuzustarten, sondern einfach einen shutdown durchzuführen (also im Scheduler die Zeile /restart einfach durch /shutdown ersetzen). Der erste Restart-Versuch seitens Hoster lt. Logs wurde aber erst 15 Min später durchgeführt (erst danach ja im 2 Min Takt), daher ist das vmtl. auch keine optimale Lösung (außer, das Webinterface des Hosters bietet da entsprechende Einstellungsmöglichkeiten)

    Die Zeile /restart einfach durch /shutdown zu ersetzen hat funktioniert. Der Scheduler hat der Prozess wie geplant nach 12 Stunden gestoppt und die PID-Überwachung hat ihn Sekunden später wieder gestartet. :thumbup::)

  • .....

    Ein "Illegal State" tritt auf, wenn der Server irgendwas feststellt, was für ihn nicht plausibel ist. Grundsätzlich ist es so, dass fast alle Aktionen des Clients vom Server nochmal verifiziert werden. ZB dass beim Aufheben von Items oder Zerstören von Bauteilen der Spieler nicht zu weit entfernt ist. Wenn zu viele "Illegal States" auftreten, wird der entsprechende Spieler gekicked.


    In dem konkreten Fall wurde versucht, Bauteile zu entfernen, doch der Spieler war lt. Server zu weit davon entfernt (die erste Koordinate ist die Position, wo das Bauteil geschlagen wurde, und die zweite Koordinate ist die Position des Bauteils selbst).


    Wie das in dem Fall zustande kam ist nachträglich leider schwer zu sagen... das kann mit Desync zusammenhängen (dass neue Spielerpositionen nicht beim Server ankamen), oder aber natürlich kann auch ein Bug dafür verantwortlich sein. In der Vergangenheit gab es das Problem häufig bei besonders großen Bauteilen (das ist aber *eigentlich* gefixed). Waren in dem Fall evtl. extrem große Bauteile involviert?

    .....


    Den "Illegal State" konnten wir nachvollziehen. Es war tatsächlich ein extrem langes Bauteil involviert. Der Spieler stand an einem Ende des Bauteils und hat dann versucht, dieses zu entfernen. In der Nähe des Schwerpunkts hat das Entfernen dann keine "Illegal State" Meldungen erzeugt. :)


    LG

    Hans

  • Noch eine Ergänzung zu dem seltsamen Fehler. Gestern ist es zum ersten Mal passiert, dass andere Spieler die Verbindung zum Server verloren haben, der danach nicht mehr zu erreichen war. Das war erst wieder nach einem Restart über die Browser-Konsole möglich. Allerdings war der ursprünglich betroffene Spieler erst eine halbe Stunde vorher noch online. :thinking:


    LG

    Hans

  • Der seltsame Fehler taucht in boshafter Regelmäßigkeit auf, wenn der betroffene Spieler online ist. Mal nach 5 Minuten, mal nach einer Stunde. Auch wenn der Server danach nicht mehr erreichbar ist, der Scheduler läuft weiter und restartet, wenn seine Zeit gekommen ist.


    LG

    Hans

  • Ich habe einen Neuen Verdacht!


    ICh weiß nicht ob ihr Blueprints und Blueprints-Tisch schon außgeschlossen habt.
    Kann das sein das der Betreffende Spieler den Blueprint Tisch Öffnet, und hatt er Eventuell eine Umfangreiche Sammlung an Blueprints.

    Ich habe für Erstspieler ein hohes Syncronisations Volumen (Server war im Hintergrung mit Datenaustausch beschäftigt) und in diesem Zeitraum dauerte das Öffnen der BP's unverhältnismäßig lange und der Server hatte sich Verabschiedet:thinking:

  • Die betroffene Spielerin ist eher bescheiden in der Anwendung von Blueprints, Plakaten und Stempeln.:thinking: Wir haben uns erst einmal damit abgefunden hin und wieder einen Restart über den Browser anstoßen zu müssen. Unsere Hoffnung ruht auf dem nächsten Update oder Hotfix mit neuen Meldungen im Logfile. :)


    LG

    Hans

  • Hey, ja, das zusätzliche Monitoring sollte standardmäßig aktiv sein :) Wenn das Problem also nochmal auftritt, enthält die Log-Datei hoffentlich mehr Informationen dazu, was da los ist.


    Kann aber auch sein, dass das noch zu unsensibel eingestellt ist... melde dich am besten nochmal mit einer Log-Datei, sobald das Problem auftritt ;)

  • Hey, ja, das zusätzliche Monitoring sollte standardmäßig aktiv sein :) Wenn das Problem also nochmal auftritt, enthält die Log-Datei hoffentlich mehr Informationen dazu, was da los ist.


    Kann aber auch sein, dass das noch zu unsensibel eingestellt ist... melde dich am besten nochmal mit einer Log-Datei, sobald das Problem auftritt ;)

    Vielen Dank für die Info! Dann harren wir der Dinge, die da kommen sollen. :)


    LG

    Hans

Participate now!

Don’t have an account yet? Create a new account now and be part of our community!