Fix stale gossip entrypoint (#8053)

This commit is contained in:
carllin 2020-01-30 21:51:11 -08:00 committed by GitHub
parent 2226c1b75c
commit fd207b6907
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 1 deletions

View File

@ -38,6 +38,7 @@ impl ClusterValidatorInfo {
pub trait Cluster {
fn get_node_pubkeys(&self) -> Vec<Pubkey>;
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 restart_node(&mut self, pubkey: &Pubkey, cluster_validator_info: ClusterValidatorInfo);
fn exit_restart_node(&mut self, pubkey: &Pubkey, config: ValidatorConfig);

View File

@ -705,6 +705,10 @@ impl Cluster for LocalCluster {
cluster_validator_info.config = validator_config;
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 {

View File

@ -662,8 +662,11 @@ fn test_snapshot_restart_tower() {
cluster.restart_node(&validator_id, validator_info);
// 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.entry_point_info,
&restarted_node_info,
&cluster.funding_keypair,
1,
HashSet::new(),