Tune bench-tps blockhash poller and stop panicking (bp #7563) (#7567)

* Tune bench-tps blockhash poller and stop panicking

(cherry picked from commit 4b3176a9a1)

* Revert blockhash sleep

(cherry picked from commit e82db6fc2f)

* @sakridge feedback

(cherry picked from commit 848fe51f3d)

* reduce error logging

(cherry picked from commit a096ade345)

* clippy

(cherry picked from commit 54f16ca2bf)
This commit is contained in:
mergify[bot]
2019-12-19 11:42:42 -07:00
committed by Michael Vines
parent b8b84a4c95
commit 6672d640f5

View File

@ -24,6 +24,7 @@ use std::{
cmp,
collections::VecDeque,
net::SocketAddr,
process::exit,
sync::{
atomic::{AtomicBool, AtomicIsize, AtomicUsize, Ordering},
Arc, RwLock,
@ -402,29 +403,39 @@ fn poll_blockhash<T: Client>(
client: &Arc<T>,
id: &Pubkey,
) {
let mut blockhash_time;
loop {
blockhash_time = Instant::now();
let mut blockhash_last_updated = Instant::now();
let mut last_error_log = Instant::now();
loop {
let blockhash_updated = {
let old_blockhash = *blockhash.read().unwrap();
if let Ok((new_blockhash, _fee)) = client.get_new_blockhash(&old_blockhash) {
*blockhash.write().unwrap() = new_blockhash;
break;
blockhash_last_updated = Instant::now();
true
} else {
if blockhash_time.elapsed().as_secs() > 30 {
panic!("Blockhash is not updating");
}
sleep(Duration::from_millis(50));
continue;
if blockhash_last_updated.elapsed().as_secs() > 120 {
eprintln!("Blockhash is stuck");
exit(1)
} else if blockhash_last_updated.elapsed().as_secs() > 30
&& last_error_log.elapsed().as_secs() >= 1
{
last_error_log = Instant::now();
error!("Blockhash is not updating");
}
false
}
};
if blockhash_updated {
let balance = client.get_balance(id).unwrap_or(0);
metrics_submit_lamport_balance(balance);
}
if exit_signal.load(Ordering::Relaxed) {
break;
}
sleep(Duration::from_millis(50));
}
}