From 59fdd8f6be18d17ce3f7ae384723a3d955d28669 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Wed, 19 Dec 2018 13:25:23 -0800 Subject: [PATCH] Move wallet airdrop retries into fullnode start script --- ci/localnet-sanity.sh | 6 ------ multinode-demo/fullnode.sh | 24 +++++++++++++++++++----- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/ci/localnet-sanity.sh b/ci/localnet-sanity.sh index 5fb3f6a22e..766801be72 100755 --- a/ci/localnet-sanity.sh +++ b/ci/localnet-sanity.sh @@ -18,12 +18,6 @@ for cmd in $backgroundCommands; do echo "--- Start $cmd" rm -f log-"$cmd".txt multinode-demo/"$cmd".sh > log-"$cmd".txt 2>&1 & - if [[ $cmd = drone ]]; then - # Give the drone time to startup before the fullnodes attempt to airdrop - # from it (TODO: alternatively adjust `solana-wallet airdrop` to retry on - # "Connection refused" errors) - sleep 2 - fi declare pid=$! pids+=("$pid") echo "pid: $pid" diff --git a/multinode-demo/fullnode.sh b/multinode-demo/fullnode.sh index 01d0435a6a..e39afb0bab 100755 --- a/multinode-demo/fullnode.sh +++ b/multinode-demo/fullnode.sh @@ -184,15 +184,29 @@ $rsync -vPr "$rsync_leader_url"/config/ "$ledger_config_dir" exit 1 } +$solana_wallet --keypair "$fullnode_id_path" address + # A fullnode requires 3 tokens to function: # - one token to create an instance of the vote_program with # - one token for the transaction fee # - one token to keep the node identity public key valid. -$solana_wallet --keypair "$fullnode_id_path" address -$solana_wallet \ - --keypair "$fullnode_id_path" \ - --network "$leader_address" \ - airdrop 3 +retries=5 +while true; do + $solana_wallet \ + --keypair "$fullnode_id_path" \ + --network "$leader_address" \ + airdrop 3 \ + && break + + # TODO: Consider moving this retry logic into `solana-wallet airdrop` itself, + # currently it does not retry on "Connection refused" errors. + retries=$((retries - 1)) + if [[ $retries -le 0 ]]; then + exit 1 + fi + echo "Airdrop failed. Remaining retries: $retries" + sleep 1 +done trap 'kill "$pid" && wait "$pid"' INT TERM $program \