逐个文件下载可能损坏的bug


我使用的版本是2.09
我已排除硬盘有坏道的可能性。

复现方法:

打开一个带多个文件的BT种子或磁力链接,然后只勾选一个文件并开始下载。
等待下载完成后状态处于上传中。再随便勾选一个文件,并等待下载完成,重复两次。
最后,在下载第3个文件后,这个文件就是损坏的。此时,再继续下载文件也是损坏的。

对于已损坏的文件,我通过WinHex打开后发现只有前面的数据是错误的,后面的数据是正确的。

另外,还有一个Bug是,当任务再次下载中,可能会没速度。因为之前任务已完成并处于上传中时,会自动拦截进度为100%的用户,状态为banned (both_finished)。建议在任务再次下载中时,自动取消拦截已完成的用户。

目前只有使用清理功能重新下载的时候会取消拦截,下载单个任务完成在勾选下载第二个情况确实没考虑到清理,不过这个状态也只会持续10分钟,影响并不大,因为你取消了对方,对方看到你是100%完成度并不会取消你,依旧要等待10分钟,所以保持现状就行

至于这样陆续下载第三个文件,要等会测试一下看看,如果复现猜测是做种者的原因,没有启用区块对齐导致边界文件bug问题

我又测试了几遍,其实只需要在第2次下载就可以复现,至于我之前说要第3次,是因为我疏忽了一件事。
这个bug其实是在第二次下载,文件前面的数据没有被写入硬盘,所以前面的数据会是未初始化数据。所谓未初始化数据,这里不赘述,但简单来说就是复用了删除过的文件的扇区。
由于我测试时是删除了之前的文件并重新下载,所以可能因为复用了删除过的文件的数据,而且我下载的是视频文件,我删除过的文件也是视频文件,所以文件头一致,播放器可以播放,我就认为无误。
为了避免疏忽了这个问题,在重复测试这个bug时,请下载不同的文件,或者用某种方法彻底删除文件。

感谢反馈。麻烦确认一下出现问题的种子是否已分块对齐?在任务摘要里可以查看

未分块对齐

bug已确认,下一版已修复