集群版本】GaussDB A 6.5.1

【问题描述】集群重启后,备cm_server 进程down,cms无法启动

【机制说明】

cm_server进程的启动是由cm_agent拉起,在cm_server的listen端口被占用时cm_agent会等待端口占用解除后自动拉起恢复;

cm_server简称cms;cm_agent简称cma;

【问题分析】

1. 用户进行的DN guc参数修改,用户执行重启集群操作,发现集群有告警,集群有cms down现象

image.png

2. 分析当前节点cma的日志发现,cm_server进程需要listen 的端口号被占用,导致无法拉起,日志如下:

StartAndStop WARNING: port:25302 already in use. /proc/net/tcp:
sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
14: 7C04240B:62D6 00000000:0000 0A 00000000:00000801 02:00000011 00000000  2000        0 197292192 2 ffff88017c952580 100 0 0 10 0

image.png

3. 进一步分析,发现是gs_check占用了此listen端口,通过kill掉gs_check进程,cm_server进程顺利恢复

netstat -anpo| grep 25302

image.png

kill -9  23666

kill后cms恢复正常。

image.png

【问题根因】cms的进程listen端口被其他进程占用,导致cms无法被拉起

【触发条件】gs_check等其他进程占用cm_server listen端口时会触发。

【恢复方案】kill 占用cm_server listen端口占用进程恢复cms进程。