erlang - Takeover fails when restarting the highest priority node while the node with lowest is running -
i have application running on 3 nodes pc, pc0, pc1. @ first when started them started , first node started running, when quit shell of first node, second (pc0) started , when quit shell of second one, third (pc1) started running. if restart pc , pc0 while pc1 still running, both of nodes crashed saying mandatory node pc1 down. wondering, pc1 running other nodes saying "pc1 down".
{"kernel pid terminated",application_controller,"{application_start_failure,kernel,{{shutdown,{failed_to_start_child,kernel_config,{mandatory_nodes_down,['myapp@pc-1']}}},{kernel,start,[normal,[]]}}}"}
what may reason that?
do have global name regiser in application? procedure of takeover start application @ high priority node first. shutdown application @ other node. means have short period global name conflict.
default global name conflict resolver global:random_exit_name(). pick pid randomly. may kill process @ high priority node , cause application shutdown.
my solution keep process register locally. no problem @ takeover. use global:re_register_name() register global name.
Comments
Post a Comment