优化(08-28-production-arm-backup-transfer-incident): 收窄生产哈希读取
这个提交包含在:
@@ -95,6 +95,32 @@ assert_line "$TEST_ROOT/production-valid.out" "transfer_failure_category=partial
|
||||
assert_line "$TEST_ROOT/production-valid.out" "transfer_duration_seconds=NOT_AVAILABLE"
|
||||
pass "生产存在完整本地恢复点时识别为单点风险并保留未测时长"
|
||||
|
||||
PRODUCTION_MULTIPLE="$TEST_ROOT/production-multiple"
|
||||
make_production_layout "$PRODUCTION_MULTIPLE"
|
||||
make_batch "$PRODUCTION_MULTIPLE/backups/hyb-oa-backup-auto-20260827T000000Z" "auto-20260827T000000Z"
|
||||
make_batch "$PRODUCTION_MULTIPLE/backups/hyb-oa-backup-auto-20260828T000000Z" "auto-20260828T000000Z"
|
||||
printf 'X' | dd of="$PRODUCTION_MULTIPLE/backups/hyb-oa-backup-auto-20260827T000000Z/database.dump" bs=1 seek=0 conv=notrunc status=none
|
||||
run_production "$PRODUCTION_MULTIPLE" "$TEST_ROOT/production-multiple.out"
|
||||
assert_line "$TEST_ROOT/production-multiple.out" "complete_local_recovery_point=yes"
|
||||
assert_line "$TEST_ROOT/production-multiple.out" "fully_verified_local_batch_count=1"
|
||||
assert_line "$TEST_ROOT/production-multiple.out" "metadata_complete_local_batch_count=2"
|
||||
assert_line "$TEST_ROOT/production-multiple.out" "older_metadata_batch_hash_status=NOT_RUN"
|
||||
assert_line "$TEST_ROOT/production-multiple.out" "latest_local_candidate_hash_status=PASS"
|
||||
pass "生产多个批次时只对最新元数据合格候选执行全量 SHA-256"
|
||||
|
||||
PRODUCTION_LATEST_HASH_FAIL="$TEST_ROOT/production-latest-hash-fail"
|
||||
make_production_layout "$PRODUCTION_LATEST_HASH_FAIL"
|
||||
make_batch "$PRODUCTION_LATEST_HASH_FAIL/backups/hyb-oa-backup-auto-20260827T000000Z" "auto-20260827T000000Z"
|
||||
make_batch "$PRODUCTION_LATEST_HASH_FAIL/backups/hyb-oa-backup-auto-20260828T000000Z" "auto-20260828T000000Z"
|
||||
printf 'X' | dd of="$PRODUCTION_LATEST_HASH_FAIL/backups/hyb-oa-backup-auto-20260828T000000Z/database.dump" bs=1 seek=0 conv=notrunc status=none
|
||||
run_production "$PRODUCTION_LATEST_HASH_FAIL" "$TEST_ROOT/production-latest-hash-fail.out"
|
||||
assert_line "$TEST_ROOT/production-latest-hash-fail.out" "complete_local_recovery_point=no"
|
||||
assert_line "$TEST_ROOT/production-latest-hash-fail.out" "fully_verified_local_batch_count=0"
|
||||
assert_line "$TEST_ROOT/production-latest-hash-fail.out" "metadata_complete_local_batch_count=2"
|
||||
assert_line "$TEST_ROOT/production-latest-hash-fail.out" "older_metadata_batch_hash_status=NOT_RUN"
|
||||
assert_line "$TEST_ROOT/production-latest-hash-fail.out" "latest_local_candidate_hash_status=FAIL"
|
||||
pass "最新候选哈希失败时不回退扫描旧批次并保持无已证明恢复点"
|
||||
|
||||
PRODUCTION_EMPTY="$TEST_ROOT/production-empty"
|
||||
make_production_layout "$PRODUCTION_EMPTY"
|
||||
run_production "$PRODUCTION_EMPTY" "$TEST_ROOT/production-empty.out"
|
||||
|
||||
在新工单中引用
屏蔽一个用户