达梦数据库-报错-03-viosocket_peer_addr getpeername error: 107
目录
一、环境信息
二、报错截图
三、getpeername函数介绍
(1)中文
(2)英文
四、报错原因
五、分析
六、建议
一、环境信息
名称 | 值 |
CPU | x86 |
操作系统 | KylinV10 |
DM版本 | DM Database Server 64 V8 |
二、报错截图
viosocket_peer_addr是达梦封装函数,getpeername是系统调用,107是getpeername返回的错误码。
三、getpeername函数介绍
(1)中文
(2)英文
四、报错原因
宏 | 错误码 | 原因 |
ENOTCONN | 107 | 套接字未连接。 |
五、分析
序号 | 分析 |
1 | 网络连接成功建立后,对端调用了 close(),或者本端调用了 close(),或者有一方异常宕机(dm可以打印出这个告警,说明一定不是dm服务宕机),操作系统也会帮忙自动关闭打开套接字,但大概率是应用端调用了关闭套接字函数,随后服务端又试图在这个已关闭的套接字上调用 getpeername,导致的报错。 |
六、建议
建议应用端排查socket相关函数调用情况,或是否在报错时间段内相应的线程或进程关闭,导致操作系统自动回收套接字资源。