节点无法离开集群进行 eJabberd 升级

节点无法离开集群进行 eJabberd 升级

环境

  • ejabberd 版本:20.04
  • Erlang 版本:Erlang (SMP,ASYNC_THREADS)(BEAM) 模拟器版本 9.2
  • 操作系统:Linux(Debian)
  • 安装自:源

crash.log 中的错误

2022-02-08 22:42:45 =CRASH REPORT==== 崩溃者:初始调用: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: false 状态:正在运行 heap_size:376 stack_size:27 减少量:997 邻居:

错误描述 我正在尝试从 eJabberd 20.04 升级到 20.07。我的集群设置有三个节点。两个节点上的滚动升级成功。当节点 1 尝试离开集群进行升级时,它出现以下错误:

与节点的 RPC 连接失败'[电子邮件保护]: 暂停

当我尝试 ejabberdctl status 时,返回以下内容:节点'[电子邮件保护]' 已启动,状态为:已启动 与节点的 RPC 连接失败 '[电子邮件保护]':{'EXIT',{timeout,{gen_server,call,[application_controller,which_applications]}}}

在 Erlang shell 中,该节点仍显示为集群的一部分

节点()。['[电子邮件保护]“,”[电子邮件保护]']

你能帮我解决这个问题吗?

答案1

这可能是一个愚蠢的评论,但万一它能给你一些想法:

您正在运行离开集群命令在其中一个节点中执行,并且它无法正确连接到另一个节点。

您可以尝试在另一个节点上运行该命令。

如果这没有帮助,也许有一些内部方法可以尝试从集群中删除一个节点......

但是您应该更新您的问题并澄清节点名称是什么、您尝试在哪里执行管理任务以及您尝试的方法到底是什么。

答案2

感谢您的回复,抱歉回复迟了。成功完成两个节点的升级后,第一个节点出现了问题。在最后两个节点之后,第一个节点变得无响应。我们发现节点 1 失败的原因是最后两个节点完成滚动升级时 SQL 查询失败次数过多。我们发现节点 1 失败的原因是由于连接问题导致 SQL 查询失败次数过多。

节点名称是[电子邮件保护] [电子邮件保护] [电子邮件保护]

为了解决这个问题,我们必须终止不响应的 eJabberd 进程并在第一个节点上重新启动 eJabberd。我们将继续进一步升级。

相关内容