下载停止并提示“未处理的错误”
最大任务数量越多,越容易出现下载停止并提示“未处理的错误”
我每个任务下载速度都不高,所以想提高最大任务数量,使更多任务同时下载,以便于充分跑满带宽,我把最大任务数量设置为20,全部任务停止后,再重新下载后,就立马出现部分任务信息并报错“未处理的错误”,即便手动重新开始,过一段时间也会重新报错,
是否能提供个测试地址,你下载文件的大小已经超过TB级别,硬盘空间是否足够。
BT下载出现 “未处理的错误” 通常是和本地文件读写失败有关。
是否能提供个测试地址,你下载文件的大小已经超过TB级别,硬盘空间是否足够。
我的下载链接是zlibrary图书馆31T那个磁力,我是分批下载的,机械硬盘16T,可用10T,正在下载磁力有6T,所以空间是足够的
总磁力种子文件太大,超过25M无法上传,我上传部分磁力种子,已够足测试使用
我晚一些才能测试,这可能是libtorrent的BUG,可以试试用 deluge 或者 qBittorrent 等下载到相同目录下看看是否会出现类似 "I/O 错误等信息"
其他任务都停止了,只执行一个任务,还是报错“未处理的错误”,现在这个任务就卡在97%了,点击重新开始下载又会立马报错,现在不知道该如何把它下载下来[捂脸],图中最下面两个任务也是如此情况
我晚一些才能测试,这可能是libtorrent的BUG,可以试试用 deluge 或者 qBittorrent 等下载到相同目录下看看是否会出现类似 "I/O 错误等信息"
我使用qBittorrent全部任务同时下载到相同目录,没有报错,可以正常使用
多下载一会试试,这个错误抛出确实是libtorrent发出的,程序内只判断了一些常用的错误,其他的都归类为未处理的错误
int32_t to_libtorrent_catalog_error_code(int value)
{
using errc = lt::errors::error_code_enum;
switch(value)
{
case errc::failed_hash_check:
return errors::Failed_Hash_Check;
case errc::torrent_is_no_dict:
case errc::torrent_missing_info:
case errc::torrent_missing_name:
case errc::torrent_file_parse_failed:
return errors::Invalid_Torrent;
case errc::torrent_invalid_name:
return errors::Invalid_Name;
case errc::torrent_invalid_length:
return errors::Invalid_Length;
case errc::torrent_missing_pieces:
return errors::Missing_Pieces;
case errc::torrent_invalid_hashes:
return errors::Invalid_Hash;
case errc::too_many_pieces_in_torrent:
return errors::Too_Many_Pieces;
case errc::invalid_swarm_metadata:
return errors::Meta_Error;
case errc::invalid_bencoding:
return errors::Data_Error;
case errc::no_files_in_torrent:
return errors::Data_Is_Empty;
case errc::invalid_escaped_string:
return errors::Invalid_Escaped_String;
case errc::duplicate_torrent:
return errors::Duplicate_Torrent;
case errc::missing_info_hash_in_uri:
return errors::Address_Error;
case errc::file_too_short:
return errors::File_Too_Short;
default:
**return errors::Unhandled_Error;**
}
}
也有可能是qbittorrent 4.5.2 使用的libtorrent版本已经修复了这个问题,3.0版本中会把全部的错误文本添加上,移除 “未处理的错误” 这个条目,这确实让调试定位变得困难。
多下载一会试试,这个错误抛出确实是libtorrent发出的,程序内只判断了一些常用的错误,其他的都归类为未处理的错误
int32_t to_libtorrent_catalog_error_code(int value) { using errc = lt::errors::error_code_enum; switch(value) { case errc::failed_hash_check: return errors::Failed_Hash_Check; case errc::torrent_is_no_dict: case errc::torrent_missing_info: case errc::torrent_missing_name: case errc::torrent_file_parse_failed: return errors::Invalid_Torrent; case errc::torrent_invalid_name: return errors::Invalid_Name; case errc::torrent_invalid_length: return errors::Invalid_Length; case errc::torrent_missing_pieces: return errors::Missing_Pieces; case errc::torrent_invalid_hashes: return errors::Invalid_Hash; case errc::too_many_pieces_in_torrent: return errors::Too_Many_Pieces; case errc::invalid_swarm_metadata: return errors::Meta_Error; case errc::invalid_bencoding: return errors::Data_Error; case errc::no_files_in_torrent: return errors::Data_Is_Empty; case errc::invalid_escaped_string: return errors::Invalid_Escaped_String; case errc::duplicate_torrent: return errors::Duplicate_Torrent; case errc::missing_info_hash_in_uri: return errors::Address_Error; case errc::file_too_short: return errors::File_Too_Short; default: **return errors::Unhandled_Error;** } }也有可能是qbittorrent 4.5.2 使用的libtorrent版本已经修复了这个问题,3.0版本中会把全部的错误文本添加上,移除 “未处理的错误” 这个条目,这确实让调试定位变得困难。
qbittorrent 4.5.2 下载了10个小时,其间多次全部停止再重新开始,一切正常,没有报错。
我找了20个Windows镜像BT来同时下载,发现也会提示“未处理的错误”
这个图标和其他的不同,提供下磁力链接,或者改名试试,我晚点提供一个带日志输出的调试版本filec.exe,看看输出内容是什么。
这是调试版本,解压缩到lib目录下,在cmd下执行 filec_debug.exe -y ,出错时候会有错误输出信息。
http://www.filecxx.com/release/filec_debug.zip
这个图标和其他的不同,提供下磁力链接,或者改名试试,我晚点提供一个带日志输出的调试版本filec.exe,看看输出内容是什么。
这个问题找到了,与开头的“未处理的错误”问题不一样。从网站复制的这个磁力后面多了换行符,所以文件蜈蚣下载任务时导致“未知的错误”,不过即使多了换行符,qbittorrent 4.5.2也可以正常下载,应该是做有优化
windows下无法建立特殊符号的文件名 ".iso < br >" ,导致的这个问题,其他协议的filec会自动将文件名中的<> 转换为 (),BT下载这块没处理。
这个图标和其他的不同,提供下磁力链接,或者改名试试,我晚点提供一个带日志输出的调试版本filec.exe,看看输出内容是什么。