Posts by Hans Alfson

    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

    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

    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

    .....

    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

    .....

    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::)

    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 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

    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

    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.


    Scheduler.txt habe ich wieder umbenannt und den Server ohne den Scheduler restartet. :(


    LG

    Hans

    Files

    • Logs.zip

      (601.46 kB, downloaded 31 times, last: )

    .....
    Hast du den Server auf eigener Hardware oder Online?

    Den Server haben wir bei https://gamepanel.gtxgaming.co.uk angemietet. Er hat 12 Slots, wird aber nur von einer Hand voll Spielern besucht, ausschließlich im Kreativ-Mode. Meistens baut jeder für sich alleine. Hin und wieder besuchen wir einander, um die Kreationen der anderen zu besichtigen. Mehr als vier Spieler gleichzeitig habe ich noch nicht erlebt. Unsere Konstruktionen gehen manchmal bis an die Grenzen des Möglichen. Allerdings baut der betroffene Player eher im bescheidenen Rahmen.

    Bei glider, das ist der Player mit den Problemen, ist etwas Neues aufgetaucht. Sie hat mir folgende Nachricht geschickt:


    Zitat:

    Nun passierte endlich mal was neues grin


    Als ich versuchte, meine Testtraumrutsche zu zerstören, bekam ich plötzlich diese Fehlermeldung:

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


    Weiß jemand, was das zu bedeuten hat? glider ist im Rentenalter und versucht ganz sicher nicht zu cheaten! ^^


    LG

    Hans


    Zur Ergänzung:

    ......

    [WARNING] [15:34:44] Player dreamflyer60 illegal state: Construction element (3565825) too far away: (5079.37, 240.55, 2726.23) vs (5013.63, 172.74, 2743.63)

    [WARNING] [15:34:45] Player dreamflyer60 illegal state: Construction element (3565825) too far away: (5079.37, 240.55, 2726.23) vs (5013.63, 172.74, 2743.63)

    [WARNING] [15:34:45] Player dreamflyer60 illegal state: Construction element (3565825) too far away: (5079.37, 240.55, 2726.23) vs (5013.63, 172.74, 2743.63)

    [WARNING] [15:34:46] Player dreamflyer60 illegal state: Construction element (3565825) too far away: (5079.37, 240.55, 2726.23) vs (5013.63, 172.74, 2743.63)

    Kick player dreamflyer60 by Server. Reason: #message.multiplayer.illegalstate

    [15:34:46] ::::SERVER: CLIENT 0 CHANGE STATE (Connected -> DisconnectLater)

    [ENET SERVER] Client 0 disconnected (85.1.244.6)

    [15:34:46] ::::SERVER: CLIENT 0 CHANGE STATE (DisconnectLater -> Disconnected)

    [15:34:46] ::::SERVER: CLIENT 0 CHANGE STATE (Disconnected -> Disconnected)

    [15:34:46] ::::SERVER: CLIENT 0 DISCONNECTED

    Server end player auth (76561199764473435, Steam)

    END STEAM AUTH: 76561199764473435

    Hallo Zusammen


    Der Fehler scheint weder mit dem Plug-In noch unmittelbar mit dem betroffenen Spieler in Verbindung zu stehen. Mal kann der Spieler längere Zeit problemlos spielen, mal fliegt er und alle anderen mit ihm, nach 2 -20 Minuten raus.


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


    [WARNING] [13:50:18] Permission key 'chatcolor_chatnamecolor' not found!

    [WARNING] [13:50:18] Permission key 'chatcolor_commands' not found!

    [WARNING] [13:50:18] Permission key 'chatcolor_deny' not found!

    [WARNING] [13:50:18] Permission key 'chatcolor_deny' (array) not found!


    Da hat wohl jemand versucht irgendwas zu ändern und dabei Fragmente aus der Java-Version verwendet. Daraufhin habe ich komplett neue Permissions aus den Vorgaben (Permissions [New Version]) erstellt und angepasst. Danach waren die Warnungen weg.


    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:


    [WARNING] [16:20:53] Player Hans (UID: 76561198076034469) reloaded all permissions...

    Default permission loaded successfully!

    Permission 'admin' loaded successfully!

    Permission 'player' loaded successfully!

    Permission '4975855' loaded successfully!

    [DB] Saved 3841 npcs in database (10 ms)

    [DB] Saved 1 players in database (0 ms)

    [EXCEPTION] Error while executing player command (0)

    [ERROR] NullReferenceException: Object reference not set to an instance of an object.

    RisingWorld.Server.Network.Listeners.ServerGeneralListener.CommandReceived (JIW.Network.Core.Common.IPacket packet, JIW.Network.Core.Server.AbstractConnection client) (at C:/GitLab-Runner/builds/jxpAq3Km/2/jiw-games/rising-world/Assets/Scripts/Server/Network/Listeners/ServerGeneralListener.cs:4740)

    JIW.Network.Core.Server.AbstractNetworkServer.EnqueuePacket (JIW.Network.Core.Common.IPacket packet, JIW.Network.Core.Server.AbstractConnection connection) (at C:/GitLab-Runner/builds/jxpAq3Km/2/jiw-games/rising-world/Assets/Plugins/JIW Network/Scripts/Server/AbstractNetworkServer.cs:168)

    JIW.Network.Core.Common.Event.NetworkEvent.Execute (JIW.Network.Core.Server.AbstractNetworkServer server, JIW.Network.Core.Client.AbstractNetworkClient client) (at C:/GitLab-Runner/builds/jxpAq3Km/2/jiw-games/rising-world/Assets/Plugins/JIW Network/Scripts/Common/Event/NetworkEvent.cs:150)

    JIW.Network.Core.Common.Channel.Run () (at C:/GitLab-Runner/builds/jxpAq3Km/2/jiw-games/rising-world/Assets/Plugins/JIW Network/Scripts/Common/Channel.cs:148)

    System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) (at <00000000000000000000000000000000>:0)

    System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) (at <00000000000000000000000000000000>:0)

    UnityEngine.Debug:LogException(Exception)

    RisingWorld.Server.Network.Listeners.ServerGeneralListener:CommandReceived(IPacket, AbstractConnection) (at C:/GitLab-Runner/builds/jxpAq3Km/2/jiw-games/rising-world/Assets/Scripts/Server/Network/Listeners/ServerGeneralListener.cs:6786)

    JIW.Network.Core.Server.AbstractNetworkServer:EnqueuePacket(IPacket, AbstractConnection) (at C:/GitLab-Runner/builds/jxpAq3Km/2/jiw-games/rising-world/Assets/Plugins/JIW Network/Scripts/Server/AbstractNetworkServer.cs:168)

    JIW.Network.Core.Common.Event.NetworkEvent:Execute(AbstractNetworkServer, AbstractNetworkClient) (at C:/GitLab-Runner/builds/jxpAq3Km/2/jiw-games/rising-world/Assets/Plugins/JIW Network/Scripts/Common/Event/NetworkEvent.cs:150)

    JIW.Network.Core.Common.Channel:Run() (at C:/GitLab-Runner/builds/jxpAq3Km/2/jiw-games/rising-world/Assets/Plugins/JIW Network/Scripts/Common/Channel.cs:148)

    System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object)


    Da mir der Verdacht gekommen ist, einen Namenskonflikt ausgelöst zu haben, habe ich die Permission-Gruppe nach "all_player" umbenannt. Danach hat die Zuweisung funktioniert, aber das mag auch Zufall gewesen sein. ;)


    Desweiteren habe ich die interne Schedule-Funktion (Server Task Scheduler) aktiviert, um einen automatischen Restart auszuführen. Das hat funktioniert:


    [SCHEDULER] Register trigger (in 41400 s): say Warning: Server restarts in 30 minutes!

    [SCHEDULER] Register trigger (in 42300 s): say Warning: Server restarts in 15 minutes!

    [SCHEDULER] Register trigger (in 42600 s): yell Server restarts in 10 minutes!

    [SCHEDULER] Register trigger (in 42900 s): yell Server restarts in 5 minutes!

    [SCHEDULER] Register trigger (in 43140 s): lock Server is currently restarting, please try again shortly!

    [SCHEDULER] Register trigger (in 43140 s): kickall Server restart

    [SCHEDULER] Register trigger (in 43140 s): saveall

    [SCHEDULER] Register trigger (in 43200 s): restart

    [SCHEDULER] Initialized

    ........

    CHAT MESSAGE: Warning: Server restarts in 30 minutes!

    [2024-10-22 01:15] Server: Warning: Server restarts in 30 minutes!

    .....

    CHAT MESSAGE: Warning: Server restarts in 15 minutes!

    [2024-10-22 01:30] Server: Warning: Server restarts in 15 minutes!

    .....

    YELL MESSAGE: Server restarts in 10 minutes!

    .....

    YELL MESSAGE: Server restarts in 5 minutes!

    .....

    Server now no longer accepts new connections ("Server is currently restarting, please try again shortly!")

    Kick all players: Server restart

    Save all...

    [DB] Saved 2 npcs in database (0 ms)

    [DB] Saved 3841 npcs in database (10 ms)

    [WARNING] [01:45:12] R E S T A R T S E R V E R

    [WARNING] [01:45:12] Exit (0)

    .....

    Rising World Dedicated Server Version 0.7.5.2 (13) 2024-10-22 01:45

    Windows 10 (10.0.20348) 64bit (Desktop)

    AMD Ryzen 9 7950X3D 16-Core Processor , 32 Cores, 4192 MHz

    System Product Name (ASUS) 130271 MB RAM


    Commit: de445703d5f0296a5d7d7a896d8b41f3c50d8e99

    Branch: master JobID: 16141

    ____________________________________________________


    [C++] Initialize Main.cpp

    Initialized default settings (248 ms)

    ARG: Override Settings_MaxPlayers to 12

    ARG: Override Server_Port to 4255

    [WARNING] [01:45:15] Server was restarted before...


    Eine große Anzahl von Save-Meldungen zeigt, dass der Server danach gelaufen sein muss.

    .....

    [DB] Saved 3843 npcs in database (9 ms)

    [DB] Saved 3843 npcs in database (8 ms)

    [DB] Saved 3843 npcs in database (10 ms)

    [DB] Saved 3843 npcs in database (9 ms)

    .....

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


    2024-10-22-01-45-30.log

    2024-10-22-01-47-46.log

    .....

    2024-10-22-10-44-23.log

    2024-10-22-10-46-38.log


    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. :thinking: Die Log-Files habe ich gezippt und angehängt.


    LG

    Hans

    Files

    • Logs.zip

      (433.07 kB, downloaded 45 times, last: )

    last status: no plug-ins, no admin permissons (UID of the player in "Server_Admins= UID; UID; UID" deleted)


    - playing on Test-Server no_Rules, no problems

    - playing local as a single player, no problems

    - playing together with a friend, no problems

    - playing on our server, timeout after 5 up to 20 minutes, server restart neccessary

    - just online on our server without any activities, no timeout since nearly 3 houres


    Regards

    Hans

    Unfortunately, yesterday we have had the same server problem, but without any installed plug-in on the server. Again, the same user was online. While playing a timeout came, connecting the server was not possible anymore. Restarting the server was required. :(


    Regards

    Hans

    Files

    • Logs.zip

      (201.51 kB, downloaded 42 times, last: )

    Hallo Elfradhr


    Es geht sogar noch weiter. Ich habe mich in eine Höhe von mehr als 5 000 000 (oder waren es sogar 50 000 000, habs vergessen) Blocks teleportiert. Von dort aus ist die Welt nur noch ein Stecknadelkopf. Etwas niedriger habe ich den folgenden Screenshot gemacht. :D

    LG

    Hans


    Edit: Es waren sogar 5.000.000.000 Blocks, um die Welt als Stecknadelkopf zu sehen. Die Rundungsfehler, bei der Berechnung der Position meiner Avatar-Bestandteile führten dazu, dass meine Arme wie unabhängige Objekte wild vor mir umher hüpften. :crazy:


    Das hört sich gut an. Vielen Dank für die Informationen. :) Dann kann ich später, am orbitalen Ende meines Orbital-Seils, auf Höhe 25000, doch noch eine Raumstation verankern und zwischendurch den Ausblick ins All genießen. ;) Ich freue mich schon darauf, mit den erweiterten Möglichkeiten zu spielen. :D


    LG

    Hans