Repository navigation
fix: 影子到期误摘 PHASER 修复(工程改进首项)——一行判例+全值矩阵绊线 - #17
Merged
Merged
Conversation
…adowTable.expireUpTo(LEASE_EXPIRE_ENTRY 应用点影子清扫)无租约家族跳过清单含 LATCH/BARRIER/QUEUE/ATOMIC/TIMER 而独缺 PHASER,phaser 镜像条目到期字段恒 0 被任一租约到期误摘;危害双面——管理面静置 phaser 键无限期失踪(自愈依赖该键后续镜像事件,静置键永无后续)与 lease.expired.total 累计虚增(幻影键入 freed_keys,"实际释放计数"条款被违、累计值无自愈);引擎账簿无恙,属实现违反 admin-observability/metrics-observability 既有承诺,非契约变更 - 修复:expireUpTo 内联跳过条件提取为静态单一判定点 isLeaselessFamilyType(判据来源注 Javadoc:获取路径入租约到期堆者即租约形态 0–5),清单补 PHASER 分支;方法级 Javadoc 与家族枚举括注同步补全(含 TIMER 落地时欠账);SEMAPHORE 不入清单经 release 持有归零即摘除不变式论证维持 - 测试:红先钉住 StateMachinePhaserTest.expireSweepLeavesPhaserMirrorUntouched(phaser 建账静置+短租约锁+到期条目混合序列,修复前实测红于 freed_keys=["p","mk"];断言镜像三计数逐项保真、freed_keys 恰等真实到期键、双份回放 digest 一致);新增 ShadowTableLeaselessFamilyMatrixTest LockType 全值矩阵绊线(0–5 不得入跳过集、其余必入,v12+ 新形态不判类即红;红性实证=临时摘除 PHASER 分支精确红于 LOCK_TYPE_PHASER(14) 后还原零残留) - 规格:core-lock-engine MODIFIED"PHASER 条目生命周期与会话清理"补"不被租约到期清扫回收"影子半句与场景"到期清扫与租约机制对 phaser 零触碰"(措辞逐字对齐队列判例,既有四场景逐字保留),主规格已 sync 并双查(validate --specs 17/17、delta 段头零残留) - 文档:ROADMAP 工程改进首项 未启动→已落地挂归档 change 链接;wire/协议/SDK/双语指南/WATCHLIST 零触碰(非对外 API 面) - 验证:mvn -s settings.xml clean verify 8/8 模块 BUILD SUCCESS(0 失败 0 错误;唯一跳过 ClientChaosIT 既有环境门槛与本项无关);check-source-citations 零命中、check-links 零死链;openspec validate --strict 通过;-Pdrill 不需要(纯镜像投影修复无进程/时序面变化,判例同原子家族误扫修复);change 归档至 openspec/changes/archive/2026-10-07-fix-shadow-sweep-phaser/
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.
缺陷(v11 落地审查发现,ROADMAP 工程改进首项)
ShadowTable.expireUpTo(LEASE_EXPIRE_ENTRY应用点影子清扫)的无租约家族跳过清单含 LATCH/BARRIER/QUEUE/ATOMIC/TIMER 而独缺 PHASER。phaser 镜像条目到期字段恒 0,被任一租约到期误摘,危害两面:lease.expired.total累计虚增——幻影键随freed_keys计入到期释放计数线,"实际释放计数"条款被违;累计值无自愈。引擎账簿无恙:镜像投影实现缺陷,非契约变更。
修复
expireUpTo内联跳过条件提取为静态单一判定点isLeaselessFamilyType(判据来源注 Javadoc:获取路径入租约到期堆者即租约形态 0–5),清单补 PHASER 分支。release()持有归零即摘除)维持原样入档设计。测试(红先)
StateMachinePhaserTest.expireSweepLeavesPhaserMirrorUntouched:phaser 建账静置 + 短租约锁 + 到期条目混合序列。修复前实测红:Expecting ["p","mk"] to contain exactly ["mk"];断言镜像三计数逐项保真 /freed_keys恰等真实到期键 / 双份回放 digest 一致。ShadowTableLeaselessFamilyMatrixTest:LockType 全值矩阵绊线(0–5 不得入跳过集、其余必入)——v12+ 新形态不判类即红,终结"每家族补一行"的判例式复发面。红性实证:临时摘除 PHASER 分支精确红于LOCK_TYPE_PHASER(14),已还原零残留。规格与文档
core-lock-engineMODIFIED"PHASER 条目生命周期与会话清理":补"不被租约到期清扫回收"影子半句 + 场景"到期清扫与租约机制对 phaser 零触碰"(措辞逐字对齐队列判例,既有四场景逐字保留);主规格已 sync。openspec/changes/archive/2026-10-07-fix-shadow-sweep-phaser/。验证
mvn -s settings.xml clean verify:8/8 模块 BUILD SUCCESS(0 失败 0 错误;唯一跳过ClientChaosIT为既有环境门槛,与本项无关)。check-source-citations.sh零命中;check-links.sh零死链;openspec validate --strict与--specs(17/17)通过;delta 段头零残留双查。-Pdrill不需要:纯镜像投影修复,无进程/时序面变化(判例同原子家族误扫修复)。Non-goals
不追溯修正历史
lease.expired.total值(重启归零);不为幻影键唤醒遍历加网关侧防御(freed_keys收敛后自然空转)。