Posts by Devidian

    Kannst du mir ein Zugang machen?

    Habe noch ein Fehler gefunden8)
    :saint:und es noch Bunter gemacht^^

    Zugang ist schwierig da es sich um webspace handelt, ich gebe ungerne ftp zugriff für externe frei. Aber du kannst mir jederzeit updates schicken. Vielleicht richte ich mal ein upload formular ein das du es selbst aktualisieren kannst.


    PS: Wenn man eine checkbox an oder abwählt wird die Sektion wieder geschlossen, das solltest du fixen.

    AdminUtils aktualisiert die chunk Oberflächen für die map, allerdings habe ich das erst kürzlich aktiviert, die crashes gab es schon vorher. Ich kann es aber Zeitweise mal wieder deaktivieren und dann noch mal logs generieren.


    Die KI hatte mir auch vorgeschlagen UseParallelGC oder UseSerialGC zu verwenden, aktuell hab ich letzteres aktiviert seit 9:48 heute. Bisher gab es noch keinen crash. Sollte es einen weiteren geben werde ich die Mapping Funktion aus AdminUtils deaktivieren.


    Bisher habe ich noch kein Plugin das auf blueprints lauscht.


    Die chunk x z Ausgabe findet hier statt: https://github.com/Devidian/rw…dMapChunkCapture.java#L30



    Hier mal aus der aktuellen log session, die noch nicht abgestürzt ist:


    Code
    [Java] [OZ.ThreadDiagnostics] Thread summary: current=59, peak=69, totalStarted=429, names={Cleaner-0=1, Common-Cleaner=1, FileSystemWatchService=1, Finalizer=1, JDA Gateway-Worker 1=1, JDA MainWS-ReadThread=1, JDA MainWS-WriteThread=1, JDA RateLimit-Elastic-Worker 2=1, JDA RateLimit-Scheduler-Worker 1=1, JDA RateLimit-Scheduler-Worker 2=1, Notification Thread=1, OZ-ThreadDiagnostics=1, OZAdminUtils-MapSource=1, OZDiscordConnect-ActivityTimer=1, OZDiscordConnect-RestartTimer=1, OZDiscordConnect-Transport=1, PluginFileWatcher-Thread=1, ReadingThread=1, Reference Handler=1, Signal Dispatcher=1, Thread-26=1, Thread-27=1, Thread-28=1, Thread-29=1, Thread-30=1, Thread-31=1, Thread-37=1, Thread-38=1, Thread-39=1, Thread-40=1, Thread-41=1, Thread-42=1, Thread-43=1, Thread-44=1, Thread-50=1, Thread-51=1, Thread-52=1, Thread-53=1, Thread-8=1, WebSocket-Reconnect=1, WritingThread=1, httpclient-dispatch-1=1, httpclient-dispatch-10=1, httpclient-dispatch-11=1, httpclient-dispatch-12=1, httpclient-dispatch-13=1, httpclient-dispatch-14=1, httpclient-dispatch-15=1, httpclient-dispatch-16=1, httpclient-dispatch-2=1, httpclient-dispatch-3=1, httpclient-dispatch-4=1, httpclient-dispatch-5=1, httpclient-dispatch-6=1, httpclient-dispatch-7=1, httpclient-dispatch-8=1, httpclient-dispatch-9=1, httpclient-main-1=1, main=1}

    Die Session lief bis zum geplanten Neustart einwandfrei durch und es waren einige Spieler aktiv


    interessant ist hier das er shutdown macht aber danach 5 mal neustarten muss weil er das problem mit dem port hat. Du hattest mal gesagt das man in den settings Server_RestartEnabled=False verwenden soll, aber geholfen hat es nicht :D

    Da kommt dann immer das hier:


    Und im Discord sieht das so aus:


    kann ich den Xms wert eigentlich auch über eine server property steuern oder muss ich den mit Plugins_VMOptions überschreiben? Die KI meint der Wert wäre etwas niedrig gewählt :D


    PS: Die Nachtsession lief auch durch. Wenn der heutige Tag auch ohne SIGSEGV oder anderem Absturz läuft schalte ich morgen früh mal auf ParallelGC

    The game does not have any real groups, there is no function to invite other players to "YOUR" party/group so an admin has to decide which players are in which group. By default any player who joins is in the default group so all default group players share the default player group markers. If you as admin create a new group permission file called "super cool secret friends group" and add 5 people to it, they share their group markers. If they quit the game the markers are still there but if you as admin don't add new players to the abounded group, there is no posibillity for other players to see the markers of that group.

    Group markers are ... group markers so if you are in the same group as other players you will see all markers of that group, no matter who created it. Even as admin you should only see the group markers of your group. So for example if you have player A-F and put them in group A besides from your default player permission group, they wont see the default player group markers anymore but they ALL will see markers created from people in that group A.


    If you dont have any permission groups and all players are in the default group (you too) then you will of course soo all players group markers because you are all in the same group.

    Gestern wars ganz schlimm, gefühlt gibt es mehr SIGSEGV seit ich das extra JNI logging aktiviert habe. Ich habe das 26MB log von gestern gesplittet und alle sessions mit SIGSEGV lade ich hier mal hoch. Auffällig war nur das ein Spieler auch sagte er habe vorher mit einer Blaupause hantiert direkt vor dem crash.

    session6 war übrigens mit einer neuen Discord Plugin version, ich habe bei dem Plugin die veraltete JavaCord lib gegen JDA ausgetauscht in der Hoffnung auf Besserung aber ich war nur kurz da und hab ein paar Steine gehauen als er wieder abgeschmiert ist.

    Ich verstehe was du meinst, das ist jedoch kompliziert umzusetzen. Ich meine rein theoretisch ist alles möglich aber...


    ... wenn man das dynamisch gestalten will muss man Regeln definieren welche area-permissions als owner permissions gelten z.b. um sowas zu bestimmen wer die Spiellerrechte des Claims bearbeiten kann, das können nur owner, dabei kann er/sie natürlich keinen weiteren owner bestimmen und auch seine eigene permission nicht. Ein Admin muss außerdem dann irgendwo definieren können gruppeA=>areaOwnerA gruppeB=>areaGruppeB etc. und da die Zuordnung später nicht geändert werden kann würde jemand der vorher in gruppeA war und zu gruppeB promoted wurde nicht automatisch in allen areas auch areaGruppeB bekommen, dafür müsste man dann auch noch entsprechend sorgen.


    ... wenn man das ganze statisch handhaben würde müsste ich eine Anzahl X an verschiedenen Owner-Typen vorgeben und Admins müssten diese entsprechend anpassen nach ihren Bedürfnissen. Da ist halt die Frage wie viele slots definiere ich, wie viele braucht man? Ist sicher einfacher als eine dynamische Zuordnung trotzdem muss auch hier behandelt werden was passiert wenn eine spielergruppe geändert wird.

    Naja es soll eine Server Einstellung sein und du musst ja nicht auf einem Server spielen der nur Server Blaupausen erlaubt. Und ich möchte schon das man Blaupausen verwenden kann, wenn man z.b. Strassen oder Wege kopiert, es dürfen auch objekte dabei sein - vorrausgesetzt die Blaupausen kosten dann endlich mal Material - alles kein problem. Mein Problem ist eher das Leute frisch auf den Server kommen und einfach irgendwas hinstellen was sie vielleicht noch nicht einmal selbst erstellt haben, ich meine Sobald Materialkosten für Blaupausen implementiert sind ist das Hauptproblem schon mal beseitigt, das neulinge sich eine All-In-Wonder Blaupause hinstellen ohne Material zu beschaffen, dennoch wäre es gut wenn ich als Admin sagen könnte das Spieler in der default gruppe nur Blaupausen verwenden dürfen von dingen die sie bereits auf dem server gebaut haben.


    Und es gibt ja immer noch die Möglichkeit einen download anzubieten im falle der Server gespeicherten Blaupausen

    Moin, abgesehen von den schon angesprochenen Änderungen an Blaupausen kam mir noch folgender Gedanke ...


    Ich würde es begrüßen die Möglichkeit zu haben das man Blaupausen auf die aktuelle Welt Begrenzen kann, oder anders gesagt das man nur Blaupausen verwenden kann die auf dem aktuellen Server auch erstellt wurden, um zu verhindern das irgendjemand seine Bauwerke die er woanders erstellt hat einfach platziert.

    Manche Bauten sind zwar echt schön, aber als Admin hab ich es lieber wenn die Leute etwas neues Bauen und nicht einfach etwas von einem anderen Server kopieren (vielleicht sogar noch von einem anderen Spieler)


    Am besten über die bestehende permissions section, so das man das von den Rechten abhängig machen kann, so kann man vertrauenswürdigen Bauern auch externe erlauben.


    Eine andere Lösung wäre das die Blaupausen auf dem Server pro Spieler gespeichert werden, das hätte auch den Vorteil als Nebeneffekt das man Blaupausen über ein Plugin handelbar machen könnte :D,

    Ich habe die logs mit docker compose logs --since ... > umgeleitet um auch die start und end echos vom entrypoint.sh script mit zu haben.


    Das angehängte log hat 3 Sessions, eine kurze eine lange, beide mit SIGSEGV und eine "normale" danach die wegen fehlendem freien port beendet wurde.


    An diesem log sieht man sehr schön das es komplett random erscheint wann der prozess abschmiert.

    Hier mal ein log von prod, über docker logs, da sind jetzt auch die JNI werte=true mit dabei. Es gab direkt einen Absturz nach dem ein Spieler rein kam, obwohl der Server erst kurz vorher neu gestartet wurde.

    Hier sind auch die diagnose-tools dabei die ich hab einbauen lassen. diag-crash-01.log


    Gestern hatte ich die Diagnose auf meinem development server aktiviert da war die session bis zum regulären Neustart ohne crash. 2026-06-14-21-08-41.log (game-logs, keine docker logs, kann ich aber nachreichen)

    Aber es gab wohl ein paar native threads die nie beendet wurden


    Ich habe die KI die logs analysieren lassen, das ist ihre Meinung:

    That is how the game works. Admin permissions > Area permissions > group permissions. In other words: Area permissions ALWAYS overwrite group permissions. If you want to give them more permissions you have to edit the ozlc-owner area permissions BUT then every player with a claim gets these permissions regardless of their group permissions. That is how it works, i cant change it. A workaround would be that you create a veteran-player area permission as copy from ozlc-owner and then change the players area permissions to that BUT then the plugin wont detect the player as owner and he cant manage his own claim anymore.

    Hmm... hast du das kürzlich erst aktiviert? :wat: Laut den prod-crash.log sind die Optionen nicht aktiv, also die nöten Argumente werden nicht an die JVM übergeben... ist das ein anderer Server oder waren sie da noch nicht aktiv? Sonst ist es möglicherweise auch ein Bug :thinking:

    auf prod war es nicht aktiv, nur auf dem dev server (ich hab 3 Server laufen, einen zum spielen 1 zum testen und einen auf einer kleineren Maschine für andere tests), der war aber auch in den scanns zu den abstürzen mit drin, trotzdem gab es hier keine neuen / anderen Erkenntnisse aus den Abstürzen.

    Du könntest evtl. zusätzlich auch einmal folgende Einstellung zur server.properties hinzufügen:

    Plugins_JNIVerbose=True

    Dann werden zusätzliche Meldungen ausgegeben (gerade auch in dem oben genannten Fall, also wenn zu viele Local Refs vorhanden sind, müsste JNI dann eigentlich was ausgeben). Könnte den Log aber etwas zuspammen.


    Ggf. könntest du auch Plugins_JNIXcheck=True hinzufügen, das könnte aber etwas Overhead mit sich bringen. Damit führt Java zusätzliche Validierungen und Prüfungen durch. Wichtiger wäre aber vmtl. obige JNIVerbose Einstellung ^^

    Gerade geprüft auf meinem dev server ist das sogar beides true schon :D

    Ich habe mal alle SIGSEGV events aus den docker logs extrahieren lassen mit ein wenig vor und nach offsets. Dann hab ich das der KI nochmal zur Analyse übergeben. Leider auch nicht so viel neues. Ich arbeite jetzt mal aus wie ich dem Verursacher auf die schliche kommen kann.

    Gestern Nacht kam es 2 mal vor, das zweite mal war relativ kurz nach dem ersten, also war der Speicher sozusagen "fresh" die anderen beiden waren am Mittag. Scheinbar ist es auch egal ob 1 oder 7 Spieler online sind, manchmal läuft er mit 7 ohne Fehler.

    Hier die KI Analyse:

    die analysierten logs im Anhang, vor den SIGSEGV 200 Zeilen und danach 100 jeweils

    Files