webman使用swow协程,退出时会有警告

深林孤鹰

webman和swow都是最新版,环境linux,使用下面代码查询数据库并返回结果后,退出webman就会报警告:

 public function index(): Response
    {
        $value = \think\facade\Db::query('SELECT NOW() as now, sleep(5)'); //模拟慢查询
        return json($value); // [{"now":"2025-02-06 23:41:03","0":"2025-02-06 23:41:03"}]
    }

PHP Warning: Event loop close failed, reason: Resource busy or locked in Unknown on line 0

Warning: Event loop close failed, reason: Resource busy or locked in Unknown on line 0
[--I] signal 0x7f37ea21ec50
[-AI] async 0x7f37ea21ea90
[R--] tcp 0x7f37f3512d08
zend_mm_heap corrupted
worker[webman:23245] exit with status 6

如果不使用Db查询就不会有警告,请问我是否哪里理解有错呢?

361 2 1
2个回答

walkor 打赏

你的查询一直没返回,退出webman时这个协程无法正常关闭,给个Warning不过分吧。

  • 深林孤鹰 2025-02-22

    我是等待它返回后才关闭的,我甚至等了几分钟再关闭仍然有警告。。

  • walkor 2025-02-22

    本地测试正常

  • 深林孤鹰 2025-02-22

    奇怪,我还在两台Linux服务器上测试都有这个警告,我以为是Swow的什么问题。。
    这个报错网上还不好找,我再好好想想,先谢谢老大

  • 深林孤鹰 2025-02-22

    刚又测试了下,发现使用 \think\facade\Db::query 就会出现警告,如果用PDO:
    (new \PDO('mysql:host=127.0.0.1;dbname=xxx', 'xxx', 'xxx'))->query('SELECT NOW() as now, sleep(5)')->fetchAll();
    就不会有警告,是不是ThinkORM内部有什么资源没释放。。

  • tanhongbin 2025-02-24

    TP的orm一直不太敢用,tp的表单验证器 都有bug

  • liziyu 2025-02-24

    真建议webman官方出品只适配Eloquent ORM。TP ORM为插件作为补充。

  • 深林孤鹰 2025-02-24

    感觉swow也有问题,每次start都会有报错:

    A bug occurred in swow-v1.5.3, please report it.
    The swow developers probably don't know about it,
    and unless you report it, chances are it won't be fixed.
    You can report it by creating a bug report issue on following page:

    https://github.com/swow/swow/issues/new/choose

  • 深林孤鹰 2025-02-24

    不用TP的话,webman默认的应该没问题吧

  • walkor 2025-02-24

    测试了ubuntu debian 和wsl 都未出现你描述的错误。

    think-orm项目都这么久了很多人在用基本上不会遇到什么bug。
    swow在你的环境报bug不用就可以了。
    协程也不是只有swow,webman同时支持swoole、swow和Fiber协程,非要用可以使用swoole或Fiber。

    不是所有项目都需要协程,也不是所有开发者能驾驭协程,协程只是个可选项,只有在实在需要时去使用它,例如要curl大量外网接口时。其它情况使用非协程极限性能和稳定性是最好的。

  • 深林孤鹰 2025-02-24

    感谢老大的详细回复,我用的是CentOS,swow是自己编译的最新版1.5.3,准备再试试swoole看看效果。另外我平时喜欢研究框架,总搞一些不常用的操作,所以容易发现一些bug,望老大不要见怪^^

walkor 打赏

新购两台新服务器+本地WSL测试,均未出现错误

Ubuntu
截图

截图

Debian
截图

截图

WSL
截图

截图

代码
截图

  • 暂无评论
×
🔝