Fix stale gossip entrypoint (#8053)
This commit is contained in:
parent
2226c1b75c
commit
fd207b6907
|
@ -38,6 +38,7 @@ impl ClusterValidatorInfo {
|
||||||
pub trait Cluster {
|
pub trait Cluster {
|
||||||
fn get_node_pubkeys(&self) -> Vec<Pubkey>;
|
fn get_node_pubkeys(&self) -> Vec<Pubkey>;
|
||||||
fn get_validator_client(&self, pubkey: &Pubkey) -> Option<ThinClient>;
|
fn get_validator_client(&self, pubkey: &Pubkey) -> Option<ThinClient>;
|
||||||
|
fn get_contact_info(&self, pubkey: &Pubkey) -> Option<&ContactInfo>;
|
||||||
fn exit_node(&mut self, pubkey: &Pubkey) -> ClusterValidatorInfo;
|
fn exit_node(&mut self, pubkey: &Pubkey) -> ClusterValidatorInfo;
|
||||||
fn restart_node(&mut self, pubkey: &Pubkey, cluster_validator_info: ClusterValidatorInfo);
|
fn restart_node(&mut self, pubkey: &Pubkey, cluster_validator_info: ClusterValidatorInfo);
|
||||||
fn exit_restart_node(&mut self, pubkey: &Pubkey, config: ValidatorConfig);
|
fn exit_restart_node(&mut self, pubkey: &Pubkey, config: ValidatorConfig);
|
||||||
|
|
|
@ -705,6 +705,10 @@ impl Cluster for LocalCluster {
|
||||||
cluster_validator_info.config = validator_config;
|
cluster_validator_info.config = validator_config;
|
||||||
self.restart_node(pubkey, cluster_validator_info);
|
self.restart_node(pubkey, cluster_validator_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn get_contact_info(&self, pubkey: &Pubkey) -> Option<&ContactInfo> {
|
||||||
|
self.validators.get(pubkey).map(|v| &v.info.contact_info)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Drop for LocalCluster {
|
impl Drop for LocalCluster {
|
||||||
|
|
|
@ -662,8 +662,11 @@ fn test_snapshot_restart_tower() {
|
||||||
cluster.restart_node(&validator_id, validator_info);
|
cluster.restart_node(&validator_id, validator_info);
|
||||||
|
|
||||||
// Test cluster can still make progress and get confirmations in tower
|
// Test cluster can still make progress and get confirmations in tower
|
||||||
|
// Use the restarted node as the discovery point so that we get updated
|
||||||
|
// validator's ContactInfo
|
||||||
|
let restarted_node_info = cluster.get_contact_info(&validator_id).unwrap();
|
||||||
cluster_tests::spend_and_verify_all_nodes(
|
cluster_tests::spend_and_verify_all_nodes(
|
||||||
&cluster.entry_point_info,
|
&restarted_node_info,
|
||||||
&cluster.funding_keypair,
|
&cluster.funding_keypair,
|
||||||
1,
|
1,
|
||||||
HashSet::new(),
|
HashSet::new(),
|
||||||
|
|
Loading…
Reference in New Issue