关闭节点,导致部分接口一直超时

现象

关闭core/replicant节点时,虽然连接未中断,但是部分接口超时,无法访问ui界面,3-5min后恢复。

log

2023-09-09T07:30:07.740231+00:00 [error] Generic server emqx_cluster_rpc terminating. Reason: {{case_clause,{badrpc,timeout}},[{emqx_cluster_rpc,catch_up,2,[{file,"emqx_cluster_rpc.erl"},{line,364}]},{emqx_cluster_rpc,handle_info,2,[{file,"emqx_cluster_rpc.erl"},{line,350}]},{gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,1123}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,1200}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]}. Last message: timeout. State: #{is_leaving => false,node => 'emqx-19cf@10.71.2.157',retry_interval => 60000}.
2023-09-09T07:30:07.740965+00:00 [error] crasher: initial call: emqx_cluster_rpc:init/1, pid: <0.10474.127>, registered_name: emqx_cluster_rpc, error: {{case_clause,{badrpc,timeout}},[{emqx_cluster_rpc,catch_up,2,[{file,"emqx_cluster_rpc.erl"},{line,364}]},{emqx_cluster_rpc,handle_info,2,[{file,"emqx_cluster_rpc.erl"},{line,350}]},{gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,1123}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,1200}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]}, ancestors: [emqx_conf_sup,<0.2653.0>], message_queue_len: 0, messages: [], links: [<0.2672.0>,<0.2182.0>], dictionary: [], trap_exit: false, status: running, heap_size: 10958, stack_size: 28, reductions: 17494; neighbours: []
2023-09-09T07:30:07.742215+00:00 [error] Supervisor: {local,emqx_conf_sup}. Context: child_terminated. Reason: {{case_clause,{badrpc,timeout}},[{emqx_cluster_rpc,catch_up,2,[{file,"emqx_cluster_rpc.erl"},{line,364}]},{emqx_cluster_rpc,handle_info,2,[{file,"emqx_cluster_rpc.erl"},{line,350}]},{gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,1123}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,1200}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]}. Offender: id=emqx_cluster_rpc,pid=<0.10474.127>.

期望

关闭core时,能正常显示ui界面,不应导致部分接口一直超时。

etcd中没有节点信息了,但是在cluster status 仍然在tunning_nodes

请问你用的emqx具体版本是多少?
如果是非正常关闭core节点(直接kill,或重启机器的话)这个节点信息会过一段时间才会刷新的。
如果是正常关闭core节点的话,那还需要排查一下。

@zhongwencool
版本:5.1.6
是通过OCI 实例池关闭instance。
另外这个刷新时间可控制吗?目前我测试在几分钟后才会恢复。

@zhongwencool 节点因为不可控因素,不可避免会异常退出。建议官方还是修复下这个问题。 :wave:

您好,能提供一下稳定重现的具体步骤么?

这个用的能知道用是什么方法关的么

启动2 core + 2replicant,在OCI控制台终止其中一个实例

不太清楚OCI vm的终止流程。