Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Status: No such Device" for all new downloads in "latest" tag, rolling back versions solves it #166

Closed
snowwolf3388 opened this issue Oct 19, 2022 · 6 comments

Comments

@snowwolf3388
Copy link

Hello,

I was running lscr.io/linuxserver/deluge:latest and every single torrent that I added would fail to start with an error. The best "log" I could find on the issue was just in the torrent status which said Status: No such device.

A little googling didn't bring up much except this post (https://askubuntu.com/questions/1395966/no-such-device-when-trying-to-download-any-torrent-on-deluge-inside-docker-con) which suggested rolling back to a previous version of the container. I did, to the one they suggested: 2.0.5-0202202181752ubuntu20.04.1-ls140, and restarted all the torrents and they all are working flawlessly.

Sorry, I'm not much more technical in my understanding than this, but there is something clearly going on. If I go back to latest, they break again, it is repeatable.

It may help to know that I'm using MergerFS for my Linux file store mount, which some other articles have hinted at a potential issue. However, I assume many are using this arrangement, so I'm surprised others aren't having the same issue.

Let me know if there is any other information I can provide for diagnostics.

@github-actions
Copy link

Thanks for opening your first issue here! Be sure to follow the bug or feature issue templates!

@github-actions
Copy link

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@MilanSchilling
Copy link

Hi there,

I found this issue and it describes exactly the behavior I'm currently seeing.
Rolling back to said version solved it for me too, but I'd love to see a better fix for this.

How can I help?

Shall I open a new issue using the template?

Best

@MilanSchilling
Copy link

Let me summarize what I'm currently experiencing:

Current Behavior

Using image lscr.io/linuxserver/deluge:latest

To reproduce the error: move a downloaded file - using deluges "Move Download Folder" functionality - to a MergerFS folder and perform a "Force Recheck". The status of the file switches to error: No such device. The error also shows up in the logs (below).

I can move the file back to a non-MergerFS folder (just a folder on a mounted HDD) and do a force recheck again. The error message disappears and the file can be seeded again (see logs).

As the OP suggested, I tried the same using the image

lscr.io/linuxserver/deluge:2.0.5-0202202181752ubuntu20.04.1-ls140

and indeed, moving and rechecking the files from and to MergerFS folders works without any problems.

System

  • OS: Ubuntu 20.04.5 LTS x86_64
  • How docker service was installed: apt

Logs

Perform "Force Recheck" on the relocated file, which is now in a MergerFS folder:

14:08:41 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: session_stats_alert
14:08:41 [DEBUG   ][deluge.core.alertmanager      :1622] state_changed_alert: ubuntu-20.04.5-live-server-amd64.iso: state changed to: checking (r)
14:08:41 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: state_changed_alert
14:08:41 [DEBUG   ][deluge.core.alertmanager      :1622] torrent_resumed_alert: ubuntu-20.04.5-live-server-amd64.iso resumed
14:08:41 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: torrent_resumed_alert
14:08:41 [DEBUG   ][deluge.core.alertmanager      :1622] state_changed_alert: ubuntu-20.04.5-live-server-amd64.iso: state changed to: checking
14:08:41 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: state_changed_alert
14:08:41 [DEBUG   ][deluge.core.alertmanager      :1622] file_error_alert: ubuntu-20.04.5-live-server-amd64.iso file_mmap (/tmp_downloads/ubuntu-20.04.5-live-server-amd64.iso) error: No such device
14:08:41 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: file_error_alert
14:08:41 [DEBUG   ][deluge.core.alertmanager      :1622] torrent_paused_alert: ubuntu-20.04.5-live-server-amd64.iso paused
14:08:41 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: torrent_paused_alert
14:08:41 [DEBUG   ][deluge.core.alertmanager      :1622] torrent_error_alert: ubuntu-20.04.5-live-server-amd64.iso ERROR: (19 No such device) /tmp_downloads/ubuntu-20.04.5-live-server-amd64.iso
14:08:41 [DEBUG   ][deluge.core.alertmanager      :1622] file_error_alert: ubuntu-20.04.5-live-server-amd64.iso file_mmap (/tmp_downloads/ubuntu-20.04.5-live-server-amd64.iso) error: No such device

move back to non-MergerFS folder:

