Добавить startup recovery для resync цепочек

This commit is contained in:
AidarKC
2026-06-26 15:51:52 +04:00
parent be4f76834a
commit c048347f2e
8 changed files with 256 additions and 19 deletions
@@ -0,0 +1,17 @@
# Startup recovery для marker-file resync цепочек
- Краткое описание:
- При старте сервер сканирует `data/*.resync_pending` и добивает незавершённые full-resync цепочки перед тем, как перейти к обычной работе.
- Пока marker-file не убран, обычный `AddBlock` в эту цепочку возвращает `chain_resync_in_progress`.
- Что именно проверять:
- Сервер не начинает обычный `periodic sync`, пока не отработают все marker-file recovery.
- Если marker-файлы есть, startup-blocking реально останавливает нормальный старт до их обработки.
- Если восстановление одной цепочки падает, marker остаётся на диске и сервер не переходит в обычный режим.
- После успешного восстановления marker удаляется.
- Ожидаемый результат:
- После внезапной перезагрузки сервер не продолжает обычную работу с поломанной цепочкой, а сначала добивает незавершённый resync.
- Статус:
- `pending`