Skip to content

Fix deterministic SeaweedFS migration verification - #8

Merged
eugene-panin merged 1 commit into
mainfrom
agent/fix-seaweedfs-migration-verification
Jul 31, 2026
Merged

eugene-panin merged 1 commit into
mainfrom
agent/fix-seaweedfs-migration-verification

Conversation

@eugene-panin

Copy link
Copy Markdown
Contributor

Что изменилось

  • проверка миграции MinIO → SeaweedFS больше не зависит от порядка строк в mc diff;
  • после mc mirror обе стороны получают SHA-256 полного отсортированного inventory размер + ключ;
  • несовпадение ключа, размера или лишний объект на target завершает миграцию с кодом 1;
  • README описывает новый контракт проверки и сохранённый rollback через исходный MinIO volume.

Почему

На реальном наборе из 158 567 объектов mc diff выдал одинаковые объекты как удалённые и добавленные из-за разного порядка листинга, хотя отсортированные inventories совпадали. Копирование завершилось корректно, но migration container ложно завершился с ошибкой.

Проверка

  • python3 -m unittest discover -s tests -v — 3/3;
  • scripts/check-public-boundary.sh;
  • docker compose ... config --quiet;
  • изолированная MinIO → SeaweedFS миграция с обычными, вложенными, содержащими пробел и zero-byte объектами — success;
  • target-only объект — ожидаемый exit code 1 и разные digest;
  • после удаления target-only объекта повторная проверка — success;
  • локальный Airflow, PostgreSQL и SeaweedFS остались healthy.

Границы и rollback

Проверка подтверждает полный набор ключей и размеров; она не вычисляет content hash каждого объекта. Исходный MinIO volume не изменяется и не удаляется. Rollback: revert этого коммита или запуск предыдущего Workbench release с сохранённым minio-data volume. Production deployment в этот PR не входит.

@eugene-panin
eugene-panin marked this pull request as ready for review July 31, 2026 11:52
@eugene-panin
eugene-panin merged commit 802c668 into main Jul 31, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant