docker-jdownloader
docker-jdownloader copied to clipboard
jdownloader hangs after update
Not really sure if this is a bug related to this docker image or jdownloader itself, so I'll post it here just to make sure.
-->
Output of docker inspect jdownloader --format='{{index .Config.Labels.version}}'
:
2.1.2-amd64 (But happens on other platforms as well)
Description
Command line I used to start the container
docker-compose.yml: services: jdownloader: image: jaymoulin/jdownloader:2.1.2 container_name: jdownloader restart: always user: 1026:100 volumes: - /volume1/docker/data/jdownloader:/opt/JDownloader/app/cfg - /volume1/downloads:/opt/JDownloader/Downloads - /etc/localtime:/etc/localtime:ro environment: MYJD_USER: xxx MYJD_PASSWORD: xxx MYJD_DEVICE_NAME: xxx XDG_DOWNLOAD_DIR: /opt/JDownloader/Downloads ports: - 0.0.0.0:3129:3129
Steps to reproduce the issue:
- create jdownloader container
- install updates if available
Describe the results you received: Jdownloader no longer available via myjdownloader. Restarting doesn't help.
Describe the results you expected: Jdownloader being available after updating.
Additional information you deem important (e.g. issue happens only occasionally): If the error occurs I have to stop the container and start it without the -d parameter. This way the container will start, jd will update and run fine until the same happens again after some more updates.
Could be related to #128 and similar as I have seen the "no console available" output in my logs too. And running it interactively once will fix the issue for a while.
It may be, as I receive "No console available" error message from time to time. Deleting the container, config files and recreating it always fixes it. But you have to set your settings(download speeds, accounts etc..) from scratch. And of course - don't do this in the middle of file download (not even paused), as you will loose progress.
In k8s, restarting the pod can temp fix it, but this problem is really annoying. I suspect adding "-Djava.net.preferIPv4Stack=true" will do the trick.
ref: https://board.jdownloader.org/showthread.php?t=93571
In k8s, restarting the pod can temp fix it, but this problem is really annoying. I suspect adding "-Djava.net.preferIPv4Stack=true" will do the trick.
ref: https://board.jdownloader.org/showthread.php?t=93571
No it doesn't, this is a totally different problem. Comparing being unable to contact the update server and getting stuck because of a missing console doesn't make sense. Just like saying a restart will fix something that isn't fixed by a simple restart.
I don't know how k8s work, but i think you are either mixing things up or are talking about a different problem.
-
After testing 2 weeks of testing of the parameter "-Djava.net.preferIPv4Stack=true", the new parameter does NOT help the problem.
-
However, restarting the pod/vm/run time/container DOES temporary resolve the problem as always in my case. I don't much domain knowledge on JD, but it is obvious to see if restarting is working or not in my case.
-
Based on the very limited log provide by default, it is hard to further debug it. But if restarting doesn't work, it sounds like your config is somehow corrupted as above mentioned, @kinslayer1982, have you tried to clean up everything (especially the vol) and start from scratch?
-
BTW, "No Console Available" is such a mislead/ambiguous term, especially when the headless flag is on.
It has NOTHING to do with the config. I have experienced this problem with multiple setups on different machines over a long period of time. The "no console available" error is absolutely correct. You can restart the container a million times, which will always fail and always give the "no console available" error. Starting it only once with available console fixes it. That it till the next update that contains whatever breaks the starting of JD.
I had extensive contact with JD support over the last weeks. They know abaout the problem peaople have with this exact Docker image of JD, but they don't use Docker and cannot give support regarding the use of JD in Docker. BUT they can help with JD's behaviour.
- Most likely the problem is caused by updates that contain changes to the core.jar file, as these updates require a restart of JD.
- This image starts JD with the -norestart parameter (my guess is to prevent a container stop). Some updates require a restart so the -norestart parameter is one problem.
- From the logs they can see that JD fails to verify the MyJDownloader logins. Because of thet it tries to prompt for correct login credentials via console. As no console is available we get the "no console available" error.
- The MyJDownloader login error is caused by a JDownloader.jar file that is incompatible (outdated) with the rest of the JD files.
- The JDownloader.jar file in this image is a rarely updated version that only serves to install JD on a system. It is not suitable to be used as the actual JD.
- The startup script of the image checks for a corrupted JDownloader.jar file and for incomplete updates. In this case it replaces the current JDownloader.jar with the one provided in the image.
- At this point our JD instance breaks.
- Now we must find a way to fix this issue.