* Tune bench-tps blockhash poller and stop panicking (cherry picked from commit4b3176a9a1
) * Revert blockhash sleep (cherry picked from commite82db6fc2f
) * @sakridge feedback (cherry picked from commit848fe51f3d
) * reduce error logging (cherry picked from commita096ade345
) * clippy (cherry picked from commit54f16ca2bf
)
This commit is contained in:
committed by
Michael Vines
parent
b8b84a4c95
commit
6672d640f5
@ -24,6 +24,7 @@ use std::{
|
|||||||
cmp,
|
cmp,
|
||||||
collections::VecDeque,
|
collections::VecDeque,
|
||||||
net::SocketAddr,
|
net::SocketAddr,
|
||||||
|
process::exit,
|
||||||
sync::{
|
sync::{
|
||||||
atomic::{AtomicBool, AtomicIsize, AtomicUsize, Ordering},
|
atomic::{AtomicBool, AtomicIsize, AtomicUsize, Ordering},
|
||||||
Arc, RwLock,
|
Arc, RwLock,
|
||||||
@ -402,29 +403,39 @@ fn poll_blockhash<T: Client>(
|
|||||||
client: &Arc<T>,
|
client: &Arc<T>,
|
||||||
id: &Pubkey,
|
id: &Pubkey,
|
||||||
) {
|
) {
|
||||||
let mut blockhash_time;
|
let mut blockhash_last_updated = Instant::now();
|
||||||
|
let mut last_error_log = Instant::now();
|
||||||
loop {
|
loop {
|
||||||
blockhash_time = Instant::now();
|
let blockhash_updated = {
|
||||||
loop {
|
|
||||||
let old_blockhash = *blockhash.read().unwrap();
|
let old_blockhash = *blockhash.read().unwrap();
|
||||||
if let Ok((new_blockhash, _fee)) = client.get_new_blockhash(&old_blockhash) {
|
if let Ok((new_blockhash, _fee)) = client.get_new_blockhash(&old_blockhash) {
|
||||||
*blockhash.write().unwrap() = new_blockhash;
|
*blockhash.write().unwrap() = new_blockhash;
|
||||||
break;
|
blockhash_last_updated = Instant::now();
|
||||||
|
true
|
||||||
} else {
|
} else {
|
||||||
if blockhash_time.elapsed().as_secs() > 30 {
|
if blockhash_last_updated.elapsed().as_secs() > 120 {
|
||||||
panic!("Blockhash is not updating");
|
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");
|
||||||
}
|
}
|
||||||
sleep(Duration::from_millis(50));
|
false
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
let balance = client.get_balance(id).unwrap_or(0);
|
if blockhash_updated {
|
||||||
metrics_submit_lamport_balance(balance);
|
let balance = client.get_balance(id).unwrap_or(0);
|
||||||
|
metrics_submit_lamport_balance(balance);
|
||||||
|
}
|
||||||
|
|
||||||
if exit_signal.load(Ordering::Relaxed) {
|
if exit_signal.load(Ordering::Relaxed) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sleep(Duration::from_millis(50));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user