JDownloader Community - Appwork GmbH
 

Reply
 
Thread Tools Display Modes
  #1  
Old 24.06.2022, 20:31
Anuskuss Anuskuss is offline
Vacuum Cleaner
 
Join Date: Aug 2020
Posts: 17
Default 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
|------------------------------------------------------------------------------
Kann mehr Log posten, falls notwendig. Habe auch die aktuelle JAR neu runtergeladen, hat aber auch nicht funktioniert. Vielleicht wurde irgendeine Configdatei beschädigt.

LG
Reply With Quote
  #2  
Old 24.06.2022, 21:11
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 76,912
Default

@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
Reply With Quote
  #3  
Old 24.06.2022, 23:06
Anuskuss Anuskuss is offline
Vacuum Cleaner
 
Join Date: Aug 2020
Posts: 17
Default

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
Reply With Quote
  #4  
Old 25.06.2022, 07:58
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 76,912
Default

@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:
RestartSec=30
oder
Quote:
ExecStartPre=/bin/sleep 30
oder nimmst ein anderes systemd, siehe
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 08:03.
Reply With Quote
  #5  
Old 25.06.2022, 15:30
Anuskuss Anuskuss is offline
Vacuum Cleaner
 
Join Date: Aug 2020
Posts: 17
Default

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 hatte halt -norestart drin, damit ich sehe, wann JD2 genau neustartet (also im Journal) und um Forken zu vermeiden.
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 21:32.
Reply With Quote
  #6  
Old 25.06.2022, 18:12
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 76,912
Default

Quote:
Originally Posted by Anuskuss View Post
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).
Nein. JDownloader startet einen weiteren Prozess welcher dann Tests durchführt und sobald diese erfolgreich abgeschlossen werden, dann beendet sich der Hauptprozess (nun läuft JDownloader für systemd nicht mehr und startet neu) und der weitere Prozess tauscht nun die JDownloader.jar aus.
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:
ExecStart=sleep 30 && /usr/bin/java -jar jdownloader/JDownloader.jar -norestart
gehen?!
__________________
JD-Dev & Server-Admin
Reply With Quote
  #7  
Old 25.06.2022, 18:14
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 76,912
Default

Quote:
Originally Posted by Anuskuss View Post
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
Ja und nein Ja insofern der Fehler durch ein solches Setup verursacht wurde. Nein sofern es wirklich einen Fehler geben sollte, dann erzeugt das nur
unnötig Last/Traffic. Aber an sich finde ich die Idee gut und werde diese noch umsetzen
__________________
JD-Dev & Server-Admin
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +2. The time now is 01:41.
Provided By AppWork GmbH | Privacy | Imprint
Parts of the Design are used from Kirsch designed by Andrew & Austin
Powered by vBulletin® Version 3.8.10 Beta 1
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.