Skip to content
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

[BUG] group: task readLoop: read: read: read intermediate: read length: EOF #158

Closed
zllcy opened this issue Apr 25, 2023 · 25 comments
Closed
Assignees
Labels
bug Something isn't working

Comments

@zllcy
Copy link

zllcy commented Apr 25, 2023

下载文件中途停止,异常提示:
Download aborted.
group: task readLoop: read: read: read intermediate: read length: EOF

请教一下什么原因

@zllcy zllcy added the bug Something isn't working label Apr 25, 2023
@iyear
Copy link
Owner

iyear commented Apr 26, 2023

使用的版本是?

@iyear
Copy link
Owner

iyear commented Apr 26, 2023

尝试使用 v0.8.2 版本检查是否修复了这个问题

@zllcy
Copy link
Author

zllcy commented Apr 26, 2023

使用了新版本还是一样,是不是我的代理不稳定导致的

@NKDark
Copy link

NKDark commented Apr 27, 2023

我这边经常会出现这个问题,应该是网络不稳定导致的吧,换海外鸡出现概率小很多
能否增加相关解决措施@iyear ,小文件也就罢了,大文件的话下载一半失败挺难受的,下次确实是会重新下载,但是机场那边是一直在跑流量😭
如果并行下载多个文件的话也是直接全部停掉了

@iyear
Copy link
Owner

iyear commented May 1, 2023

断点续传我需要考虑一下实现方式……

@kfjsb
Copy link

kfjsb commented May 11, 2023

我试了好多次,都是下到一个差不多的时间就停了
图片

@carve-myself
Copy link

出现了同样问题
image

@shaoyangx
Copy link

shaoyangx commented May 16, 2023

这个问题疑似是下载速度问题。
配置,节点,json相同的情况下:
0.8.5版本下载速度2M左右,下载一段时间后便会EOF错误。
0.7.3版本(可能后续版本也可以)下载速度500-700K左右,可正常下载文件无错。
怀疑是0.7.3后续的版本作者更新了下载相关的代码,或者默认下载参数更改了,提升了下载速度导致EOF?
具体0.7.3后续到哪个版本还未测试。

@iyear
Copy link
Owner

iyear commented May 16, 2023

感谢反馈,请谁能提供一条稳定复现的命令?(需要公开群组)

@shaoyangx
Copy link

我下载的是私有群组,只能提供参考了。
默认参数没有改动,两个群组导出的json用0.8.5稳定EOF(即同一个文件反复EOF),用0.7.3就可以正常下载。
#前置环境
set TDL_NS=iyear && set TDL_PROXY=socks5://127.0.0.1:10808
#实际下载命令
tdl dl -f json -d dl -i mp4 --skip-same --continue

@iyear
Copy link
Owner

iyear commented May 16, 2023

唔,本地v0.8.5版本,使用的是我测试群组,无法复现。个人感觉还是网络方面的原因?

$ tdl dl -f .\.tdl\aaaa.json -d .tdl\dl -i mp4 --skip-same --continue -n iyear --proxy socks5://localhost:1090
Namespace: iyear
DC pool prepared in 5.183396s
Found unfinished download, continue from '1/6'
All files will be downloaded to '.tdl\dl' dir
1697797156_34_video.mp4             ... done! [85.42 MB in 1m25.059s; 1.00 MB/s]
1697797156_42_downloads_1697797156~ ... done! [85.42 MB in 1m24.589s; 1.01 MB/s]

@shaoyangx
Copy link

我觉得大概率也是代理-质量问题,(猜测)可能某些质量差的代理在下载速度过快时更容易断或者被TG临时ban掉?
0.7.3和0.8.5下载速度的确差很多,也因此质量差的代理默认参数下使用0.8.5完全下载不全文件。

@iyear
Copy link
Owner

iyear commented May 16, 2023

v0.7 和 v0.8 的主要区别在于 -s 的默认值被调整至最大(过去的实践中发现最大参数并不会带来过多的封号风险,所以默认下载速度更高了)。我可能试图去上游库添加一些重试逻辑

