[pve-devel] [PATCH rrd-migration-tool v2 1/2] collect rrd files: only skip '.old' extension to better handle storage IDs containing a dot

Fiona Ebner f.ebner at proxmox.com
Mon Aug 4 14:55:45 CEST 2025


Storage IDs may contain a dot, which would make the tool ignore data
for them. This does not fix the issue completely, the final corner
case with storages being called called 'something.old' remains.

A warning for storages called '.old' is added to the pve8to9 checker
script. If enough people really run into this issue with such
storages, the migration script will be improved further after the
release of PVE 9. For now, use a straight-forward stop-gap measure to
avoid the fallout from not handling any storage ID with a dot.

Signed-off-by: Fiona Ebner <f.ebner at proxmox.com>
---

Changes in v2:
* Different approach as a less complicated stop-gap measure.

 src/main.rs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main.rs b/src/main.rs
index 9afd48b..e18551c 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -331,7 +331,7 @@ fn collect_rrd_files(location: &PathBuf) -> Result<Vec<(CString, OsString)>> {
     contents
         .filter(|f| f.is_ok())
         .map(|f| f.unwrap().path())
-        .filter(|f| f.is_file() && f.extension().is_none())
+        .filter(|f| f.is_file() && f.extension().is_none_or(|ext| ext != "old"))
         .for_each(|file| {
             let path = CString::new(file.as_path().as_os_str().as_bytes())
                 .expect("Could not convert path to CString.");
-- 
2.47.2





More information about the pve-devel mailing list