首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
ERROR错误:swFactoryProcess_finish (ERROR 1005): connection[fd=5] does not exists
ERROR错误:swFactoryProcess_finish (ERROR 1005): connection[fd=5] does not exists 如果才能不报这个错误,客户端自己直接关掉了tcp连接,我已经设置了heartbeat_check_interval和heartbeat_idle_time。
发布于8年前 · 5 次浏览 · 来自
提问
流
流浪狗
ERROR错误:swFactoryProcess_finish (ERROR 1005): connection[fd=5] does not exists 如果才能不报这个错误,客户端自己直接关掉了tcp连接,我已经设置了heartbeat_check_interval和heartbeat_idle_time。
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2020-03-13
Twosee
若出现以下提示 ``` NOTICE swFactoryProcess_finish (ERRNO 1004): send 165 byte failed, because connection[fd=123] is closed ``` ``` NOTICE swFactoryProcess_finish (ERROR 1005): connection[fd=123] does not exists ``` 服务端响应时, 客户端已经切断了连接导致 常见于: + 浏览器疯狂刷新页面(还没加载完就刷掉了) + ab压测到一半取消 + wrk基于时间的压测 (时间到了未完成的请求会被取消) 以上几种情况均属于正常现象, 可以忽略, 所以该错误的级别是`NOTICE` 如由于其它情况无缘无故出现大量连接断开时, 才需要注意 可通过调整`log_level`到 `SWOOLE_LOG_WARNING`屏蔽该提示 设置心跳并不能解决该问题, 服务器端无法控制客户端断开的时机, 也无法实时监测到客户端连接的断开, 且在`SWOOLE_PROCESS`模式下, 连接是由`master`进程管理的, 从`worker`发送响应到`master`之间不是瞬时的, 同理`master`监测到连接断开到通知`worker`进行`onClose`回调也不是瞬时的, 都是需要通过IPC通信相互通知的, 所以会出现发送响应到一半时发现连接已断开, 底层就会输出这样的日志
赞
2
回复
2020-03-13
郭新华
heartbeat_check_interval 和 heartbeat_idle_time 使用来踢掉死链接的,并且是几秒检测一次,具体参考[这节课](https://course.swoole-cloud.com/course-video/10) 报错`connection is closed`是因为在已经关闭的连接进行读写,这是很常见的报错,可以不用管,可以通过修改[log_level](https://wiki.swoole.com/#/server/setting?id=log_level)关闭notice报错。 复现场景:客户端发送个请求后马上断开了连接,服务端收到了客户端请求,处理完之后发送给master进程(此处参考文档 PROCESS模式)后发现连接已经断了就会报这个错
赞
2
回复
2018-10-31
s
shinezzil
同样报这个错误,在并发比较大的情况下出现 swoole版本:1.9.6 请问楼上解决了吗?
赞
0
回复
2018-10-31
凡
凡提提〇2
client端连接的时候不要立刻close
赞
0
回复
2019-10-21
易
易安
同样也是出现了这个问题,我就简单玩了一个测试,用Js写了一个for循环50次去请求接口,结果就出现这种情况了,并且还有一个问题,我尝试使用swoole代替php-fpm,但是发现for循环次数多的话,后面的请求性能还不如php-fmp。
赞
0
回复
2019-10-21
莫
莫离
并且我用的是swooole4.0版本
赞
0
回复
2020-03-13
M
Meteor
客户端连接收不到消息不要立刻断开,阻塞等待
赞
0
回复