pass 'enable_rehashing' through all accounts hash functions (#27701)
This commit is contained in:
parent
ac74fc16b6
commit
d242c0fc97
|
@ -125,6 +125,7 @@ fn main() {
|
||||||
&ancestors,
|
&ancestors,
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
|
true,
|
||||||
);
|
);
|
||||||
time.stop();
|
time.stop();
|
||||||
let mut time_store = Measure::start("hash using store");
|
let mut time_store = Measure::start("hash using store");
|
||||||
|
@ -138,6 +139,7 @@ fn main() {
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
false,
|
false,
|
||||||
|
true,
|
||||||
);
|
);
|
||||||
time_store.stop();
|
time_store.stop();
|
||||||
if results != results_store {
|
if results != results_store {
|
||||||
|
|
|
@ -99,6 +99,7 @@ fn test_accounts_hash_bank_hash(bencher: &mut Bencher) {
|
||||||
&ancestors,
|
&ancestors,
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
|
true,
|
||||||
);
|
);
|
||||||
let test_hash_calculation = false;
|
let test_hash_calculation = false;
|
||||||
bencher.iter(|| {
|
bencher.iter(|| {
|
||||||
|
@ -135,6 +136,7 @@ fn test_update_accounts_hash(bencher: &mut Bencher) {
|
||||||
&ancestors,
|
&ancestors,
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
|
true,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -816,6 +816,7 @@ impl Accounts {
|
||||||
epoch_schedule,
|
epoch_schedule,
|
||||||
rent_collector,
|
rent_collector,
|
||||||
is_startup,
|
is_startup,
|
||||||
|
true,
|
||||||
)
|
)
|
||||||
.1
|
.1
|
||||||
}
|
}
|
||||||
|
@ -845,6 +846,7 @@ impl Accounts {
|
||||||
can_cached_slot_be_unflushed,
|
can_cached_slot_be_unflushed,
|
||||||
ignore_mismatch,
|
ignore_mismatch,
|
||||||
store_detailed_debug_info,
|
store_detailed_debug_info,
|
||||||
|
true,
|
||||||
) {
|
) {
|
||||||
warn!("verify_bank_hash failed: {:?}, slot: {}", err, slot);
|
warn!("verify_bank_hash failed: {:?}, slot: {}", err, slot);
|
||||||
false
|
false
|
||||||
|
|
|
@ -6602,6 +6602,7 @@ impl AccountsDb {
|
||||||
ancestors: &Ancestors,
|
ancestors: &Ancestors,
|
||||||
epoch_schedule: &EpochSchedule,
|
epoch_schedule: &EpochSchedule,
|
||||||
rent_collector: &RentCollector,
|
rent_collector: &RentCollector,
|
||||||
|
enable_rehashing: bool,
|
||||||
) -> (Hash, u64) {
|
) -> (Hash, u64) {
|
||||||
self.update_accounts_hash_with_index_option(
|
self.update_accounts_hash_with_index_option(
|
||||||
true,
|
true,
|
||||||
|
@ -6613,6 +6614,7 @@ impl AccountsDb {
|
||||||
epoch_schedule,
|
epoch_schedule,
|
||||||
rent_collector,
|
rent_collector,
|
||||||
false,
|
false,
|
||||||
|
enable_rehashing,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6628,6 +6630,7 @@ impl AccountsDb {
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
false,
|
false,
|
||||||
|
true,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7053,6 +7056,7 @@ impl AccountsDb {
|
||||||
epoch_schedule: &EpochSchedule,
|
epoch_schedule: &EpochSchedule,
|
||||||
rent_collector: &RentCollector,
|
rent_collector: &RentCollector,
|
||||||
is_startup: bool,
|
is_startup: bool,
|
||||||
|
enable_rehashing: bool,
|
||||||
) -> (Hash, u64) {
|
) -> (Hash, u64) {
|
||||||
let check_hash = false;
|
let check_hash = false;
|
||||||
let (hash, total_lamports) = self
|
let (hash, total_lamports) = self
|
||||||
|
@ -7069,7 +7073,7 @@ impl AccountsDb {
|
||||||
rent_collector,
|
rent_collector,
|
||||||
store_detailed_debug_info_on_failure: false,
|
store_detailed_debug_info_on_failure: false,
|
||||||
full_snapshot: None,
|
full_snapshot: None,
|
||||||
enable_rehashing: true,
|
enable_rehashing,
|
||||||
},
|
},
|
||||||
expected_capitalization,
|
expected_capitalization,
|
||||||
)
|
)
|
||||||
|
@ -7320,6 +7324,7 @@ impl AccountsDb {
|
||||||
epoch_schedule: &EpochSchedule,
|
epoch_schedule: &EpochSchedule,
|
||||||
rent_collector: &RentCollector,
|
rent_collector: &RentCollector,
|
||||||
can_cached_slot_be_unflushed: bool,
|
can_cached_slot_be_unflushed: bool,
|
||||||
|
enable_rehashing: bool,
|
||||||
) -> Result<(), BankHashVerificationError> {
|
) -> Result<(), BankHashVerificationError> {
|
||||||
self.verify_bank_hash_and_lamports_new(
|
self.verify_bank_hash_and_lamports_new(
|
||||||
slot,
|
slot,
|
||||||
|
@ -7331,6 +7336,7 @@ impl AccountsDb {
|
||||||
can_cached_slot_be_unflushed,
|
can_cached_slot_be_unflushed,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
enable_rehashing,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7347,6 +7353,7 @@ impl AccountsDb {
|
||||||
can_cached_slot_be_unflushed: bool,
|
can_cached_slot_be_unflushed: bool,
|
||||||
ignore_mismatch: bool,
|
ignore_mismatch: bool,
|
||||||
store_hash_raw_data_for_debug: bool,
|
store_hash_raw_data_for_debug: bool,
|
||||||
|
enable_rehashing: bool,
|
||||||
) -> Result<(), BankHashVerificationError> {
|
) -> Result<(), BankHashVerificationError> {
|
||||||
use BankHashVerificationError::*;
|
use BankHashVerificationError::*;
|
||||||
|
|
||||||
|
@ -7368,7 +7375,7 @@ impl AccountsDb {
|
||||||
rent_collector,
|
rent_collector,
|
||||||
store_detailed_debug_info_on_failure: store_hash_raw_data_for_debug,
|
store_detailed_debug_info_on_failure: store_hash_raw_data_for_debug,
|
||||||
full_snapshot: None,
|
full_snapshot: None,
|
||||||
enable_rehashing: true,
|
enable_rehashing,
|
||||||
},
|
},
|
||||||
None,
|
None,
|
||||||
)?;
|
)?;
|
||||||
|
@ -11368,13 +11375,15 @@ pub mod tests {
|
||||||
latest_slot,
|
latest_slot,
|
||||||
&ancestors,
|
&ancestors,
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default()
|
&RentCollector::default(),
|
||||||
|
true,
|
||||||
),
|
),
|
||||||
accounts.update_accounts_hash(
|
accounts.update_accounts_hash(
|
||||||
latest_slot,
|
latest_slot,
|
||||||
&ancestors,
|
&ancestors,
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default()
|
&RentCollector::default(),
|
||||||
|
true,
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -11658,6 +11667,7 @@ pub mod tests {
|
||||||
&Ancestors::default(),
|
&Ancestors::default(),
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
|
true,
|
||||||
);
|
);
|
||||||
|
|
||||||
let accounts = f(accounts, current_slot);
|
let accounts = f(accounts, current_slot);
|
||||||
|
@ -11678,6 +11688,7 @@ pub mod tests {
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
false,
|
false,
|
||||||
|
true,
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
@ -12083,6 +12094,7 @@ pub mod tests {
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
false,
|
false,
|
||||||
|
true,
|
||||||
),
|
),
|
||||||
Ok(_)
|
Ok(_)
|
||||||
);
|
);
|
||||||
|
@ -12097,6 +12109,7 @@ pub mod tests {
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
false,
|
false,
|
||||||
|
true,
|
||||||
),
|
),
|
||||||
Err(MissingBankHash)
|
Err(MissingBankHash)
|
||||||
);
|
);
|
||||||
|
@ -12120,6 +12133,7 @@ pub mod tests {
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
false,
|
false,
|
||||||
|
true,
|
||||||
),
|
),
|
||||||
Err(MismatchedBankHash)
|
Err(MismatchedBankHash)
|
||||||
);
|
);
|
||||||
|
@ -12148,7 +12162,8 @@ pub mod tests {
|
||||||
true,
|
true,
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
false
|
false,
|
||||||
|
true,
|
||||||
),
|
),
|
||||||
Ok(_)
|
Ok(_)
|
||||||
);
|
);
|
||||||
|
@ -12170,13 +12185,14 @@ pub mod tests {
|
||||||
true,
|
true,
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
false
|
false,
|
||||||
|
true,
|
||||||
),
|
),
|
||||||
Ok(_)
|
Ok(_)
|
||||||
);
|
);
|
||||||
|
|
||||||
assert_matches!(
|
assert_matches!(
|
||||||
db.verify_bank_hash_and_lamports(some_slot, &ancestors, 10, true, &EpochSchedule::default(), &RentCollector::default(), false),
|
db.verify_bank_hash_and_lamports(some_slot, &ancestors, 10, true, &EpochSchedule::default(), &RentCollector::default(), false, true,),
|
||||||
Err(MismatchedTotalLamports(expected, actual)) if expected == 2 && actual == 10
|
Err(MismatchedTotalLamports(expected, actual)) if expected == 2 && actual == 10
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -12203,7 +12219,8 @@ pub mod tests {
|
||||||
true,
|
true,
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
false
|
false,
|
||||||
|
true,
|
||||||
),
|
),
|
||||||
Ok(_)
|
Ok(_)
|
||||||
);
|
);
|
||||||
|
@ -12247,7 +12264,8 @@ pub mod tests {
|
||||||
true,
|
true,
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
false
|
false,
|
||||||
|
true,
|
||||||
),
|
),
|
||||||
Err(MismatchedBankHash)
|
Err(MismatchedBankHash)
|
||||||
);
|
);
|
||||||
|
@ -12857,6 +12875,7 @@ pub mod tests {
|
||||||
&no_ancestors,
|
&no_ancestors,
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
|
true,
|
||||||
);
|
);
|
||||||
accounts
|
accounts
|
||||||
.verify_bank_hash_and_lamports(
|
.verify_bank_hash_and_lamports(
|
||||||
|
@ -12867,6 +12886,7 @@ pub mod tests {
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
false,
|
false,
|
||||||
|
true,
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
|
@ -12880,6 +12900,7 @@ pub mod tests {
|
||||||
&EpochSchedule::default(),
|
&EpochSchedule::default(),
|
||||||
&RentCollector::default(),
|
&RentCollector::default(),
|
||||||
false,
|
false,
|
||||||
|
true,
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
|
|
|
@ -7170,6 +7170,7 @@ impl Bank {
|
||||||
self.epoch_schedule(),
|
self.epoch_schedule(),
|
||||||
&self.rent_collector,
|
&self.rent_collector,
|
||||||
is_startup,
|
is_startup,
|
||||||
|
true,
|
||||||
);
|
);
|
||||||
if total_lamports != self.capitalization() {
|
if total_lamports != self.capitalization() {
|
||||||
datapoint_info!(
|
datapoint_info!(
|
||||||
|
@ -7196,6 +7197,7 @@ impl Bank {
|
||||||
self.epoch_schedule(),
|
self.epoch_schedule(),
|
||||||
&self.rent_collector,
|
&self.rent_collector,
|
||||||
is_startup,
|
is_startup,
|
||||||
|
true,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue