Opened 10 years ago

Closed 9 years ago

Last modified 9 years ago

#4305 closed Bug (fixed)

New Torrent via RPC Error:No data found when subfolder does not exist

Reported by: lazybones Owned by:
Priority: Normal Milestone: 2.40
Component: Transmission Version: 2.31
Severity: Normal Keywords:
Cc: kxalex@…

Description

I use the transmission daemon via flexget which uses RPC calls and have previously been able to specify the download path such where the target subfolder did not exist and transmission would just create it. This was handy as it only required adding the new target in one place and the folder would just be created.

The error states to use set location to re add the torrent, this can't be done from the UI and a start and stop of the daemon does not fix the paused state even once the folder has been created.

IE /mnt/disk1/media exists /mnt/disk1/media/newtarget does not exist

I assume something has changed around the improvements for removable disks in 2.31?

Change History (22)

comment:1 Changed 10 years ago by Doetje

I can confirm this rather annoying bug. Adding torrents via an RPC client no longer works since updating to 2.31 if you specify a non-existing folder to download to. Transmission-gui (Windows), flexget, ... all suffer from this issue.

Is there a specific reason why folders are no-longer created if necessary or is this a bug?

comment:2 Changed 10 years ago by zyxmon

I do confirm this bug in 2.32. I hope it'll be fixed.

comment:3 Changed 10 years ago by jordan

  • Resolution set to invalid
  • Status changed from new to closed

This behavior was introduced in r12076. The reason is to prevent directories from being created in error. One common complaint was Transmission creating an external drive's directory path when the drive was unplugged.

comment:4 Changed 10 years ago by lazybones

  • Drives almost never get detached on a server system running a daemon.
  • The FIX leaves no way to create new folders via RPC clients
  • The FIX creates no way to resolve / recover torrents that have a new path set when created

How many people use transmission with removable drives? This appears to be a subset of users likely limited mostly to laptops and ONLY the desktop editions of transmission.

This very much breaks the remote usefulness of teh daemon, which has been one of transmissions strongest features for a long long time and makes it popular on headless NAS solutions.

comment:5 Changed 10 years ago by jberzins

How about to check if the root of the path is part of /proc/self/mounts instead of being this drastic. Or an easy fix - a configuration parameter to bypass this feature for those with perma-mounted partitions.

Unfortunately I do not have enough C/C++ skills to implement it myself.

This is not lethal problem but a bit annoying to make the directories by hand for new shows/seasons.

Thanks, jb

comment:6 Changed 10 years ago by livings124

  • Resolution invalid deleted
  • Status changed from closed to reopened

comment:7 Changed 10 years ago by lazybones

The root path might be a problem since Windows / Mac / Unix systems can have paths with symbolic links and different mount points.

A compromise might be to allow one level deep new folder creation, where the path check is done twice, once for the full path, and if that does not exist check its parent path.. it would be fairly safe to assume that if /mnt/drive/Coolstuff/new does not exist but /mnt/drive/Coolstuff does exit that it is safe to create the needed folder.

I use Transmission on my NAS running as a daemon, via Transmission Remote GUI as if it was a normal desktop client, and it worked great until this change as now I have to do all the file management after the download on the server, where before I could quickly organize new downloads into folders.

comment:8 Changed 10 years ago by jordan

That compromise would fail for situations like /mnt/drive/ubuntu-11.04-i386.iso ...

Maybe I'm imagining the symmetry here, but in light of the discussion at https://trac.transmissionbt.com/ticket/1496#comment:16, maybe that proposal of adding "a predefined set of download paths" to Transmission could be used here too: subdirectories could be freely created underneath the download path, as long as the download path existed.

I'm not sure how well this would work in practice. It could add another level of complexity (the set of download directories) that could conceivably be a nuisance for someone wanting to download a one-off torrent to /tmp. Also, I'm not sure how we would configure this in the GUI clients.

comment:9 Changed 10 years ago by jordan

Ticket #4352 has been closed as a duplicate of this bug.

comment:10 Changed 10 years ago by jordan

Alternately, we could just undo r12076. The most common use case (unplugged external drives) will still be detected by the "No data found!" tests anyway...

comment:11 Changed 10 years ago by lazybones

Since I never plan on saving torrents to a removable dive that works fine for me...

Not sure about other users.

I still think that checking that the parent directory exists would be a good compromise..

Isn't the original complaint that deep paths where being created in the wrong place if the drive was removed?

In this compromise users are limited to creating one folder if anything, and unless the users was storing to the ROOT of the removable drive (a bad idea on some files systems anyway) it would still work for detecting the path was missing in most cases... Assuming again that that the original complain was due to the target having some form of directory structure that was being recreated in the wrong place.

comment:12 Changed 10 years ago by seizmo

I would also very much appreciate this bug being fixed!

If there will be an option it should be to switch the new behaviour (not creating directories) ON. It is my belief that there are much less users storing their torrents on removable devices than there are users which use flexget or transmission-gui to automate or remote-control transmission. For both these user groups, transmission is much less useful with this new behaviour.

comment:13 Changed 10 years ago by kxalex

Voting for fixing it as that bug forced me to roll back to 2.22. I store torrents to external drive all the time. Please fix it.

comment:14 Changed 10 years ago by kxalex

  • Cc kxalex@… added

comment:15 Changed 10 years ago by jordan

r12076 has been reverted by r12582, which should fix the problem.

Could someone run a nightly build to doublecheck the fix?

comment:16 Changed 10 years ago by kxalex

I tried on 2.33+ #12595 and it worked for me. So, looks like it's fixed. Thanks.

UPDATE: looks like the issue is still there, but it shows itself after restart.

Last edited 10 years ago by kxalex (previous) (diff)

comment:17 Changed 10 years ago by jordan

I'm still not seeing this behavior. If you're experiencing it post-r12582, could you please list the specific steps that you're using to trigger it, so that I can reproduce the behavior in my tests?

comment:18 Changed 10 years ago by lazybones

I haven't been able to try the nightly since I no longer have a build environment to cross compile for my NAS... Simply haven't had the personal time to check this..

comment:19 Changed 10 years ago by jordan

kxalex, do you have any more information on comment:16 that the issue is still there, but shows itself after restart? Especially helpful would be a walkthrough of the steps to reproduce the bug in an up-to-date svn version of Transmission.

comment:20 Changed 9 years ago by kxalex

@jordan, i have removed transmission pref settings and it works fine now. so, probably settings got messed up. yesterday I have updated to latest build and no issues observed yet.

Thanks.

comment:21 Changed 9 years ago by jordan

  • Milestone changed from None Set to 2.40
  • Resolution set to fixed
  • Status changed from reopened to closed

Thanks for the response. I'm going to close this ticket as fixed, but if you see any regression please reopen it with more information. Thanks!

comment:22 Changed 9 years ago by lazybones

Forgot to come back and confirm that YES it is fixed.

Thank-you

Note: See TracTickets for help on using tickets.