From 501c344bf970a675d7719beb1ed8a7c6d5a10ac0 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sun, 8 Mar 2026 23:28:15 -0700 Subject: [PATCH] fix: clean up .rdb index files in Rust volume operations Add .rdb to remove_volume_files and commit_compact cleanup lists, matching the Go-side changes for cross-compatible deployments. --- seaweed-volume/src/storage/volume.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/seaweed-volume/src/storage/volume.rs b/seaweed-volume/src/storage/volume.rs index a5ad16660..c1c25923b 100644 --- a/seaweed-volume/src/storage/volume.rs +++ b/seaweed-volume/src/storage/volume.rs @@ -1827,9 +1827,11 @@ impl Volume { fs::rename(&cpd_path, &dat_path)?; fs::rename(&cpx_path, &idx_path)?; - // Remove any leveldb files + // Remove any leveldb/redb index files (rebuilt from .idx on reload) let ldb_path = self.file_name(".ldb"); let _ = fs::remove_dir_all(&ldb_path); + let rdb_path = self.file_name(".rdb"); + let _ = fs::remove_file(&rdb_path); // Reload self.load(true, false, 0, self.version())?; @@ -2069,9 +2071,10 @@ fn get_append_at_ns(last: u64) -> u64 { /// Remove all files associated with a volume. pub(crate) fn remove_volume_files(base: &str) { - for ext in &[".dat", ".idx", ".vif", ".sdx", ".cpd", ".cpx", ".note"] { + for ext in &[".dat", ".idx", ".vif", ".sdx", ".cpd", ".cpx", ".note", ".rdb"] { let _ = fs::remove_file(format!("{}{}", base, ext)); } + // leveldb uses a directory let _ = fs::remove_dir_all(format!("{}.ldb", base)); }