# 诊断复制、分区与 repair

## When to use

在节点视图不同、远端值迟到、repair 未追平、ChangeStream 溢出或分区后结果异常时使用本任务。

## Inspect first

- 采集 Runtime 状态、成员视图、collection identity、diagnostics、metrics 和 trace。
- 保留故障现场，记录节点、时间窗口、网络条件和操作顺序。
- 阅读[传播路径](/zh-CN/11-delta-replication.html)与[repair 选择](/zh-CN/12-repair.html)。

## Required inputs

取得两端摘要、缺口范围、replay 可用性、snapshot 版本、schema fingerprint、背压策略和外部响应记录。

## Implementation path

1. 区分本地提交成功与远端已经应用。
2. 沿 encode、transport、validate、apply 找到第一个不一致阶段。
3. 使用 digest 确认差异，再选择 replay、snapshot 或拒绝倒退。
4. 检查 ChangeStream 缓冲和 overflow policy 是否只影响观察面。
5. 对外部副作用单独检查 fencing 或幂等保护。

## Constraints

- repair 恢复副本状态，不撤回分区期间已经返回的业务响应。
- membership 是局部观察；稳定视图需要明确条件。
- diagnostics、metrics 和 trace 只支撑其采集范围内的判断。

## Failure patterns

- 通过重启清除现场后再尝试定位。
- 将最终收敛写成同步远端可见。
- 把订阅丢事件等同于集合状态丢失。

## Validation

在受控双节点环境复现故障，记录修复前后摘要、来源事件和最终值。真实网络与生产拓扑结论另行验证。

## Evidence

- [验证范围](/agent/zh-CN/v/0.1.2/reference/validation-scopes.md)
- [安全变更边界](/agent/zh-CN/v/0.1.2/policies/safe-change-boundaries.md)
- [DSM 固定源码](https://github.com/xbdotl/dsm/tree/505e7557da94e3f74da84ecf75bc8a9282732e4f)
