#1
|
|||
|
|||
JsonObjectLinkedHashMap
Hey, mein JD2 ist grade "willkürlich" abgestürzt (war grade am Runterladen aber ich hab weder mit MYJD drauf zugegriffen noch überhaupt irgendwie mit meinem Server interagiert).
Code:
|---------------------------Headless Information------------------------------- | Exception occured | Exception occured | An unexpected error occured. | JDownloader will try to fix this. If this happens again, please contact our support. | java.lang.NoClassDefFoundError: org/appwork/storage/simplejson/JsonObjectLinkedHashMap | at org.jdownloader.api.RemoteAPIController.<init>(RemoteAPIController.java:493) | at org.jdownloader.api.RemoteAPIController.<clinit>(RemoteAPIController.java:118) | at jd.SecondLevelLaunch$9$1.run(SecondLevelLaunch.java:745) | Caused by: java.lang.ClassNotFoundException: org.appwork.storage.simplejson.JsonObjectLinkedHashMap | at java.net.URLClassLoader.findClass(URLClassLoader.java:387) | at java.lang.ClassLoader.loadClass(ClassLoader.java:418) | at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) | at java.lang.ClassLoader.loadClass(ClassLoader.java:351) | ... 3 more | Press Enter to continue |------------------------------------------------------------------------------ LG |
#2
|
||||
|
||||
@Anuskuss: Nutzt du ein Docker Image? Wenn ja, welches?
Du solltest wie folgt deine Installation beheben können, siehe https://support.jdownloader.org/Know...r-installation Wichtig hierbei ist das Löschen der Core.jar Datei, sowie der Ordner tmp und update Der Fehler *riecht* nach einem Docker Image, denn der Fehler passiert wenn JDownloader.jar nicht zur Core.jar passt.
__________________
JD-Dev & Server-Admin |
#3
|
|||
|
|||
Also Docker benutz ich nicht, starte eigentlich nur als Service mit systemd. Ich habe im Service "Restart=always" drin und starte JD2 mit "-norestart". Hat eigentlich immer funktioniert.
Ich habe auch die Logs (journalctl) gecheckt und tatsächlich hat JD2 da neugestartet, obwohl ich doch am Runterladen war. Vielleicht wurde der Download kurz unterbrochen, und mein Update-Checker-Skript hat seinen Job getan. Naja, lange Rede, kurzer Sinn: Core.jar zu entfernen hat das Problem gelöst Ich dachte, ich hätte einen krassen Bug gefunden, aber war nur ein Updatefehler. LG |
#4
|
||||
|
||||
@Anuskuss: Danke für die Rückmeldung! Darf man fragen warum die Kombination aus "Restart=Always und -norestart"? In dem Fall war dies der Grund für den Fehler.
Wenn JDownloader neustartet, dann beendet sich der Hauptprozess und je nach Updategröße dauert die Installation des Updates mal mehr/mal weniger Zeit.Wenn in dieser Zeit systemd dann JDownloader neustartet dann hat man ziemlich schnell eine defekte Installation Wenn du diese Kombination beibehalten willst, dann zb mal Quote:
Quote:
https://support.jdownloader.org/Know...tostart-script oder github.com/LunaticMuch/synology-jdownloader
__________________
JD-Dev & Server-Admin Last edited by Jiaz; 25.06.2022 at 09:03. |
#5
|
|||
|
|||
Ich hatte den Service mal vor langer Zeit selber geschrieben und immer mal wieder kleine Änderungen vorgenommen:
Code:
[Unit] Description=JDownloader Wants=network.target After=network.target media-Elements\x2d4T.mount StartLimitBurst=3 StartLimitIntervalSec=10m [Service] Type=simple User=pi NoNewPrivileges=true WorkingDirectory=~ ExecStart=/usr/bin/java -jar jdownloader/JDownloader.jar -norestart StandardOutput=null Restart=always [Install] WantedBy=multi-user.target Ich verstehe allerdings nicht, wie RestartSec helfen soll. Der Prozess endet doch, wenn ein Update installiert wurde, und systemd startet das dann einfach neu. Ich tue jetzt mal trotzdem 30s rein; kann ja nicht schaden (betrifft ja nur den automatischen Neustart). Jedenfalls wollte ich noch sagen, dass es Sinn machen könnte, in den Log zu schreiben, dass man das Löschen von Core.jar|tmp|update doch mal probierten könnte. Würde sicherlich die Supportanfragen reduzieren LG Last edited by Anuskuss; 25.06.2022 at 22:32. |
#6
|
||||
|
||||
Quote:
Und genau hier kann es nun knallen. Denn systemd startet die alte JDownloader.jar und im laufenden Betrieb wird nun diese Datei ausgetauscht und das eigentliche Update eingespielt und zwei Prozesse *kämpfen* nun um das Update und installieren dieses. Somit kann es sehr schnell zu einer defekten Installation kommen. Daher die Suche nach einer Möglichkeit das systemd nicht Instant sondern mit einer Verzögerung den Prozess neu startet. Alternativ würde evtl auch ein Quote:
__________________
JD-Dev & Server-Admin |
#7
|
||||
|
||||
Quote:
unnötig Last/Traffic. Aber an sich finde ich die Idee gut und werde diese noch umsetzen
__________________
JD-Dev & Server-Admin |
Thread Tools | |
Display Modes | |
|
|