Closed KaMmySuma closed 1 year ago
代码复制带这边后就变了,具体请看截图:
首先抱歉这么晚处理issue(被学校关了五周对不起(磕磕磕) 然后我看了一下,在丢漂流瓶的时候会卡是因为字符过多,且在代码中写入函数不是异步造成的阻塞(但是好像有大佬帮我改成异步了,我这边没法复制你那里的字符,可以麻烦你再试试(( 在捡起漂流瓶报错的原因就是因为字符过长被服务器拦截了,这个没什么好说的(
首先抱歉这么晚处理issue(被学校关了五周对不起(磕磕磕) 然后我看了一下,在丢漂流瓶的时候会卡是因为字符过多,且在代码中写入函数不是异步造成的阻塞(但是好像有大佬帮我改成异步了,我这边没法复制你那里的字符,可以麻烦你再试试(( 在捡起漂流瓶报错的原因就是因为字符过长被服务器拦截了,这个没什么好说的(
丢漂流瓶.txt 感谢大佬答复~ 我将插件更新到最新版本后进行尝试,仍然是卡死。
我将该字符复制进txt里上传文件。 记事本打开是一堆口字,但是复制进qq聊天框里并发送后就会变成一小段蚂蚁窝。
首先抱歉这么晚处理issue(被学校关了五周对不起(磕磕磕) 然后我看了一下,在丢漂流瓶的时候会卡是因为字符过多,且在代码中写入函数不是异步造成的阻塞(但是好像有大佬帮我改成异步了,我这边没法复制你那里的字符,可以麻烦你再试试(( 在捡起漂流瓶报错的原因就是因为字符过长被服务器拦截了,这个没什么好说的(
丢漂流瓶.txt 感谢大佬答复~ 我将插件更新到最新版本后进行尝试,仍然是卡死。
我将该字符复制进txt里上传文件。 记事本打开是一堆口字,但是复制进qq聊天框里并发送后就会变成一小段蚂蚁窝。
测试了一下,除了会把我的shell卡崩外没有什么异常
日志里看当成功匹配到插件matcher
后也没有阻塞,但是在匹配的过程中阻塞了4秒。
所以目前的判断是:
首先抱歉这么晚处理issue(被学校关了五周对不起(磕磕磕) 然后我看了一下,在丢漂流瓶的时候会卡是因为字符过多,且在代码中写入函数不是异步造成的阻塞(但是好像有大佬帮我改成异步了,我这边没法复制你那里的字符,可以麻烦你再试试(( 在捡起漂流瓶报错的原因就是因为字符过长被服务器拦截了,这个没什么好说的(
丢漂流瓶.txt 感谢大佬答复~ 我将插件更新到最新版本后进行尝试,仍然是卡死。 我将该字符复制进txt里上传文件。 记事本打开是一堆口字,但是复制进qq聊天框里并发送后就会变成一小段蚂蚁窝。
测试了一下,除了会把我的shell卡崩外没有什么异常
日志里看当成功匹配到插件
matcher
后也没有阻塞,但是在匹配的过程中阻塞了4秒。 所以目前的判断是:
- bot卡住不是此插件造成的。
- nonebot2检测你这段超长文字并寻找到响应的插件才是导致bot卡住的原因。(或许是heweather,记得以前输入过多图片时这个插件的正则检测规则会导致主线程阻塞
感谢大佬分析,我新建了一个nonebot2项目进行测试,仅安装漂流瓶插件,确实没有再次复现该问题,并非此插件造成的卡死。 而后我又同时安装了漂流瓶与heweather后再次尝试,卡死复现。
问题已经明了了,大佬分析的很到位,感谢!
群友往漂流瓶塞了段字符: 如下:
丢漂流瓶 [ . .. .. . [ . .. .. . [ . .. .. . [ . .. .. .
随后bot卡死,不响应任何消息,等待一分钟后会恢复,如泄洪般触发这一分钟里各群积累的消息。 之后我自己去测试了一下,这段字符会百分百触发卡死。 这个瓶子会被写入数据库:
[ { "user": xxxxx "group": xxxxx "user_name": "𝓚𝓪𝓜𝓶𝔂", "group_name": "咪啪窝", "text": "[ . .. .. . [ . .. .. . [ . .. .. . [ . .. .. .", "report": 0, "reported": [], "picked": 2, "del": 0, "comment": [], "time": "2023-04-17 17:27:38" } ]
但如果试图捡起它则会报错: 04-17 17:28:05 [ERROR] nonebot | Running Matcher(type='message', module=nonebot_plugin_bottle) failed. Traceback (most recent call last): File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main return _run_code(code, main_globals, None, File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code exec(code, run_globals) File "C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\mipa-4Y3EISai-py3.10\Scripts\nb.exe__main.py", line 7, in
sys.exit(main())
File "C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\mipa-4Y3EISai-py3.10\lib\site-packages\click\core.py", line 1130, in call
return self.main(*args, kwargs)
File "C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\mipa-4Y3EISai-py3.10\lib\site-packages\click\core.py", line 1055, in main
rv = self.invoke(ctx)
File "C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\mipa-4Y3EISai-py3.10\lib\site-packages\click\core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\mipa-4Y3EISai-py3.10\lib\site-packages\click\core.py", line 1404, in invoke
return ctx.invoke(self.callback, ctx.params)
File "C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\mipa-4Y3EISai-py3.10\lib\site-packages\click\core.py", line 760, in invoke
return callback(*args, *kwargs)
File "C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\mipa-4Y3EISai-py3.10\lib\site-packages\nb_cli\commands\main.py", line 30, in run
run_bot(file, app)
File "C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\mipa-4Y3EISai-py3.10\lib\site-packages\nb_cli\handlers\deploy.py", line 25, in run_bot
nonebot.run(app=f"{module_name}:{app}")
File "C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\mipa-4Y3EISai-py3.10\lib\site-packages\nonebot__init__.py", line 309, in run
get_driver().run(args, *kwargs)
File "C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\mipa-4Y3EISai-py3.10\lib\site-packages\nonebot\drivers\fastapi.py", line 198, in run
uvicorn.run(
File "C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\mipa-4Y3EISai-py3.10\lib\site-packages\uvicorn\main.py", line 568, in run
server.run()
File "C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\mipa-4Y3EISai-py3.10\lib\site-packages\uvicorn\server.py", line 59, in run
return asyncio.run(self.serve(sockets=sockets))
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 636, in run_until_complete
self.run_forever()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\windows_events.py", line 321, in run_forever
super().run_forever()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 603, in run_forever
self._run_once()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 1899, in _run_once
handle._run()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\asyncio\events.py", line 80, in _run
self._context.run(self._callback, self._args)
File "C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\mipa-4Y3EISai-py3.10\lib\site-packages\nonebot\message.py", line 141, in _check_matcher
await _run_matcher(Matcher, bot, event, state, stack, dependency_cache)