From c22d1e405aa881f5bb01085f8a1784bb3af174ac Mon Sep 17 00:00:00 2001 From: "David N. Welton" Date: Thu, 17 Jul 2014 15:15:27 +0200 Subject: Get tick time in order to 'synchronize' with the node we are connecting with. Having a different net_ticktime than the remote node will lead to odd shell crashes. Fixes #209 --- priv/templates/extended_bin.dtl | 7 +++++-- priv/templates/nodetool.dtl | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'priv') diff --git a/priv/templates/extended_bin.dtl b/priv/templates/extended_bin.dtl index bfdc132..79b84ce 100644 --- a/priv/templates/extended_bin.dtl +++ b/priv/templates/extended_bin.dtl @@ -32,9 +32,12 @@ relx_rem_sh() { # transparently id="remsh$(relx_gen_id)-${NAME}" + # Get the node's ticktime so that we use the same thing. + TICKTIME="$(relx_nodetool rpcterms net_kernel get_net_ticktime)" + # Setup remote shell command to control node exec "$BINDIR/erl" "$NAME_TYPE" "$id" -remsh "$NAME" -boot start_clean \ - -setcookie "$COOKIE" + -setcookie "$COOKIE" -kernel net_ticktime $TICKTIME } # Generate a random id @@ -46,7 +49,7 @@ relx_gen_id() { relx_nodetool() { command="$1"; shift "$ERTS_DIR/bin/escript" "$ROOTDIR/bin/nodetool" "$NAME_TYPE" "$NAME" \ - -setcookie "$COOKIE" "$command" + -setcookie "$COOKIE" "$command" $@ } # Output a start command for the last argument of run_erl diff --git a/priv/templates/nodetool.dtl b/priv/templates/nodetool.dtl index 80f1965..2f46395 100644 --- a/priv/templates/nodetool.dtl +++ b/priv/templates/nodetool.dtl @@ -42,7 +42,7 @@ main(Args) -> _ -> halt(1) end; - ["rpcterms", Module, Function, ArgsAsString] -> + ["rpcterms", Module, Function | ArgsAsString] -> case rpc:call(TargetNode, list_to_atom(Module), list_to_atom(Function), consult(ArgsAsString), 60000) of {badrpc, Reason} -> -- cgit v1.2.3