2d9d290961
Phase 3: Crash Recovery Rehearsal (parallel with Phase 1) Added: - tests/PHASE_3_EXECUTION_LOG.md: Real-time execution tracking * 4 crash recovery scenarios logged * Pass/fail criteria defined * Evidence collection planned - tests/PHASE_3_TEST_PROCEDURES.md: Detailed test procedures * Scenario 1: Outbox message loss recovery * Scenario 2: PostgreSQL connection drop recovery * Scenario 3: Hangfire distributed lock timeout (DEBT-015) * Scenario 4: Inbox message processing failure * Step-by-step procedures for each * Evidence capture and verification criteria Execution Strategy (AGENTS.md v16.0): - Parallel execution: 4 scenarios simultaneously - Estimated duration: 15-20 minutes - Prerequisites verified: Host running, SSH tunnel open, Job 893 active - Target: Complete testing before Phase 1 finishes (50-90 days) Current Status: ✅ Phase 1: Job 893 running (22:04 KST) ✅ Phase 1 monitoring: Automated (5-min checks) ✅ Phase 3: READY TO EXECUTE (now) ⏳ Phase 2: Queued (Phase 1 results needed) ⏳ Phase 4: Queued (Phase 2-3 results needed) Next: Execute Phase 3 scenarios (START NOW OR CONFIRM) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
4.6 KiB
4.6 KiB
Phase 3: Crash Recovery Test Execution Log
Start Date: 2026-08-03 22:35 KST
Status: 🚀 IN PROGRESS
Parallel with: Phase 1 (Job 893 running)
🧪 Test Scenario 1: Outbox Message Loss
Setup
- Objective: Verify ShadowRunCompletedConsumer recovery from lost outbox messages
- Method: Simulate message drop in Outbox table
- Environment: Host running, Job 893 active
Execution
Step 1: Trigger message loss scenario
□ Identify current outbox message
□ Simulate deletion/loss
□ Verify detection
Status: ⏳ QUEUED
Step 2: Monitor recovery
□ Watch ShadowRunCompletedConsumer logs
□ Check retry mechanism activation
□ Verify message re-processing
Status: ⏳ QUEUED
Step 3: Validation
□ No state corruption observed
□ Message eventually processed
□ Logs contain recovery trace
Status: ⏳ QUEUED
Result
Status: ⏳ PENDING
Evidence: [logs will be captured]
Outcome: [ ] PASS [ ] FAIL
🧪 Test Scenario 2: PostgreSQL Connection Drop
Setup
- Objective: Verify graceful recovery from database disconnection
- Method: Simulate connection timeout/reset
- Environment: SSH tunnel maintained
Execution
Step 1: Trigger connection drop
□ Monitor connection pool
□ Simulate network disconnect
□ Trigger reconnection
Status: ⏳ QUEUED
Step 2: Monitor recovery
□ Watch connection retry logic
□ Check reconnection attempt
□ Verify query resumption
Status: ⏳ QUEUED
Step 3: Validation
□ No data loss
□ No duplicate processing
□ Transaction consistency maintained
Status: ⏳ QUEUED
Result
Status: ⏳ PENDING
Evidence: [logs will be captured]
Outcome: [ ] PASS [ ] FAIL
🧪 Test Scenario 3: Hangfire Lock Timeout
Setup
- Objective: Verify lock timeout recovery (DEBT-015)
- Method: Simulate distributed lock contention
- Environment: Multiple worker simulation
Execution
Step 1: Trigger lock timeout
□ Create lock contention
□ Trigger timeout condition
□ Monitor fallback activation
Status: ⏳ QUEUED
Step 2: Monitor recovery
□ Verify DEBT-015 fallback mechanism
□ Check job continues without blocking
□ Verify other workers unaffected
Status: ⏳ QUEUED
Step 3: Validation
□ No deadlock observed
□ Graceful degradation
□ Recovery automatic
Status: ⏳ QUEUED
Result
Status: ⏳ PENDING
Evidence: [logs will be captured]
Outcome: [ ] PASS [ ] FAIL
🧪 Test Scenario 4: Inbox Message Processing Failure
Setup
- Objective: Verify consumer resilience to processing failures
- Method: Simulate deserialization/processing error
- Environment: ApprovalQueueConsumer or AuditLogConsumer
Execution
Step 1: Trigger processing failure
□ Inject malformed message
□ Trigger deserialization error
□ Monitor error handling
Status: ⏳ QUEUED
Step 2: Monitor recovery
□ Verify error caught by consumer
□ Check DLQ (Dead Letter Queue) movement
□ Monitor alert generation
Status: ⏳ QUEUED
Step 3: Validation
□ No data loss
□ Failure logged with context
□ Main pipeline unaffected
Status: ⏳ QUEUED
Result
Status: ⏳ PENDING
Evidence: [logs will be captured]
Outcome: [ ] PASS [ ] FAIL
📊 Test Summary
| Scenario | Status | Duration | Notes |
|---|---|---|---|
| Outbox Message Loss | ⏳ QUEUED | TBD | Recovery detection test |
| PostgreSQL Drop | ⏳ QUEUED | TBD | Connection retry test |
| Hangfire Lock Timeout | ⏳ QUEUED | TBD | DEBT-015 fallback test |
| Inbox Failure | ⏳ QUEUED | TBD | Consumer resilience test |
Overall Status: 🚀 EXECUTION STARTING
🎯 Next Steps
- ✅ Environment verified (2026-08-03 22:35 KST)
- ⏳ Scenario 1: Outbox Message Loss (START NOW)
- ⏳ Scenario 2: PostgreSQL Drop (PARALLEL)
- ⏳ Scenario 3: Hangfire Lock Timeout (PARALLEL)
- ⏳ Scenario 4: Inbox Failure (PARALLEL)
- ⏳ Evidence compilation (AFTER ALL SCENARIOS)
📋 Parallel Execution (A + B)
PHASE 1 (Background):
└─ Job 893: Running (50-90 days)
└─ Monitor every 5 min (automatic)
PHASE 3 (Active Now):
├─ Scenario 1: Outbox Message Loss
├─ Scenario 2: PostgreSQL Drop
├─ Scenario 3: Hangfire Lock Timeout
└─ Scenario 4: Inbox Failure
└─ 4 tests running in parallel
└─ Duration: 1-2 hours estimated
└─ Evidence captured per scenario
Status: 🚀 READY TO BEGIN SCENARIO TESTING