Skip to content
This repository has been archived by the owner on Jun 6, 2023. It is now read-only.

新版容易出现卡住的情况 #259

Closed
xia-i opened this issue Jan 26, 2020 · 32 comments
Closed

新版容易出现卡住的情况 #259

xia-i opened this issue Jan 26, 2020 · 32 comments

Comments

@xia-i
Copy link

xia-i commented Jan 26, 2020

也不知道什么原因,云vps和自己电脑都这样

@phdsx
Copy link

phdsx commented Jan 27, 2020

+1

1 similar comment
@Elu-Thingol
Copy link

+1

@yawwwwwn
Copy link
Collaborator

yawwwwwn commented Feb 1, 2020

修复了一个 TCP client 部分报 exception 导致 event_loop 结束的问题。然后也加了 event_loop 结束的时候输出 tasks 信息。建议更新最新的 commit 然后出错的时候把输出的信息贴上来。

@witrian
Copy link

witrian commented Feb 2, 2020

升级了最新的commit,确实比较好了
但是偶尔还是会卡住,比如刚启动的时候,
比如下图, 在19:59:49 卡住,我重启后又可以了
image

还有这种说检测到之后就卡住了
image

有什么需要开其他log吗?

@Sakura9s
Copy link

我挂服务器里然后卡主了,一天的辣条都没了。

@Sakura9s
Copy link

还有运行到一半卡主的,辣条抢着抢着不抢了,停住了。

@henut
Copy link

henut commented Feb 15, 2020

总是莫名就停住了

@yawwwwwn
Copy link
Collaborator

已关闭 issue 中的相似反馈链接过来。
我本地挂一下看看哪里的问题,自己 Linux 服务器4个号俩月了一点事没……

@henut
Copy link

henut commented Feb 17, 2020

我看着直播在本地挂这着的时候 就会停住 有时候就单单挂在那里也会停住

@xia-i
Copy link
Author

xia-i commented Feb 22, 2020

修复了一个 TCP client 部分报 exception 导致 event_loop 结束的问题。然后也加了 event_loop 结束的时候输出 tasks 信息。建议更新最新的 commit 然后出错的时候把输出的信息贴上来。

卡住并不会输出任何信息,晚上礼物多的时候很容易卡住

@CberYellowstone
Copy link
Contributor

我也是这样的情况
centos7 python3.8
莫名其妙就卡住了
每天都会卡一次(所以我每天手动重启脚本)
需要什么log吗

@CberYellowstone
Copy link
Contributor

@yawwwwwn

@13160230636
Copy link

13160230636 commented Feb 23, 2020 via email

@CberYellowstone
Copy link
Contributor

@13160230636 ?

@13160230636
Copy link

13160230636 commented Feb 23, 2020 via email

@2314933036
Copy link

OK   我们生来就不该让我们生活周围那些鄙夷我们的,唾弃我们的,赞赏我们的,关心我们的,憎恨我们的,深爱我们的人失望...  

