mirror of
https://github.com/rustfs/rustfs.git
synced 2026-09-06 12:09:12 +00:00
4567b6b5e4
rustfs/rustfs#7225 and rustfs/backlog#2309 refactored the same ten per-config arms of ExportBucketMetadata concurrently. Keep #7225's `exported_bucket_config` helper, `export_internal_error`, the `?diagnostic=true` mode with its reserved `_diagnostic/` namespace, manifest and import preflight, and re-apply #2309's semantics on top. The helper now returns `ExportConfigError`, which separates a configuration that is stored but undecodable from a failure of this build's own serialization. An ordinary export records the former in `<bucket>/rustfs-unreadable-configs.json` and continues, so one bucket cannot abort a whole-cluster export, and fails closed on the latter. Diagnostic mode is unchanged: it reports both through the archive-wide manifest with a fixed code and no parser detail. The #7225 assertion that a complete export fails closed on unreadable targets is replaced by assertions of the new behaviour; every other assertion on both sides is kept. The s3_error! baseline is remeasured at 1589 for the merged tree.