* Add a type_select param for purge_old_bank_snapshots
* Use flags to make the function calls more readable
* Remove the extra purge calls
* replace select_type with filter_by_type
* Add test
* Use matches
* Fix CI test on reference
* use match and call do_purge once
* Let bank_snapshots_dir be TempDir
* remove account_paths in the test
* replace bank with _bank
* Remove create_snapshot_dirs_for_tests, will take the lastest from master
* Fix merge errors
* Create fn create_snapshot_dirs_for_tests to refactor the common test snapshot dirs creation code
* Fix trailing space
* Fix missed set_accounts_delta_hash
* Let bank_snapshots_dir be TempDir
* Same change in test_bank_from_latest_snapshot_dir
* Use borrow to avoid releasing the tmp dir
* One more to change to reference
* Add find-program-address solana cli command
* clippy
* clippy after rebase
* rename find-program-address -> find-program-derived-address
* rename is_complex_seed -> is_structured_seed
* add validator is_structured_seed to clap-v3-utils
* return CliError::BadParameter for PROGRAM_ID arg in case of incorrect parsing
* improve help for SEEDS arg
* extend About for create-address-with-seed command
* fix SEED help
* Let AHV hold and update last_snapshot_storages
* Clean up comment
* Move cloning after enqueued_time
* Minor positon change
* Remove type last_snapshot_storages annotation
* Makes members of SyscallContext public.
Removes check_aligned and check_size from SyscallContext.
* Replaces InvokeContext::set_syscall_context() in tests with mock_create_vm!().
* Passes SyscallContext directly to InvokeContext::set_syscall_context().
* Merges TraceLogStackFrame into SyscallContext.
* Removes the create_vm!() macro.
* Moves BpfAllocator from bpf_loader into program_runtime.
* Frees BpfAllocator from Rc<RefCell<>>.
* Removes unused code from BpfAllocator.
* Consume CUs for heap before doing the allocation.
* Exposes syscalls in rbpf-cli.
* Adds debugging_features parameter to load_program_from_bytes() and load_program_from_account().
* Removes test_bpf_loader_non_terminating_program() as that is already tested in RBPF.
* Moves stack and heap allocation back onto the program runtime stack.
* bank_from_latest_snapshot_dir
* Clear the account paths before constructing a bank from a snapshot dir
* Clear the account paths before constructing a bank from a snapshot dir (#31170)
* use the highest POST snapshot dir to construct a bank
* Use POST to fix test_bank_from_latest_snapshot_dir
* Revert "Clear the account paths before constructing a bank from a snapshot dir"
This reverts commit 272bb9fee14a09d7fde3cddb3d439f2cdadb5493.
* Remove the set_accounts_hash_for_tests call
* Revert "Revert "Clear the account paths before constructing a bank from a snapshot dir""
This reverts commit 2e345d8b98b8fb3b07f00ce050132c678acf88d4.
blockstore_processor::process_blockstore_from_root() starts with a
BankForks that contains exactly one Bank. The function grabs an Arc of
this initial Bank, and does some logging and initial setup before
processing more slots in load_frozen_forks().
process_blockstore_from_root() holds that Arc until it returns. This
increases the ref count and prevents the initial Bank from getting
cleaned up in a timely manner if load_frozen_forks() prunes that initial
Bank from BankForks.
This change extracts the needed information from the Arc<Bank>, and
drops the Arc so that the Bank can be dropped in a timely manner.