Ping Qiu
da1b81d1c9
feat: CP8-3-1 durability modes + testrunner platform + 21 adversarial tests
Durability mode implementation (sync_all, sync_quorum, best_effort):
- DurabilityMode type with superblock persistence, parse/validate/string
- MakeDistributedSync mode-aware barrier enforcement in dist_group_commit
- blockerr sentinel package (ErrDurabilityBarrierFailed, ErrDurabilityQuorumLost)
- gRPC create path: mode validation, idempotent create consistency, partial cleanup
- F1: strict mode rejects partial replica provisioning with cleanup
- F3: empty heartbeat does not overwrite persisted strict mode
- F4: SCSI error mapping uses errors.Is sentinels (not string matching)
- Proto/wire/blockapi/CLI/UI plumbing for durability_mode field
- Observability dashboard: cluster health cards + per-volume columns
Testrunner platform (YAML-driven integration test framework):
- Engine, parser, registry, reporter (JUnit XML + HTML), metrics scraping
- 52 registered actions: block, iSCSI, I/O, fault injection, assertions
- Baseline regression framework with 7 hard-fail conditions
- 15 YAML scenarios (smoke, crash, HA, fault, consistency, snapshot)
- 49 unit tests for testrunner internals
QA adversarial suite (21 tests, all PASS):
- Idempotent create mode/RF mismatch detection
- Heartbeat mode downgrade prevention (F3)
- sync_all/sync_quorum partial replica enforcement (F1)
- Concurrent create race safety
- Failover/expand mode preservation
- Cleanup resilience when delete fails
- Master restart auto-register mode handling
- Superblock roundtrip all 3 modes
- Validate edge cases (mode×RF matrix)
- RequiredReplicas quorum math verification
- Sentinel error categorization
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 01:06:51 -08:00
..
2026-03-06 01:06:51 -08:00
2026-01-07 13:06:08 -08:00
2026-01-07 13:06:08 -08:00
2026-01-07 13:06:08 -08:00
2026-01-07 13:06:08 -08:00
2026-01-07 13:06:08 -08:00
2026-01-07 13:06:08 -08:00
2026-01-07 13:06:08 -08:00
2026-02-09 17:52:43 -08:00
2026-02-11 13:34:20 -08:00
2025-11-09 19:58:38 -08:00
2026-01-07 13:06:08 -08:00
2025-12-10 22:42:52 -08:00
2026-01-15 12:43:44 -08:00
2025-12-19 13:29:12 -08:00
2026-02-04 17:08:31 -08:00
2025-12-28 19:30:42 -08:00
2026-02-09 01:37:56 -08:00
2026-02-09 14:23:11 -08:00
2026-01-04 00:38:53 -08:00
2026-01-06 00:09:52 -08:00
2026-02-11 11:04:08 -08:00
2025-12-28 19:30:42 -08:00
2025-10-24 20:21:35 -07:00
2025-10-24 20:21:35 -07:00
2025-11-09 19:58:38 -08:00
2025-10-24 20:21:35 -07:00
2026-01-07 13:06:08 -08:00
2025-10-24 20:21:35 -07:00
2026-01-14 21:37:50 -08:00
2025-10-24 20:21:35 -07:00
2026-01-14 21:37:50 -08:00
2026-02-06 20:51:47 -08:00
2026-01-14 21:37:50 -08:00
2026-01-29 14:42:10 -08:00
2025-10-24 20:21:35 -07:00
2025-10-24 20:21:35 -07:00
2025-10-24 20:21:35 -07:00
2025-10-24 20:21:35 -07:00
2025-10-24 20:21:35 -07:00
2026-01-29 14:42:10 -08:00
2026-01-07 13:06:08 -08:00
2025-10-17 22:11:50 -07:00
2026-01-07 13:06:08 -08:00
2025-10-13 18:05:17 -07:00
2026-01-07 13:06:08 -08:00
2026-01-07 13:06:08 -08:00
2026-01-07 13:06:08 -08:00
2025-09-09 01:01:03 -07:00
2025-12-16 12:41:04 -08:00
2025-12-28 11:39:06 -08:00
2026-01-15 00:52:57 -08:00
2026-01-14 14:45:52 -08:00
2026-01-07 13:06:08 -08:00
2026-01-14 14:45:52 -08:00
2026-02-05 12:57:27 -08:00
2026-02-05 12:57:27 -08:00
2026-01-07 13:06:08 -08:00
2026-01-27 10:50:16 -08:00
2025-12-13 13:41:25 -08:00
2025-12-12 18:06:13 -08:00
2026-01-27 10:50:16 -08:00
2025-12-12 18:06:13 -08:00
2025-12-12 12:51:48 -08:00
2025-07-16 23:39:27 -07:00
2026-02-26 11:56:10 -08:00
2022-09-16 02:43:49 -07:00
2025-03-31 21:42:54 -07:00
2025-07-16 23:39:27 -07:00
2026-02-13 20:28:41 -08:00
2026-01-25 13:39:30 -08:00
2026-01-30 22:57:05 -08:00
2026-01-30 22:57:05 -08:00
2026-01-30 22:57:05 -08:00
2026-01-30 22:57:05 -08:00
2025-08-23 11:04:24 -07:00
2026-02-19 13:30:59 -08:00
2025-12-02 10:14:24 -08:00
2025-12-03 11:33:35 -08:00
2026-01-16 12:31:48 -08:00
2026-02-24 20:07:26 -08:00
2025-11-09 19:58:38 -08:00
2026-01-07 13:06:08 -08:00
2024-09-26 08:34:13 -07:00
2026-01-16 12:31:48 -08:00
2026-02-22 22:07:15 -08:00
2026-01-07 13:06:08 -08:00
2026-01-06 00:09:52 -08:00
2026-01-29 14:16:42 -08:00
2024-09-29 10:38:22 -07:00
2026-02-25 10:25:23 -08:00
2026-02-25 10:12:09 -08:00
2026-01-07 13:06:08 -08:00
2026-02-24 20:07:26 -08:00
2026-01-07 13:06:08 -08:00
2025-12-16 23:16:07 -08:00
2026-02-13 15:47:29 -08:00
2023-03-13 10:00:27 -07:00
2026-01-15 12:43:44 -08:00
2025-11-09 19:58:38 -08:00
2026-02-11 11:02:37 -08:00
2025-08-23 11:04:24 -07:00
2026-01-16 12:31:48 -08:00
2025-08-23 11:04:24 -07:00
2026-01-07 13:06:08 -08:00
2024-09-29 10:38:22 -07:00
2024-09-29 10:38:22 -07:00
2026-02-22 22:07:15 -08:00
2024-09-29 10:38:22 -07:00
2026-02-19 13:30:59 -08:00
2025-12-15 11:18:45 -08:00
2026-01-16 12:31:48 -08:00
2025-12-19 13:29:12 -08:00
2025-12-28 19:30:42 -08:00
2026-01-06 00:09:52 -08:00
2026-01-30 22:57:05 -08:00
2026-01-29 19:06:17 -08:00
2026-01-29 19:06:17 -08:00
2025-12-15 11:18:45 -08:00
2025-12-15 11:18:45 -08:00
2025-12-15 11:18:45 -08:00