Avoid panic if no rpc peers exist

This commit is contained in:
Michael Vines 2019-06-17 15:44:19 -07:00
parent b44d8c394e
commit feeaad619a
1 changed files with 40 additions and 36 deletions

View File

@ -549,10 +549,13 @@ impl Replicator {
previous_blockhash: &Hash, previous_blockhash: &Hash,
) -> result::Result<(Hash, u64), Error> { ) -> result::Result<(Hash, u64), Error> {
for _ in 0..10 { for _ in 0..10 {
let rpc_client = { let rpc_peers = {
let cluster_info = cluster_info.read().unwrap(); let cluster_info = cluster_info.read().unwrap();
let rpc_peers = cluster_info.rpc_peers(); cluster_info.rpc_peers()
};
debug!("rpc peers: {:?}", rpc_peers); debug!("rpc peers: {:?}", rpc_peers);
if !rpc_peers.is_empty() {
let rpc_client = {
let node_index = thread_rng().gen_range(0, rpc_peers.len()); let node_index = thread_rng().gen_range(0, rpc_peers.len());
RpcClient::new_socket(rpc_peers[node_index].rpc) RpcClient::new_socket(rpc_peers[node_index].rpc)
}; };
@ -592,6 +595,7 @@ impl Replicator {
return Ok((storage_blockhash, storage_slot)); return Ok((storage_blockhash, storage_slot));
} }
} }
}
info!("waiting for segment..."); info!("waiting for segment...");
sleep(Duration::from_secs(5)); sleep(Duration::from_secs(5));
} }