swoole生产环境并发高时偶尔出现 WARNING swSignalfd_onSignal (ERRNO 707)

问题描述

swoole搭建的RPC服务运行一段时间后就频繁的出现

WARNING swSignalfd_onSignal (ERRNO 707): Unable to find callback function for signal Broken pipe: 13

虽然不影响业务,但是看着难受。

问题出现的环境背景及自己尝试过哪些方法

网上说是给进程发了管道命令,但是代码没有处理该命令的回调。
还有种说法是给关闭了的socket发送信息,就会报错。但我尝试并没有产生该问题。

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
找不到具体出错的代码,客户端使用的是golang

func main() {
    conn, _ := net.Dial("tcp", "0.0.0.0:6677")
    defer conn.Close()
    text := "{\"jsonrpc\":\"2.0\",\"method\":\"add\",\"params\":{\"a\":\"3\",\"b\":\"7656\"},\"id\":1}\r\n"
    fmt.Fprintf(conn, text)
    r := bufio.NewReader(conn)
    buffer,_ := r.ReadString('\n')
    fmt.Println(string(buffer))
}

你期待的结果是什么?实际看到的错误信息又是什么?

不要再报警告,为什么会产生这个警告,能否自己通过swoole复现?

问题描述

swoole生产环境一直报 WARNING swSignalfd_onSignal (ERRNO 707)

问题出现的平台版本及自己尝试过哪些方法

swoole版本v4.3.5

阅读 10.8k
2 个回答

是后端服务关闭了,你还在用这个socket就会触发这个 13
你可以监听这个信号
复现也简单 你操作一下数据库 然后去数据库把这个连接 kill了 再操作数据库 就出现了

707 信号13 表明你的代码逻辑中向已关闭的 socket 发送了数据。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题