Open HaloWang opened 4 years ago
呵呵,太神奇了,我也遭遇了这个bug,macos 10.15.6 开 annie 下载 wifi 就断掉。 尤其是 -F 用文件列表下载,单独下载情况稍好。 难道是 annie 同时请求太多套接字的问题???
刚刚重启了电脑,什么都没开,用 annie 下载,结果 wifi 又断掉了。 如下是wifi log https://gist.github.com/zz5678/0cff3abe413d013557755eef68629e85
cat download_list.txt | while read line
do
annie $line
done
按照推测去测试了,这样的方式annie不会造成wifi断连,而且跟踪了全程 annie 没有开超过 100 个端口。 用 -F 或者 -p 方式下载,wifi 断连时,annie 开端口都超过了130个 看来就是 annie 打开端口后没有关闭,再继续下一个 playlist 进行下载,端口策略导致的。 楼主用 -p 方式下载也是这个问题
golang 里面看来还有些什么深层次问题,能干掉 wifi 这不简单啊
@HaloWang 你不会也恰好是 macos 10.15 吧? 还是windows?
楼主你用这个脚本试试,应该可以下载,wifi 不会断了:
url="https://www.bilibili.com/video/BV1dE411u7ua?p="
for i in $(seq 1 81)
do
annie $url$i
done
直接复制,粘贴终端里就可以执行了
@zz5678 我恰好是 macOS 10.15.6 😂
Thank you, it works!
这个-p选项会同时启动大约超多的链接
for i in `seq 1 90`
do
sudo netstat -tn | grep tcp4|wc -l
sleep 1
sleep 1
done
90
92
103
192
208
208
207
207
209
210
209
206
198
194
193
146
143
143
143
88
88
91
大约到200多的时候wifi就会挂掉,所以应该是列表下载这里有bug
大概找到问题了,https://github.com/iawia002/annie/blob/master/extractors/bilibili/bilibili.go#L356 是这里造成了大概的请求然后导致wifi挂掉了。 这里会把每集的所有清晰度来请求一次,来获取当前清晰度的下载链接,一旦播放列表集数少时不会有什么影响,一旦多了,类似 https://www.bilibili.com/video/BV1js411b7vg 一共有89 个视频,然后每次请求 每个视频有两个清晰度,然后就会生成大量的链接。然后就会导致wifi挂掉。 @iawia002
是 golang 具备了如此简单就能干掉 mac os 协议栈的能力?还是mac这个版本有bug? 这个发现有点意思啊。 @iawia002 研究研究到底咋回事
按照 #832 修复之后似乎就不会有这么多连接了,应该能避免这个问题
同样的 bug,macos 11.3.1 执行了 5 条 annie -F 命令(共 120 个链接) 电脑除了 wifi off,连 terminal 执行 lsof 命令都无反映,卡死了。
annie -i -p -n 1 https://www.bilibili.com/video/BV1dE411u7ua
annie -i -p https://www.bilibili.com/video/BV1dE411u7ua
都会导致网络自动断掉,WiFi 失去链接