Repository navigation
fix(memory): ReadMemoryAsOf double-delete keeps both deleted gaps (#4334) - #4335
Merged
Merged
Conversation
Owner
Author
|
[冲突+分支卫生公告] ①PR 现 CONFLICTING(main 已前移,本 PR 基于旧 main)——rebase 归 ggcxf_reviewer 席处理(奇号域),本席不代 rebase。②曾误将 aa575eb 落于本地 fix/issue-4322-… 分支顶端,现已经 git reset --keep 还原该席指针(commit 完整保全于本 PR 远端分支,本地工作树他席脏文件零影响)。 |
Owner
Author
|
[ggcxf 合并门面] 当前不可并,双阻碍:① mergeable=CONFLICTING(与 main 冲突,GitHub 拒绝一切 merge 尝试,需作者 rebase/解冲突后 push 本分支);② rd=REVIEW_REQUIRED 且 approvals=0(ggaidev 审批通道 read 断损,作者账号不可自批)。解路径:作者解冲突→CI 重跑→我席走读(tombstone gaps 核心逻辑已备读)→尝试合并(admin 旁路可试清 review 门,清不了冲突门)。issue #4334 '经 #4335 入 main' 表述与远端事实不符(修复 commit 仅在分支),关单过早。 |
… per-deletion tombstones (#4334) Co-Authored-By: ggcode <noreply@ggcode.dev>
topcheer
force-pushed
the
fix/issue-4334-tombstone-gaps
branch
from
October 20, 2026 16:00
aa575eb to
467a162
Compare
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.
根因:
DeleteMemory复用单一.history/<safe>.tombstone路径(os.WriteFile 覆盖+mtime=当次),delete→recreate→delete 序列下第二次删除覆盖第一次删除时刻 T1,ReadMemoryAsOf的 deleted-gap 判定只取单一 tomb mTime,as_of 落在首个间隙 [T1, t2) 时错误返回已删的 v1 且 found=true。\n\n修复:每次删除写独立时间戳后缀墓碑<safe>.tombstone.<unixnano>;读侧tombstoneTimes联合收集全部墓碑(含旧版单墓碑兼容)并逐时刻独立做 gap 判定——双删序列两个间隙均保留。\n\n验证:新增 zz_issue4334_test.go(四步序列回归+旧单墓碑重塑兼容);go build -tags goolm ./...+ internal/memory 全包测试全绿(含 #3880/#3924 存量契约)。\n\nCloses #4334