fix(ecstore): handle metadata-less bucket residue (#6591)

* fix(ecstore): handle metadata-less bucket residue

Diagnose metadata-less on-disk residue before non-force DeleteBucket reaches physical deletion, and keep scanner-discovered metadata-missing objects on a non-destructive heal path.

Add explicit heal --remove cleanup for unversioned metadata-less data directories, using the existing data-dir delete primitive and fail-closed shape checks so pre-commit or unknown residue is preserved.

Co-Authored-By: heihutu <heihutu@gmail.com>

* fix(connect): adapt offline array validator

Wrap the filesystem summary validator in a closure so Option::is_some_and can pass the concrete array reference accepted by serde_json::Value::as_array.

Co-Authored-By: heihutu <heihutu@gmail.com>

* fix(connect): remove redundant offline test clones

Move the temporary path into the swap closure after deriving the output path, keeping clippy's redundant-clone lint clean for offline bundle tests.

Co-Authored-By: heihutu <heihutu@gmail.com>

---------

Co-authored-by: heihutu <heihutu@gmail.com>
This commit is contained in:
houseme
2026-08-26 09:17:19 +08:00
committed by GitHub
parent 2bd83a5276
commit 0f987714a1
7 changed files with 595 additions and 21 deletions
+1 -1
View File
@@ -1648,7 +1648,7 @@ impl FolderScanner {
bucket.clone(),
Some(object.clone()),
None,
build_object_heal_request(bucket, object, None, self.scan_mode, HealChannelPriority::High),
build_non_destructive_object_heal_request(bucket, object, self.scan_mode, HealChannelPriority::High),
)
.await?;
}