shrink stops using HandleReclaims (#26594)
This commit is contained in:
parent
83c614da3c
commit
be8813e588
|
@ -7754,8 +7754,7 @@ impl AccountsDb {
|
|||
let mut update_index_time = Measure::start("update_index");
|
||||
|
||||
let reclaim = if matches!(reclaim, StoreReclaims::Ignore) {
|
||||
// would like this to be: UpsertReclaim::IgnoreReclaims
|
||||
UpsertReclaim::PopulateReclaims
|
||||
UpsertReclaim::IgnoreReclaims
|
||||
} else if self.caching_enabled && is_cached_store {
|
||||
UpsertReclaim::PreviousSlotEntryWasCached
|
||||
} else {
|
||||
|
|
|
@ -2758,6 +2758,101 @@ pub mod tests {
|
|||
);
|
||||
assert_eq!(num, 0);
|
||||
}
|
||||
#[test]
|
||||
fn test_insert_ignore_reclaims() {
|
||||
{
|
||||
// non-cached
|
||||
let key = Keypair::new();
|
||||
let index = AccountsIndex::<u64>::default_for_tests();
|
||||
let mut reclaims = Vec::new();
|
||||
let slot = 0;
|
||||
let value = 1;
|
||||
assert!(!value.is_cached());
|
||||
index.upsert(
|
||||
slot,
|
||||
slot,
|
||||
&key.pubkey(),
|
||||
&AccountSharedData::default(),
|
||||
&AccountSecondaryIndexes::default(),
|
||||
value,
|
||||
&mut reclaims,
|
||||
UpsertReclaim::PopulateReclaims,
|
||||
);
|
||||
assert!(reclaims.is_empty());
|
||||
index.upsert(
|
||||
slot,
|
||||
slot,
|
||||
&key.pubkey(),
|
||||
&AccountSharedData::default(),
|
||||
&AccountSecondaryIndexes::default(),
|
||||
value,
|
||||
&mut reclaims,
|
||||
UpsertReclaim::PopulateReclaims,
|
||||
);
|
||||
// reclaimed
|
||||
assert!(!reclaims.is_empty());
|
||||
reclaims.clear();
|
||||
index.upsert(
|
||||
slot,
|
||||
slot,
|
||||
&key.pubkey(),
|
||||
&AccountSharedData::default(),
|
||||
&AccountSecondaryIndexes::default(),
|
||||
value,
|
||||
&mut reclaims,
|
||||
// since IgnoreReclaims, we should expect reclaims to be empty
|
||||
UpsertReclaim::IgnoreReclaims,
|
||||
);
|
||||
// reclaims is ignored
|
||||
assert!(reclaims.is_empty());
|
||||
}
|
||||
{
|
||||
// cached
|
||||
let key = Keypair::new();
|
||||
let index = AccountsIndex::<AccountInfoTest>::default_for_tests();
|
||||
let mut reclaims = Vec::new();
|
||||
let slot = 0;
|
||||
let value = 1.0;
|
||||
assert!(value.is_cached());
|
||||
index.upsert(
|
||||
slot,
|
||||
slot,
|
||||
&key.pubkey(),
|
||||
&AccountSharedData::default(),
|
||||
&AccountSecondaryIndexes::default(),
|
||||
value,
|
||||
&mut reclaims,
|
||||
UpsertReclaim::PopulateReclaims,
|
||||
);
|
||||
assert!(reclaims.is_empty());
|
||||
index.upsert(
|
||||
slot,
|
||||
slot,
|
||||
&key.pubkey(),
|
||||
&AccountSharedData::default(),
|
||||
&AccountSecondaryIndexes::default(),
|
||||
value,
|
||||
&mut reclaims,
|
||||
UpsertReclaim::PopulateReclaims,
|
||||
);
|
||||
// reclaimed
|
||||
assert!(!reclaims.is_empty());
|
||||
reclaims.clear();
|
||||
index.upsert(
|
||||
slot,
|
||||
slot,
|
||||
&key.pubkey(),
|
||||
&AccountSharedData::default(),
|
||||
&AccountSecondaryIndexes::default(),
|
||||
value,
|
||||
&mut reclaims,
|
||||
// since IgnoreReclaims, we should expect reclaims to be empty
|
||||
UpsertReclaim::IgnoreReclaims,
|
||||
);
|
||||
// reclaims is ignored
|
||||
assert!(reclaims.is_empty());
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_insert_with_ancestors() {
|
||||
|
|
Loading…
Reference in New Issue