@shaoyangx
Copy link

shaoyangx commented May 17, 2023

今天使用个人搭建的代理,同变量参数下使用0.8下载无报错,的确有代理方面的问题。但是我又重回机场代理测试,发现不止代理问题。
#环境
set TDL_NS=iyear && set TDL_PROXY=socks5://127.0.0.1:10808
#下载命令
tdl dl -f json -d dl -i mp4 --skip-same --continue
文件大小均在500M-1500M左右。
失败标准为:一个文件也无法下载完成的情况。

0.8.5,低质代理,其他参数相同,改动参数'-t','4','-s','131072','-l','1',下载速度2M左右,下载报错。
0.7.3,低质代理,其他参数相同,改动参数'-t','4','-s','131072','-l','1',未测试(基于之前的结果,我直接跳过了这段参数)。
0.7.3,低质代理,其他参数相同,改动参数'-t','8','-s','524288','-l','2',参数拉满,速度达到了0.8.5的2M左右速度,多文件下载已成功下载2个,剩下的文件依旧正常下载,中断测试,更换0.8.0
0.8.0,低质代理,默认参数,失败。

停止试验,重新测试0.7.3,为了安全起见,使用默认参数,情况下的多文件下载。
0.7.3,低质代理,其他参数相同,改动参数'-t','4','-s','524288','-l','2'。

个人猜测结果:0.7.3到0.8版本更改的应该不止-s默认值,如果作者需要,我可以提供低质量代理以供测试复现。

目前0.8.5下载失败的兄弟可以使用0.7.3,使用参数-t 4 -s 524288 -l 2 进行下载,可以达到0.8.5一样的速度。

@iyear
Copy link
Owner

iyear commented May 17, 2023

感谢测试,v0.7.3-v0.8.0 确实变更较大,但涉及底层变化主要是 -s 参数默认值的调整,另一方面是依赖库的变更:gotd/td@v0.69.1...v0.79.0 还需要进一步排查


目前没看出这里的问题

@iyear
Copy link
Owner

iyear commented May 17, 2023

@shaoyangx 麻烦发送一下可复现的低质量代理的链接,联系方式在我GitHub主页

@shaoyangx
Copy link

已发送邮箱,我使用的代理软件为v2rayn。
之前测试的也是使用的此代理配置。

@iyear
Copy link
Owner

iyear commented May 17, 2023

可能导致问题的 commits:

iyear added a commit that referenced this issue May 17, 2023
@iyear
Copy link
Owner

iyear commented May 17, 2023

尝试新版本 v0.8.6 (可使用脚本一键升级),设置 --reconnect-timeout 0 参数。


Try the new version v0.8.6 (can be upgraded with script), set the --reconnect-timeout 0 flag.

@shaoyangx
Copy link

tdl dl -f json -d dl -i mp4 --skip-same --continue --reconnect-timeout 0
其余参数默认,经测试已经连续下载了三个大文件未报错。
0.8.6已修复问题,感谢大佬的修复。

@iyear iyear closed this as completed May 17, 2023
@iyear iyear changed the title 下载文件中途停止 group: task readLoop: read: read: read intermediate: read length: EOF May 17, 2023
@iyear iyear changed the title group: task readLoop: read: read: read intermediate: read length: EOF [BUG] group: task readLoop: read: read: read intermediate: read length: EOF May 18, 2023
@hoixding
Copy link

hoixding commented Sep 8, 2023

经过尝试,使用--continue --reconnect-timeout 0参数解决了我的问题,感谢开发者

This was referenced Sep 11, 2023
@HatsuneMiku6666
Copy link

1694434435180 使用--continue --reconnect-timeout 0参数还是会遇到下载中断的问题

@HatsuneMiku6666
Copy link

1694434435180 使用--continue --reconnect-timeout 0参数还是会遇到下载中断的问题

@iyear

@lyhhh6267
Copy link

加tackout后仍会出现该问题,去掉takeout后正常

@slayercjc
Copy link

谢谢大佬,问题解决了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

10 participants