docs(test): sync-secondary-kill quorum-aware invariant guide + sqlserver case#227
Open
weicao wants to merge 1 commit into
Open
docs(test): sync-secondary-kill quorum-aware invariant guide + sqlserver case#227weicao wants to merge 1 commit into
weicao wants to merge 1 commit into
Conversation
…lserver case Sediment from SQL Server CH60 chaos N=10 strength loop (TS=155303): when killing the only sync secondary in a 2-replica topology, the primary loses quorum and enters RESOLVING; AG re-election may not restore the original primary identity. Strict `pre_delete_primary == after_primary` invariant produced probabilistic FAIL (1/5 cycles) — root cause is test invariant not aligned with sync-replica quorum model, not engine bug. Guide is engine-neutral and applies to any sync-commit replication addon (SQL Server AG, PostgreSQL synchronous_standby_names, MySQL Group Replication AFTER, MongoDB writeConcern:majority, OceanBase paxos, TiDB pd majority). Engine-specific RESOLVING / identity-swap / label-window timeline kept in sqlserver case appendix per single-topic-per-doc rule. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Contributor
Author
|
HOLD for docs gate. The guide/case split is directionally right and line budget is OK, but this PR cannot merge in current public form. Blockers:
Already checked: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
docs/test/addon-sync-secondary-kill-quorum-aware-invariant-guide.md— secondary-kill 类 chaos invariant 必须按 quorum / 剩余 sync 副本数分层;2-replica 拓扑下 strictpre_delete_primary == after_primary是错的不变量docs/cases/sqlserver/sqlserver-ch60-2replica-identity-swap-case.md— TS=155303 cycle-001 真实 timeline + data integrity 闭合证据 + 为什么不是 SQL Server bugdocs/test/README.md索引指向新 guideBackground
SQL Server CH60 chaos N=10 strength loop (TS=155303) on 2-replica 拓扑出现概率性 FAIL:cycle-001 FAIL(identity swap)+ cycle-002/003/004 PASS(25% FAIL 率)。同样的 case 在 3-replica (TS=132132) 10/10 PASS。
根因不是 SQL Server bug — SQL Server AlwaysOn AG 在
DB_FAILOVER=ON, CLUSTER_TYPE=EXTERNAL下杀掉唯一 sync secondary 会让 primary 失去 quorum 自身进入 RESOLVING;secondary 重建后 AG 重选举不保证还原原 primary identity,这是同步副本引擎防 split-brain 的设计行为。问题是 CH60 invariant 没按拓扑分层。文档分工
按
kubeblocks-addon-docs「一个主题一篇文档 + 引擎专属放案例附录」分工。边界
AG 收敛 + 数据三轨 + cleanup的多组合不变量kubeblocks-tests对应 chaos.sh patch 走独立 PR (apecloud/kubeblocks-tests#21),包含 profile-aware invariant 实现 + 2-replica N=10 验证。Test plan
🤖 Generated with Claude Code