------------------ 原始邮件 ------------------ 发件人: "CberYellowstone"<notifications@github.com>; 发送时间: 2020年2月23日(星期天) 晚上6:45 收件人: "Dawnnnnnn/bilibili-live-tools"<bilibili-live-tools@noreply.github.com>; 抄送: "常丶尐虫"<873506702@qq.com>; "Mention"<mention@noreply.github.com>; 主题: Re: [Dawnnnnnn/bilibili-live-tools] 新版容易出现卡住的情况 (#259) @13160230636 ? — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

你发的什么乱七八糟的?要发去QQ空间,随你怎么发

@13160230636
Copy link

13160230636 commented Feb 23, 2020 via email

@shoucandanghehe
Copy link

shoucandanghehe commented Feb 27, 2020

对于辣条机运行卡住我的解决方案是
使用shell脚本定时检测辣条机是否连续5min或以上没有输出log
B站连续5分钟没有抽奖的时候还是蛮少的,我个人觉得这个频率刚好
使用crontab每分钟执行一次脚本
* * * * * /bin/bash /脚本存放路径/auto_reboot_bilibili_live.sh
脚本内有几个变量和数值需要自行修改
已标注
auto_reboot_bilibili_live.zip
仅为各位大佬提供临时解决思路及方案(个人认为临时解决可用)

@JM-KANE
Copy link

JM-KANE commented Feb 27, 2020

应该还是领舰长的问题,只领辣条抽奖就还好

@Billyzou0741326
Copy link
Contributor

哈欠大佬 看看ReceiveMessageLoop是不是应该放进try里 这个是有概率raise的吧

await self.ReceiveMessageLoop()

@shoucandanghehe
Copy link

升级了最新的commit,确实比较好了
但是偶尔还是会卡住,比如刚启动的时候,
比如下图, 在19:59:49 卡住,我重启后又可以了
image

还有这种说检测到之后就卡住了
image

有什么需要开其他log吗?

我这也开始花式报错了
[2020-02-28 07:25:36] [Info] 开始执行每日任务 [2020-02-28 07:25:36] [Info] 签到状态:今日已签到过,无法重复签到 [2020-02-28 07:25:37] [Info] 双端观看直播:奖励已领取 [2020-02-28 07:25:48] [Error] Traceback (most recent call last): File "/root/1024/Tasks.py", line 138, in run await self.auto_send_gift() File "/root/1024/Tasks.py", line 79, in auto_send_gift a = await utils.fetch_medal(printer=False) File "/root/1024/utils.py", line 55, in fetch_medal roomid = i['roomid'] KeyError: 'roomid'
就无限循环
同时挂了5个号就发现这一个会这样报错,就很奇怪

@shoucandanghehe
Copy link

升级了最新的commit,确实比较好了
但是偶尔还是会卡住,比如刚启动的时候,
比如下图, 在19:59:49 卡住,我重启后又可以了
image
还有这种说检测到之后就卡住了
image
有什么需要开其他log吗?

我这也开始花式报错了
[2020-02-28 07:25:36] [Info] 开始执行每日任务 [2020-02-28 07:25:36] [Info] 签到状态:今日已签到过,无法重复签到 [2020-02-28 07:25:37] [Info] 双端观看直播:奖励已领取 [2020-02-28 07:25:48] [Error] Traceback (most recent call last): File "/root/1024/Tasks.py", line 138, in run await self.auto_send_gift() File "/root/1024/Tasks.py", line 79, in auto_send_gift a = await utils.fetch_medal(printer=False) File "/root/1024/utils.py", line 55, in fetch_medal roomid = i['roomid'] KeyError: 'roomid'
就无限循环
同时挂了5个号就发现这一个会这样报错,就很奇怪

重启也没用,不是偶发性bug

@Billyzou0741326
Copy link
Contributor

API返回值变了吧

if json_response['code'] == 0:
for i in json_response['data']['fansMedalList']:
if i['status'] == 1:
roomid = i['roomid']
today_feed = i['today_feed']
day_limit = i['day_limit']

@shoucandanghehe
Copy link

API返回值变了吧

if json_response['code'] == 0:
for i in json_response['data']['fansMedalList']:
if i['status'] == 1:
roomid = i['roomid']
today_feed = i['today_feed']
day_limit = i['day_limit']

应该不是吧,我这里其它4个号都没问题

@shoucandanghehe
Copy link

升级了最新的commit,确实比较好了
但是偶尔还是会卡住,比如刚启动的时候,
比如下图, 在19:59:49 卡住,我重启后又可以了
image
还有这种说检测到之后就卡住了
image
有什么需要开其他log吗?

我这也开始花式报错了
[2020-02-28 07:25:36] [Info] 开始执行每日任务 [2020-02-28 07:25:36] [Info] 签到状态:今日已签到过,无法重复签到 [2020-02-28 07:25:37] [Info] 双端观看直播:奖励已领取 [2020-02-28 07:25:48] [Error] Traceback (most recent call last): File "/root/1024/Tasks.py", line 138, in run await self.auto_send_gift() File "/root/1024/Tasks.py", line 79, in auto_send_gift a = await utils.fetch_medal(printer=False) File "/root/1024/utils.py", line 55, in fetch_medal roomid = i['roomid'] KeyError: 'roomid'
就无限循环
同时挂了5个号就发现这一个会这样报错,就很奇怪

@yawwwwwn @Dawnnnnnn
我想我找到问题了
他挂的这个粉丝勋章
并没有开直播间
但是这人又让我开了自动送辣条
我现在关了,没有发生循环报错了
不过用命令“4”查询勋章状态的时候还是报错(毕竟都没有直播间号)
Task exception was never retrieved
future: <Task finished coro=<fetch_medal() done, defined at /root/1024/utils.py:39> exception=KeyError('roomid')>
Traceback (most recent call last):
File "/root/1024/utils.py", line 55, in fetch_medal
roomid = i['roomid']
KeyError: 'roomid'
或许可以加一条检测来解决?

@yawwwwwn
Copy link
Collaborator

哈欠大佬 看看ReceiveMessageLoop是不是应该放进try里 这个是有概率raise的吧

await self.ReceiveMessageLoop()

但是 ReceiveMessageLoop() 调用的 ReadSocketData() 每一步都是有 try 的。

@yawwwwwn @Dawnnnnnn
我想我找到问题了
他挂的这个粉丝勋章
并没有开直播间
但是这人又让我开了自动送辣条
我现在关了,没有发生循环报错了
不过用命令“4”查询勋章状态的时候还是报错(毕竟都没有直播间号)
Task exception was never retrieved
future: <Task finished coro=<fetch_medal() done, defined at /root/1024/utils.py:39> exception=KeyError('roomid')>
Traceback (most recent call last):
File "/root/1024/utils.py", line 55, in fetch_medal
roomid = i['roomid']
KeyError: 'roomid'
或许可以加一条检测来解决?

懂了,这个情况我确实没想到,之后会修复。

@Billyzou0741326
Copy link
Contributor

嗯 之前确实没注意到233
这就定位了 异步的task太多了…

@witrian
Copy link

witrian commented Feb 28, 2020

对了,最近偶尔也会遇到这个error:

[Error] Traceback (most recent call last): File "C:\bilibili\bilibili-live-tools\Tasks.py", line 132, in run await self.Daily_bag() File "C:\bilibili\bilibili-live-tools\Tasks.py", line 23, in Daily_bag for i in range(0, len(json_response['data']['bag_list'])): TypeError: object of type 'NoneType' has no len()

@witrian
Copy link

witrian commented Feb 28, 2020

@yawwwwwn
哈欠大佬
我试着自己加 log 找出卡在哪里, 发现好象是在等舰长服务器反馈
image

image

@Billyzou0741326
Copy link
Contributor

看了下requests的文档 加一个timeout吧
https://requests.readthedocs.io/en/master/user/quickstart/#timeouts

@yawwwwwn
Copy link
Collaborator

yawwwwwn commented Mar 3, 2020

@yawwwwwn @Dawnnnnnn
我想我找到问题了
他挂的这个粉丝勋章
并没有开直播间
但是这人又让我开了自动送辣条
我现在关了,没有发生循环报错了
不过用命令“4”查询勋章状态的时候还是报错(毕竟都没有直播间号)
Task exception was never retrieved
future: <Task finished coro=<fetch_medal() done, defined at /root/1024/utils.py:39> exception=KeyError('roomid')>
Traceback (most recent call last):
File "/root/1024/utils.py", line 55, in fetch_medal
roomid = i['roomid']
KeyError: 'roomid'
或许可以加一条检测来解决?

看了下requests的文档 加一个timeout吧
https://requests.readthedocs.io/en/master/user/quickstart/#timeouts

已修复 #7314876

@yawwwwwn yawwwwwn closed this as completed Mar 3, 2020
@witrian
Copy link

witrian commented Mar 3, 2020

@yawwwwwn 下面两个也可以考虑关了
#273
#265

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests