tidb 节点报错[terror.go:324] ["encountered error"]

【 TiDB 使用环境】生产环境
【 TiDB 版本】v7.1.3
【复现路径】TiDB dashboard → 日志搜索 ->tidb error
日志
【遇到的问题:问题现象及影响】tidb 节点出现大量 错误日志,[terror.go:324] [“encountered error”] [error=“close tcp 192.168.1.xx:4000->192.168.1.xxx:6364: use of closed network connection”] [stack=“github.com/pingcap/tidb/parser/terror.Log\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/parser/terror/terror.go:324\ngithub.com/pingcap/tidb/server.(*Server).onConn\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/server/server.go:647”]。
tidb 节点前端有 haproxy和 keepalived 做高可用,不知道是否跟这个有关
【资源配置】

【附件:截图/日志/监控】

这个报错的大概意思是客户端来访问 tidb-server,TCP链接也建立成功了,然后tidb server需要返回结果或者检查链接情况时,发现被客户端断开了,所以tidb-server打印日志报错,说明遇到了异常现象。

看起来像是前端负载均衡层对后端tidb-server upstream 的探活心跳,请确认下负载均衡组件是否这个逻辑。

其次,可以确认业务是否有影响。

1 个赞

:thinking:会不会是连接数太多导致的?

原来的网络连接已经关闭,结果节点还在使用原来的连接,就报错了,应该是存在异常断开的情况

这个应该是haproxy的配置问题吧,能贴下你的haproxy配置吗?

可以的,下面是我们haproxy 的配置,20/21 是后端 tidb 节点,haproxy 也部署在这两个节点上

server tidb-1 10.12.141.118:4000 check port 10080 send-proxy check inter 2000 rise 2 fall 3
我记得haproxy检测tidb的话,不能检测4000端口,要检测10080端口,你配置上这个试一下。。。check port 10080

好的,我试试,感谢 :grinning:

请问下你们线上用haproxy ,有没有遇到什么坑

按照官方的配置,基本上没出什么问题,这个日志不知道算不算坑 :joy:

可以直连tidb节点试试。

直连需要业务支持,现在业务上没影响,所以也不想改直连 :rofl:

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。