14:24:20 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: session_stats_alert
14:24:20 [DEBUG   ][deluge.core.alertmanager      :1622] state_update_alert: state updates for 1 torrents
14:24:20 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: state_update_alert
14:24:21 [DEBUG   ][deluge.core.alertmanager      :1622] Alerts queued: 1
14:24:21 [DEBUG   ][deluge.core.alertmanager      :1622] storage_moved_alert: ubuntu-20.04.5-live-server-amd64.iso moved storage from "/tmp_downloads" to: "/test_downloads"
14:24:21 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: storage_moved_alert
14:24:21 [DEBUG   ][deluge.core.torrent           :1622] State from lt was: error | Session is paused: False
Torrent state set from "Error" to "Error" (3a4b6e8c7869a18611ba35683f85c2267901c9e4)

Force Recheck again:

14:25:45 [DEBUG   ][deluge.core.alertmanager      :1622] state_changed_alert: ubuntu-20.04.5-live-server-amd64.iso: state changed to: checking (r)
14:25:45 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: state_changed_alert
14:25:45 [DEBUG   ][deluge.core.alertmanager      :1622] torrent_resumed_alert: ubuntu-20.04.5-live-server-amd64.iso resumed
14:25:45 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: torrent_resumed_alert
14:25:45 [DEBUG   ][deluge.core.alertmanager      :1622] state_changed_alert: ubuntu-20.04.5-live-server-amd64.iso: state changed to: checking

...

14:25:45 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: session_stats_alert
14:25:45 [DEBUG   ][deluge.core.rpcserver         :1622] intevents: {1: ['ConfigValueChangedEvent', 'PluginEnabledEvent', 'PluginDisabledEvent', 'TorrentStateChangedEvent', 'TorrentRemovedEvent', 'TorrentAddedEvent']}
14:25:45 [DEBUG   ][deluge.core.rpcserver         :1622] Emit Event: TorrentStateChangedEvent ['3a4b6e8c7869a18611ba35683f85c2267901c9e4', 'Checking']
14:25:45 [DEBUG   ][deluge.core.torrent           :1622] State from lt was: checking_files | Session is paused: False
Torrent state set from "Error" to "Checking" (3a4b6e8c7869a18611ba35683f85c2267901c9e4)
14:25:45 [DEBUG   ][deluge.core.torrent           :1622] State from lt was: checking_files | Session is paused: False
Torrent state set from "Checking" to "Checking" (3a4b6e8c7869a18611ba35683f85c2267901c9e4)
14:25:45 [DEBUG   ][deluge.core.rpcserver         :1622] intevents: {1: ['ConfigValueChangedEvent', 'PluginEnabledEvent', 'PluginDisabledEvent', 'TorrentStateChangedEvent', 'TorrentRemovedEvent', 'TorrentAddedEvent']}
14:25:45 [DEBUG   ][deluge.core.torrent           :1622] State from lt was: checking_files | Session is paused: False
Torrent state set from "Checking" to "Checking" (3a4b6e8c7869a18611ba35683f85c2267901c9e4)

...

14:25:46 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: session_stats_alert
14:25:46 [DEBUG   ][deluge.core.alertmanager      :1622] file_completed_alert: ubuntu-20.04.5-live-server-amd64.iso: file 0 finished downloading
14:25:46 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: file_completed_alert
14:25:46 [DEBUG   ][deluge.core.alertmanager      :1622] state_changed_alert: ubuntu-20.04.5-live-server-amd64.iso: state changed to: finished
14:25:46 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: state_changed_alert
14:25:46 [DEBUG   ][deluge.core.alertmanager      :1622] torrent_finished_alert: ubuntu-20.04.5-live-server-amd64.iso torrent finished downloading
14:25:46 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: torrent_finished_alert
14:25:46 [DEBUG   ][deluge.core.alertmanager      :1622] state_changed_alert: ubuntu-20.04.5-live-server-amd64.iso: state changed to: seeding
14:25:46 [DEBUG   ][deluge.core.alertmanager      :1622] Handling alert: state_changed_alert
14:25:46 [DEBUG   ][deluge.core.alertmanager      :1622] torrent_checked_alert: ubuntu-20.04.5-live-server-amd64.iso checked

@MilanSchilling
Copy link

Turns out this problem can be solved by changing the way how the MergerFS mounts are set up.

See this issue on the matter: trapexit/mergerfs#463

With this fix it the problem described above is resolved, I'm able to move and force recheck files using the lscr.io/linuxserver/deluge:latest image.

@snowwolf3388
Copy link
Author

Awesome. Thank you. It took some reading and I wasn't 100%, but I tested this and it works now. For anyone else with the same issue, the problem is that in the MergerFS options, you must not have cache.files=off, which is the same as have direct_io=true (this option is depreciated, though). I changed mine to cache.files=partial and switched back to the 'latest' tag and everything is working great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants