-
-
Notifications
You must be signed in to change notification settings - Fork 4k
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
One torrent keeps rechecking itself on startup? #1788
Comments
This is for bug reports, you need to post the question at the support forum http://qbforums.shiki.hu/ Please include the version of qBT you are running AND your operating system along with any other relevant data. |
As said, I need qbt version and OS. |
I'll suggest one circumstance that this can occur on Windows operating systems: If the total path+filename length of any file in the torrent is greater than Windows' normal maximum path length of 255 characters. qBT supports longer paths in some places.. For example, it will successfully recheck a torrent containing longer paths and successfully seed the same torrent. However, there are many places where qBT does not support longer paths, including when it checks the resume data at startup. I believe I have seen "Mismatching file date/time" (or however it's phrased) errors in this circumstance, and then the torrent is automatically rechecked. If the files are not corrupt, it will check out to 100% every time, despite the long paths. The error can be confusing. Long paths will nonetheless cause problems in most Windows applications and you cannot access them correctly in Windows Explorer itself, so it is best to work within this Windows limitation. Counted in the path length is the drive letter, colon, all backslashes between folders, and the dot before the file extension.. i.e., everything is counted. If this is the issue you may want to rename the folders containing the torrent to be as short as possible. You can count the characters to deduce if this is the issue at hand as well. |
That's exactly the problem ^ I remember copy pasting the torrent and the torrent won't move some of the files due to it being too long. Thanks |
Why did you close this. @UnrestrictedMind @AsaRossoff |
@sledgehammer999, to replicate, you can use any torrent. When adding the torrent, in some cases qBT may catch the issue and prevent adding the torrent... but it is not correct in all circumstances... this part I am vague on as I have not experimented with the issue in the AddTorrent dialog in some time. I know it makes mistakes about path length when the add .!qb option is selected (letting long paths slip through which will download fine but cannot be renamed to non-.~qb on finish, making the torrent seed incorrectly or redownload files). It may also make mistakes about pathlength in torrents with subfolders.. But honestly, I am vague on the Add Torrent part right now. If you add any torrent though, I believe you can rename folders and files in the torrent to exceed the path length. I'm sure you can relocate the torrent to exceed the path length. So one way to replicate I think is to add any torrent, then "Set Location..." to to a path you've created with close to 255 characters in it and a file in the torrent with any file in it whose name will take the total pathlength to over 255 characters. e.g. ~~
P.S. I ran into some other interesting issues developing this test case: (1) I was able to select this long path in the Add Torrent dialog, but the path showed up, after selection, using deprecated shortnames, something like "C:\456789 My ideal would be for qBT and libtorrent to enable long path (> 255 character) support everywhere, honestly. Even though there will be issues in Windows Explorer and many applications, it will be a simple way to eliminate several bugs related to inconsistent handling/checking of path lengths in qBT/libtorrent. A user can remedy the issue later if needed by renaming folders in Windows Explorer to shorter names or various other methods, or work around them by creating symbolic links or junctions that are equivalent short paths for accessing the files in other applications. This way qBT does not have to check path lengths in many different places in its code, accounting for planned moves of files (if enabled), the !qb extension, and, whenever a user renames a part of the torrent, checking every child-fileobject path length, etc. Related but separate regarding what I do as standard practice: I frequently use detailed, longer folder names and so have had to find ways to work around this issue.. I use junction points now, but the AddTorrent dialog unlinks junction points when they are selected as download location (I need to report this issue separately but have not done so yet). The AddTorrent dialog also lists a trailing backslash as part of the location of the torrent, and today I discovered, seems to use shortnames if they exist on disk. In contrast, Set Location works with junction points fine, uses the exact long path name, and does not show a trailing backslash as part of the torrent location. I now Add torrents with an invalid path as default and use Set Location to set the junction point that I want it saved in, and then rename any folders in the torrent if needed (if I rename the folders before setting the location, the renamed foldername will not be used on disk although qBT shows it in the torrent data). I have tried changing the NTFS permissions on one of my junction points to try to prevent qBT/libtorrent from unlinking it, but I have not gotten around to testing it yet.. and it would only be helpful as a different workaround anyway. I'll report these other issues separately in time... I have a lot going on right now and want to be able to attend to any questions or testing asked of me properly. |
qBittorrent now supports long paths on Windows (requires Windows 10 1607 or more recent). |
I have this one torrent that would keep rechecking itself whenever I start up qbittorrent. It's ~13 GB, and I have no idea why it does that. Anyone know why or have a solution to it?
The text was updated successfully, but these errors were encountered: