【发布时间】:2017-01-26 11:08:36
【问题描述】:
我是 Erlang 和 RabbitMQ 的新手。
我在 CentOS 上的 RabbitMQ 上有一个节点,我必须重置它才能重新启动消息队列。自从重新启动以来,Erlang 拒绝启动节点。有一个 erlang_vm 损坏的错误,已通过 rabbit 移除并重新启动来修复。我已经尝试在 erlang shell 中启动 net_kerlnel ,但它失败了。
[root@directadmin ~]# erl
Erlang R16B03 (erts-5.10.4) [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V5.10.4 (abort with ^G)
1> node().
nonode@nohost
2> net_kernel:start([rabbit, shortnames]).
{error,
{{shutdown,
{failed_to_start_child,net_kernel,{'EXIT',nodistribution}}},
{child,undefined,net_sup_dynamic,
{erl_distribution,start_link,[[rabbit,shortnames]]},
permanent,1000,supervisor,
[erl_distribution]}}}
3>
=INFO REPORT==== 26-Jan-2017::18:58:36 ===
Protocol: "inet_tcp": the name rabbit@directadmin seems to be in use by another Erlang node
我注意到其他人也遇到了类似的问题,他们指出修复 iptables 中的规则集解决了他们的问题。我不确定那是怎么做的。我试过service iptables restart,但没有任何区别
http://erlang.org/pipermail/erlang-questions/2015-October/086270.html
当我尝试运行 rabbitmqctl stop_app 时出现此错误
[root@directadmin ~]# rabbitmqctl stop_app
Stopping node rabbit@directadmin ...
Error: erlang_vm_restart_needed
当我尝试运行“rabbitmqctl stop”时,出现 vm 损坏错误
[root@directadmin ~]# rabbitmqctl stop
Stopping and halting node rabbit@directadmin ...
Error: {badarg,[{io,format,
[standard_error,
"Erlang VM I/O system is damaged, restart needed~n",[]],
[]},
{rabbit_log,handle_damaged_io_system,0,
[{file,"src/rabbit_log.erl"},{line,110}]},
{rabbit_log,with_local_io,1,
[{file,"src/rabbit_log.erl"},{line,95}]},
{rabbit,'-stop_and_halt/0-after$^0/0-0-',0,
[{file,"src/rabbit.erl"},{line,434}]},
{rabbit,stop_and_halt,0,[{file,"src/rabbit.erl"},{line,431}]},
{rpc,'-handle_call_call/6-fun-0-',5,
[{file,"rpc.erl"},{line,187}]}]}
【问题讨论】:
-
这里
rabbit@directadmin seems to be in use by another Erlang node你正在尝试使用这个已经在运行的rabbit@directadmin节点名称(rabbitmq 节点)我不明白你在做什么:( -
@Gabriele 感谢您的留言。我最初试图重新启动节点,因为正在运行的节点无法正常运行。当我尝试停止应用程序时,我收到需要重新启动 erlang vm 的错误。我在帖子中更新了上面的错误。
-
你的磁盘有空间吗?
-
@Gabriele 我没有。从 /var/log 中删除日志文件并再次执行 erlang 和 Rabbit 的全新安装。现在可以了!