diff --git a/runtime/src/accounts_background_service.rs b/runtime/src/accounts_background_service.rs index bebbaafc3..fee526e99 100644 --- a/runtime/src/accounts_background_service.rs +++ b/runtime/src/accounts_background_service.rs @@ -307,25 +307,23 @@ impl SnapshotRequestHandler { shrink_time.stop(); let mut flush_accounts_cache_time = Measure::start("flush_accounts_cache_time"); - if accounts_db_caching_enabled { - // Forced cache flushing MUST flush all roots <= snapshot_root_bank.slot(). - // That's because `snapshot_root_bank.slot()` must be root at this point, - // and contains relevant updates because each bank has at least 1 account update due - // to sysvar maintenance. Otherwise, this would cause missing storages in the snapshot - snapshot_root_bank.force_flush_accounts_cache(); - // Ensure all roots <= `self.slot()` have been flushed. - // Note `max_flush_root` could be larger than self.slot() if there are - // `> MAX_CACHE_SLOT` cached and rooted slots which triggered earlier flushes. - assert!( - snapshot_root_bank.slot() - <= snapshot_root_bank - .rc - .accounts - .accounts_db - .accounts_cache - .fetch_max_flush_root() - ); - } + // Forced cache flushing MUST flush all roots <= snapshot_root_bank.slot(). + // That's because `snapshot_root_bank.slot()` must be root at this point, + // and contains relevant updates because each bank has at least 1 account update due + // to sysvar maintenance. Otherwise, this would cause missing storages in the snapshot + snapshot_root_bank.force_flush_accounts_cache(); + // Ensure all roots <= `self.slot()` have been flushed. + // Note `max_flush_root` could be larger than self.slot() if there are + // `> MAX_CACHE_SLOT` cached and rooted slots which triggered earlier flushes. + assert!( + snapshot_root_bank.slot() + <= snapshot_root_bank + .rc + .accounts + .accounts_db + .accounts_cache + .fetch_max_flush_root() + ); flush_accounts_cache_time.stop(); let accounts_hash_for_testing = previous_accounts_hash.map(|previous_accounts_hash| { @@ -620,13 +618,11 @@ impl AccountsBackgroundService { last_snapshot_end_time = Some(Instant::now()); } - if accounts_db_caching_enabled { - // Note that the flush will do an internal clean of the - // cache up to bank.slot(), so should be safe as long - // as any later snapshots that are taken are of - // slots >= bank.slot() - bank.flush_accounts_cache_if_needed(); - } + // Note that the flush will do an internal clean of the + // cache up to bank.slot(), so should be safe as long + // as any later snapshots that are taken are of + // slots >= bank.slot() + bank.flush_accounts_cache_if_needed(); if let Some(snapshot_block_height_result) = snapshot_block_height_option_result { @@ -655,13 +651,11 @@ impl AccountsBackgroundService { if bank.block_height() - last_cleaned_block_height > (CLEAN_INTERVAL_BLOCKS + thread_rng().gen_range(0, 10)) { - if accounts_db_caching_enabled { - // Note that the flush will do an internal clean of the - // cache up to bank.slot(), so should be safe as long - // as any later snapshots that are taken are of - // slots >= bank.slot() - bank.force_flush_accounts_cache(); - } + // Note that the flush will do an internal clean of the + // cache up to bank.slot(), so should be safe as long + // as any later snapshots that are taken are of + // slots >= bank.slot() + bank.force_flush_accounts_cache(); bank.clean_accounts(last_full_snapshot_slot); last_cleaned_block_height = bank.block_height(); }