Marlon Bodicker Posted November 29, 2009 Report Share Posted November 29, 2009 Hi everybody,A few weeks ago I downloaded a torrent, and today I wanted to burn the data to DVD. I wasn't sure however if I'd downloaded everything, or ended the session prematurely, so I started µTorrent, and tried to download the torrent again. I figured that if (after checking the files) µTorrent started seeding, everything would be fine.After the check had completed, I seemed to be missing 0.2%, so I let µTorrent download those parts again. After µTorrent started seeding, I closed the program and wanted to burn the files.When I tried to repeat this process (re-open torrent, perform the check), it turns out that I was missing the exact same 0.2%!At first I attributed this behaviour to disk caching ("write out untouched blocks every two minutes"), but apparently after waiting more than ten minutes, and running the check again, I still have the same problem.Could anybody please explain to me what's going on? Am I really missing those parts, or is this just µTorrent playing with my mind?Also, after µTorrent has told me that the download has finished, I still continue to see download activity. Why is that?Thanks in advance!Marlon Link to comment Share on other sites More sharing options...
moogly Posted November 29, 2009 Report Share Posted November 29, 2009 What's the file? audio or video?You should have a media indexer that tries to indexes the file (like tags in the header) so the file is different, that's why the forced recheck doesn't reach 100%. Link to comment Share on other sites More sharing options...
Marlon Bodicker Posted November 29, 2009 Author Report Share Posted November 29, 2009 Hi Moogly,It's a collection of about 27 videos (all avi files).I do not have any media indexers running, nor do I use any search indexers. Besides, indexers should only *read* metadata, never change the info of any media header. If not, any checksum software would go haywire when a drive is being indexed Further more, 25 out of 27 videos are always OK. µTorrent always tries to redownload the same chunk, containing blocks from the end of file 26, and blocks from the beginning of file 27.I've just restarted µTorrent, it tells me that both files are missing some blocks, and that the torrent is 99.8% complete. However, the two files that appear to be missing the beginning or the end, both check out to be valid .avi files, so the data is actually already on my harddrive (otherwise there would be missing info from either beginning or end of file).So it's still a mystery to me why µTorrent assumes the torrent is incomplete...Thanks,Marlon Link to comment Share on other sites More sharing options...
DreadWingKnight Posted November 29, 2009 Report Share Posted November 29, 2009 Besides, indexers should only *read* metadata, never change the info of any media header.SHOULD, but doesn't always.So it's still a mystery to me why µTorrent assumes the torrent is incomplete...uTorrent doesn't make any assumptions. It's doing piece-based SHA1 calculations. The pieces aren't matching. Link to comment Share on other sites More sharing options...
Marlon Bodicker Posted November 29, 2009 Author Report Share Posted November 29, 2009 Hi DreadWingKnight,Not all media indexers are the same, you're right. But I don't use any, so let's skip that bit.As for making assumptions, I'm not saying µTorrent is just "guessing" whether or not the files are complete, but I've conducted a few tests this evening, and I've come to a rather surprising conclusion. The test was run with one of those movies (the smallest) for speed/bandwidth sake. First of all, if the pieces don't match, I'd expect the same result over and over again. When I reload the originally downloaded file, at first it indicated 99,8% complete, then all of a sudden 99,6% complete, now 99,8% again. Small difference, but if each check is performed the same, it's safe to assume that the results should be the same.Second, I copied the torrent to another drive, redownloaded only that particular file, kept on seeding and did a file compare between this new file and the originally downloaded file. Remember: one was stuck at 99,8%, the other is complete. There were no differences between those two files.Third, I downloaded another bittorrent client, and downloaded the movie again. After comparison with both earlier files, still no difference.Last but not least, and as stated in my earlier reply, the file is a valid .avi file: valid header, valid blocks, valid end record. Avi tests are never 100% accurate, but if header/data/end is intact and the file plays, there's no reason to doubt that the file is corrupt (which it would be, had it been downloaded for only 99,8%).So basically I now have two torrents on my disk, each with the exact same movie, one is 99,8% complete according to my last check with µTorrent, the other is 100% complete. Both files are byte-for-byte equals.I love µTorrent, I think it's a great piece of software, but I'm puzzled and a bit worried by this outcome.Does anybody have any idea as to why these checks give different results? Thanks!MarlonPS: I'll keep the torrent in case this turns out to be a bug, should anyone want to verify this behaviour.--- Post edited : I figured it out! ---Ok guys, I figured it out why µTorrent assumes the files are incomplete. It turns out that both DreadWingKnight and I were right at the same time!Torrents consist of files, which consist of pieces, which in turn consist of blocks to download.First of all, I was downloading a set of files within a torrent. This meant that the first piece of the first file I was downloading, and the last piece of the last file each were pieces which contained blocks from another file (the file before the selected set, and the file after).When the selected files are 100% downloaded, µTorrent states the download is complete. On my hard drive, there are still part files for the blocks prior to this set, and the blocks after this set of files. These will be deleted, since they are no longer needed.As DreadWingKnight correctly stated, µTorrent does it's SHA1 calculations to verify that files are correct. But IMHO and AFAIK, µTorrent does these calculations piece-based, which means that for a selected set of files within a torrent, chances are there are two pieces incomplete (the first of the first file, and the last of the last file).In other words, YES, the files are 100% downloaded (as verified), YES, they are complete, but there's NO WAY µTorrent knows (or is even able to know) that the first/last piece is complete, when the part files have been deleted (which is the case, as they are not needed to complete the download).I've set aside my original downloads (which µTorrent said were incomplete), and I'm now downloading the entire torrent (all the files). So far, I haven't found any differences between the files that were incomplete in the first download session, and the complete files in the second session.Perhaps a minor something to address in a new version?Best regards,Marlon Bodicker Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.