Ver Fonte

v1.18: Purges all bank snapshots after fastboot (backport of #35350) (#35379)

Purges all bank snapshots after fastboot (#35350)

(cherry picked from commit bdc5cceb183c99e3d3c471af3ece2a2f7f7978d5)

Co-authored-by: Brooks <brooks@solana.com>
mergify[bot] há 1 ano atrás
pai
commit
42c512547b
1 ficheiros alterados com 9 adições e 0 exclusões
  1. 9 0
      ledger/src/bank_forks_utils.rs

+ 9 - 0
ledger/src/bank_forks_utils.rs

@@ -342,6 +342,15 @@ fn bank_forks_from_snapshot(
             source: err,
             path: bank_snapshot.snapshot_path(),
         })?;
+
+        // If the node crashes before taking the next bank snapshot, the next startup will attempt
+        // to load from the same bank snapshot again.  And if `shrink` has run, the account storage
+        // files that are hard linked in bank snapshot will be *different* than what the bank
+        // snapshot expects.  This would cause the node to crash again.  To prevent that, purge all
+        // the bank snapshots here.  In the above scenario, this will cause the node to load from a
+        // snapshot archive next time, which is safe.
+        snapshot_utils::purge_old_bank_snapshots(&snapshot_config.bank_snapshots_dir, 0, None);
+
         bank
     };