环境
- ejabberd 版本:20.04
- Erlang 版本:Erlang (SMP,ASYNC_THREADS)(BEAM) 模拟器版本 9.2
- 操作系统:Linux(Debian)
- 安装自:源码
crash.log 中的错误
2022-02-08 22:42:45 =CRASH REPORT==== crasher:初始调用:pgsql_proto:init/1 pid:<0.27318.6018>registered_name:[]异常退出:{{init,{error,timeout} },[{gen_server,init_it,6,[{file,"gen_server.erl"},{line,349}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line, 247}]}]} 祖先:['ejabberd_sql_vhost1.xmpp_12','ejabberd_sql_sup_vhost1.xmpp',ejabberd_db_sup,ejabberd_sup,<0.87.0>] message_queue_len:0条消息:[]链接:[]字典:[]trap_exit:错误状态:运行堆大小:376 堆栈大小:27 减少:997 邻居:
错误描述 我正在尝试从 eJabberd 20.04 升级到 20.07。我的集群设置有三个节点。两个节点滚动升级成功。当 node1 试图离开集群进行升级时,它会给出以下错误:
与节点 '[email protected] 的 RPC 连接失败:超时
当我尝试 ejabberdctl 状态时,返回以下内容:节点 '[email protected]' 以状态启动:已启动 与节点 '[email protected]' 的 RPC 连接失败:{'EXIT', {timeout, {gen_server ,调用, [application_controller, which_applications]}}}
在 Erlang shell 上,节点仍然显示为集群的一部分
节点()。['[email protected]','[email protected]']
你能帮我解决这个问题吗?
这可能是一个愚蠢的评论,但以防万一它给你一些想法:
您正在其中一个节点中运行leave_cluster命令,但它没有正确连接到另一个节点。
您可以尝试在另一个节点中运行该命令。
如果这没有帮助,也许有一些内部方法可以尝试从集群中删除节点......
但是您应该更新您的问题并澄清节点名称是什么,您尝试执行管理任务的位置以及您尝试的方法到底是什么。
感谢您的回复,并对迟到的回复感到抱歉。成功完成两个节点的升级后,问题发生在第一个节点。在最后两个节点之后,第一个节点变得无响应。我们发现节点1失败的原因是最后两个节点滚动升级失败的SQL查询太多。我们发现节点 1 失败的原因是由于连接问题导致的 SQL 查询失败太多。
节点名称为 [email protected] [email protected] [email protected]
为了解决这个问题,我们必须终止无响应的 eJabberd 进程并在第一个节点上重新启动 eJabberd。我们正在继续进行进一步的升级。