Add timeout to prevent infinite loop (#15715) (#15735)

(cherry picked from commit 1fc8836631)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
This commit is contained in:
mergify[bot]
2021-03-05 13:52:20 +00:00
committed by GitHub
parent 166fa33433
commit fc29ee7001

View File

@ -59,7 +59,7 @@ use std::{
sync::atomic::{AtomicBool, Ordering},
sync::Arc,
thread::{sleep, Builder, JoinHandle},
time::Duration,
time::{Duration, Instant},
};
use tempfile::TempDir;
@ -1809,7 +1809,15 @@ fn do_test_optimistic_confirmation_violation_with_or_without_tower(with_tower: b
// Step 1:
// Let validator A, B, (D) run for a while.
let (mut validator_a_finished, mut validator_b_finished) = (false, false);
let now = Instant::now();
while !(validator_a_finished && validator_b_finished) {
let elapsed = now.elapsed();
if elapsed > Duration::from_secs(30) {
panic!(
"LocalCluster nodes failed to log enough tower votes in {} secs",
elapsed.as_secs()
);
}
sleep(Duration::from_millis(100));
if let Some(last_vote) = last_vote_in_tower(&val_a_ledger_path, &validator_a_pubkey) {