Posts by Devidian

    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

    Ja der screenshot war im verdacht, der wurde wohl auch in einem thread erstellt der außerhalb lag, das ist aber gefixt. player.createScreenshot wird verwendet.


    Code
    player.createScreenshot(sizeFactor, 1, !screenshotWithoutGui, (BufferedImage bimg) -> {
    final ByteArrayOutputStream os = new ByteArrayOutputStream();
    try {
    ImageIO.write(bimg, "jpg", os);
    this.sendDiscordChatMessage(playerName, textToSend, os.toByteArray(), playerLanguage);
    } catch (Exception e) {
    // throw new UncheckedIOException(ioe);
    logger().error(e.toString());
    }
    });

    Der Befehlt ließe sich schon deaktivieren aber der ist so alt, den gabs schon in der Java version und bisher hat er nie Probleme gemacht 😅, wenn dann ist es eher mit der Anzahl der Plugins als Nebenerscheinung dazu gekommen.

    In der Regel gibt's eh nur 2-3 Spieler inklusive mir die das regelmäßig nutzen um bilder ins discord zu senden. Nur 1 mal war bisher direkt danach ein crash.


    Die items aus dem Shop sind auf dem Main Server raus, da gibt es nur eine kleine globale liste mit 2 items. Ich habe zwar mittlerweile auch 3 lokale shops

    ... aber die haben jeweils nur ein kleines Sortiment und die meisten Spieler wissen noch nicht wo die stehen 🤣


    Hmm spontan wüsste ich nicht welches Plugin öfter neue Threads generieren sollte. In einem log von vorgestern wo es zwischen den Neustarts (3:00-17:00 GMT) kein crash war, ist Create new JNIEnv 192 mal zu finden.


    Ja es ist schwierig herauszufinden, ich hab schon alles an logging aktiviert aber es kommt kein hint auf den Verursacher.


    PS: eine hs_err_pid wird aus irgend einem Grund nie angelegt.


    Ich hab das feature jetzt auch auf unserem Hauptserver laufen da lief es derweil gut über Tag, jetzt habe ich einen konfigurierbaren scan radius von 0-5 eingebaut und auf meinem dev server getestet, die Aufklärungsreichweite ist jetzt schon echt nice mit 5er radius. Bin gespannt wie das unter last auf meinem Hauptserver performt :D

    Ich habe heute wieder einen crash gehabt. Gestern hatte ich per KI alle Plugins auf unsichere threads und kritische Strukturen prüfen lassen und es wurden auch einige Stellen umgebaut. Jetzt habe ich das neuste crashlog mal von der KI analysieren lassen und das sagt sie:

    Und hier das Log dazu:


    prod-crash-04-c.log

    Das ist er eigentlich auch genau wie die Hölle oder der Untergrund aber das funktioniert ja gerade nicht so ganz, das hatte ich in irgend einem anderen Thema schon angesprochen und red wollte sich darum kümmern. Ist nur die Frage ob es dann da auch fanzy sachen gibt wie Schwerelosigkeit :D

    Well i want to just get the Region (Default / Dry) and if i sail with a boat and cross sector borders it always detects default = forest instead of dry



    Mein aktuelles experimentelles feature funktioniert bisher ganz gut, die Farben sind manchmal nicht ganz korrekt aber ich hab es so gut es geht optimiert, die Karte muss jetzt allerdings explored werden wie früher, was an sich ja nicht schlimm ist :D

    In Action hier: OZ Server Manager for Rising World auf dedizierter server klicken falls die Auswahl kommt und dann im GS1 Development Server

    It didnt work that well, even my improved version that scans the sector for indicators did not match well with the region, in most cases it just returns forest as region

    Hier wieder mit einer vermeintlich anderen Fehlerquelle

    Eine Quelle könnte der screenshot befehl sein, schon das 2. mal direkt nach einem screenshot (aber ist nicht die einzige Ursache, screenshots hat auch bisher nie probleme gemacht also liegts evtl auch woanders)