Skip to content
This repository was archived by the owner on Jan 22, 2025. It is now read-only.

Commit 089a4c8

Browse files
pgarg66mergify[bot]
authored andcommitted
Set a global fork graph in program cache (#33776)
* Set a global fork graph in program cache * fix deadlock * review feedback (cherry picked from commit 59cb3b5)
1 parent 9021d22 commit 089a4c8

File tree

6 files changed

+145
-83
lines changed

6 files changed

+145
-83
lines changed

core/src/replay_stage.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3869,6 +3869,7 @@ impl ReplayStage {
38693869
epoch_slots_frozen_slots: &mut EpochSlotsFrozenSlots,
38703870
drop_bank_sender: &Sender<Vec<Arc<Bank>>>,
38713871
) {
3872+
bank_forks.read().unwrap().prune_program_cache(new_root);
38723873
let removed_banks = bank_forks.write().unwrap().set_root(
38733874
new_root,
38743875
accounts_background_request_sender,

ledger/src/bank_forks_utils.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,15 @@ pub fn load_bank_forks(
189189
(bank_forks, None)
190190
};
191191

192+
bank_forks
193+
.read()
194+
.expect("Failed to read lock the bank forks")
195+
.root_bank()
196+
.loaded_programs_cache
197+
.write()
198+
.expect("Failed to write lock the program cache")
199+
.set_fork_graph(bank_forks.clone());
200+
192201
let mut leader_schedule_cache =
193202
LeaderScheduleCache::new_from_bank(&bank_forks.read().unwrap().root_bank());
194203
if process_options.full_leader_cache {

ledger/src/blockstore_processor.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1555,6 +1555,11 @@ fn load_frozen_forks(
15551555
root = new_root_bank.slot();
15561556

15571557
leader_schedule_cache.set_root(new_root_bank);
1558+
new_root_bank
1559+
.loaded_programs_cache
1560+
.write()
1561+
.unwrap()
1562+
.prune(root, new_root_bank.epoch());
15581563
let _ = bank_forks.write().unwrap().set_root(
15591564
root,
15601565
accounts_background_request_sender,

0 commit comments

Comments
 (0)