Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Testing and Validation

Операторский baseline для crash/recovery validation и связанных проверок. Каноничный источник: этот runbook в angarabook/src/operations/.

Goal

Проверять, что recovery-путь:

  • не даёт silent corruption;
  • сохраняет контракт durability mode;
  • остаётся идемпотентным при повторных рестартах.

Core invariants

  • No silent corruption: либо корректный старт, либо явный fail с диагностикой.
  • Idempotent recovery: повторный restart не меняет oracle outcome.
  • Visibility safety: uncommitted изменения не становятся видимыми после recovery.
  • Durability semantics:
  • strict: ack-commit обязан пережить crash;
  • group_commit: ack semantics строго соответствует заявленному контракту;
  • relaxed: возможна потеря части ack-commit в рамках контракта, но без нарушения целостности.

Minimal runner

Pinned runner:

tools/storage_poc/crash_loop.sh

Ключевые профили:

  • --nightly
  • --dirty-pressure
  • --double-restart
  • --durability strict|group_commit|relaxed
  • --corrupt-txlog / --corrupt-storage (fail-fast проверки)

Minimum scenarios

  1. SIGKILL during commit storm (tail handling).
  2. SIGKILL around checkpoint markers.
  3. Double restart idempotence.

Required artifacts

  • txlog_scan_*.json
  • txlog_replay_*/*.json
  • recovery_summary.json (+ restart2 summary для idempotence)
  • machine-readable pass/fail summary для CI/nightly.

Exit criteria (operator gate)

  • Все обязательные сценарии проходят.
  • Артефакты валидны и доступны для triage.
  • Нет нарушений инвариантов visibility/durability.
  • src/operations/backup-restore.md
  • src/operations/disaster-recovery.md
  • src/operations/diagnostics-bundle.md

Дальше