diff --git a/rebar.config b/rebar.config index a95234dee..c9e0dbcf0 100644 --- a/rebar.config +++ b/rebar.config @@ -1,4 +1,4 @@ {deps, [ -{gproc,".*",{git,"https://github.com/uwiger/gproc",""}},{lager,".*",{git,"https://github.com/basho/lager","master"}},{gen_logger,".*",{git,"https://github.com/emqtt/gen_logger",""}},{esockd,".*",{git,"https://github.com/emqtt/esockd","emq20"}},{mochiweb,".*",{git,"https://github.com/emqtt/mochiweb",""}} +{gproc,".*",{git,"https://github.com/uwiger/gproc",""}},{lager,".*",{git,"https://github.com/basho/lager","master"}},{gen_logger,".*",{git,"https://github.com/emqtt/gen_logger",""}},{esockd,".*",{git,"https://github.com/emqtt/esockd","master"}},{mochiweb,".*",{git,"https://github.com/emqtt/mochiweb",""}} ]}. {erl_opts, [{parse_transform,lager_transform}]}. diff --git a/src/emqttd_cluster.erl b/src/emqttd_cluster.erl index 834de2d71..d5494a6b9 100644 --- a/src/emqttd_cluster.erl +++ b/src/emqttd_cluster.erl @@ -77,8 +77,10 @@ remove(Node) -> ok -> rpc:call(Node, ?MODULE, reboot, []); Error -> Error end; - Error -> - {error, Error} + {badrpc, nodedown} -> + emqttd_mnesia:remove_from_cluster(Node); + {badrpc, Reason} -> + {error, Reason} end. %% @doc Cluster status diff --git a/src/emqttd_mnesia.erl b/src/emqttd_mnesia.erl index 4b58d88d1..768d27cf0 100644 --- a/src/emqttd_mnesia.erl +++ b/src/emqttd_mnesia.erl @@ -187,8 +187,8 @@ remove_from_cluster(Node) when Node =/= node() -> ensure_ok(del_schema_copy(Node)), ensure_ok(rpc:call(Node, ?MODULE, delete_schema, [])); {true, false} -> - ensure_ok(del_schema_copy(Node)), - ensure_ok(rpc:call(Node, ?MODULE, delete_schema, [])); + ensure_ok(del_schema_copy(Node)); + %ensure_ok(rpc:call(Node, ?MODULE, delete_schema, [])); {false, _} -> {error, node_not_in_cluster} end.