Oh, vielen Dank für den Link! Auf dem ersten Blick sehe ich tatsächlich keine Threads, die da erzeugt werden.. auch der native Code, der dort aufgerufen wird, läuft komplett synchron, also auch hier keine Extrathreads o.ä 
Habe noch etwas tiefer gegraben und denke nicht, dass die AdminUtils relevant sind... die häufigen JNIEnv-Ausgaben bzw. die scheinbar häufigen Threads scheinen stattdessen 2 Ursachen zu haben:
1. DiscordConnect bzw. JDA: Die Umstellung von Javacord auf JDA ist auf jeden Fall hilfreich und führt auch zu deutlich weniger Threads, aber in ForkJoinPool und OkHttp sind weiterhin Threads, die sterben bzw. kurzlebig sind.
2. Aber auch der Asset-Download des Servers, was (um das Netzwerksystem bei großen Daten nicht zu überlasten) über den Webserver läuft. Das ist tatsächlich die eine Stelle im Server (genau genommen der darunterliegende HttpListener), die ebenfalls Threads verwendet, die sterben.
Was genau die Crashes verursacht ist schwer zu sagen, aufgrund der Häufigket würde ich zu 1 tendieren, aber sowohl 1 als auch 2 haben das Potenzial dazu.
Nichtsdestotrotz ist das so oder so ein Bug in der API. D.h. das Plugin macht definitiv nichts "falsch", denn auch mit sterbenden bzw. kurzlebigen Threads muss die API umgehen können 
Die Session lief bis zum geplanten Neustart einwandfrei durch und es waren einige Spieler aktiv
Freut mich, wenn der andere GC geholfen hat!
Das würde die ganze obige Theorie mit der SATB Queue und den JNIEnvs tatsächlich bestätigen. Ich schaue aber trotzdem weiter nach einer robusten Lösung, damit die API mit kurzlebigen Threads umgehen kann. Und Punkt 2 oben ist ohnehin relativ einfach zu beheben (auch wenn ich nicht glaube, dass das die häufigen Crashes in diesem Fall verursacht, ist es trotzdem ein potenzieller Kandidat für solche Crashes)^^
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 
Hast du evtl. einen Log vom Start (wegen dem blockierten Port)?
komisch - seit gestern erhalte ich wieder hs-err-pid Dateien und deswegen hab ich heute direkt mal auf den ParallelGC gewechselt (nicht, dass das wieder zur Gewohnheit wird) 
Danke für die beiden hs_err_pid Dateien! Traten denn mit dem ParallelGC auch weiterhin Crashes auf? Rein auf den ersten Blick scheinen die Crashes tatsächlich die gleiche oder zumindest eine ähnliche Ursache zu haben: Hier scheint es auch kurzlebige Threads zu geben (konnte aber keinen Anhaltspunkt zu DiscordConnect oder OkHttp o.ä finden, daher wohl eine andere Quelle, die die Threads erzeugt). Sieht nach Java Threads aus, kann aber nicht ausschließen, dass es vll auch vom AssetDownload bzw. Webserver kommt.
In jedem Fall müsste aber der ParallelGC auch hier helfen.
Bitte sage mir nicht, dass es mit ParallelGC weiterhin crasht, denn dann würde das Kartenhaus schnell in sich zusammenfallen
(in dem Fall aber bitte gerne eine neue hs_err_pid)
warum bekommst du hs_err_pid dateien aber ich nicht 😢😅
Ich könnte mir vorstellen, dass es evtl. mit Linux und Docker zusammenhängt
Unter Linux wird der Crash anders behandelt und lt. Log wird das auch tatsächlich an Unity weitergegeben bzw. von Unity ausgegeben. Unter Windows behandelt die JVM die Crashes anders.
Wahrscheinlich könnte aber auch Docker eine Rolle spielen... vll könnte es helfen, einen festen Pfad für die hs_err_pid Datei zu vergeben. Das kann mit der JVM Option -XX:ErrorFile= gemacht werden (zB -XX:ErrorFile=/Logs/hs_err_pid_%p.log). Du kannst in der server.properties mehrere JVM Options mit Semikolon getrennt angeben. KA ob das wirklich hilft...