Skip to content

feat: v0.3.23 ABI 对齐与 Ptr/volatile 修复(review #45,冲突取 PR 方) - #47

Merged
miaobyte merged 1 commit into
mainfrom
fix/review-v0.3.23-on-main
Nov 1, 2026
Merged

miaobyte merged 1 commit into
mainfrom
fix/review-v0.3.23-on-main

Conversation

@miaobyte

@miaobyte miaobyte commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

把 review PR #45 落到当前 main,冲突一律取 PR 方(用户裁决),并补回一个被吞掉的开发期不变量。

做法

main(7c48cae,含 #46 SetPart 范围校验)上应用 coding4 的解冲突整树 patch
(22 文件 +1998/−725)。冲突:src/ffi.rs 两处取 PR(SetPart 的 Ptr 解析 + 后端调用、
WriteInPlace 的 pending_key = target_key);WriteNewPlace 非冲突区自动合并。

补回的不变量(独立小改,不影响 PR 语义)

kvspaceWriteInPlace 的 debug_assert!(body_ptr % 8 == 0) 在取 PR 方时被删且无替代,
本提交加回(debug 构建断言、release 零开销):body 指针供调用方直接写 8 字节标量,
对齐是前条件不是假设。

验证

cargo test --release --offline — 全部 suite 绿,合计 51 passed / 0 failed
(lib 34、deltree 1、cp 2、list_cache 2、map_coord 2、metadata_fs 2、prefix_list 3、
read_cache 3、review_fixes 2,另若干 0 用例 suite)。
作者报 lib 34 passed、rc=0,一致。

⚠ 已知后果(必须随提交留档)

body-only 守卫让位后:durable 的 SetPart 完全无范围校验(fs 走 pwrite、redis 走
SETRANGE),reserved key 只在 fs 后端检查、redis 没有。attr/head 保护现在只靠调用方自律。
详见 ci-followups ⑪。

🤖 Generated with Claude Code

按用户裁决把 review PR #45 落到当前 main:冲突取 PR 方;并补回被冲突块吞掉的
开发期不变量(kvspaceWriteInPlace body 指针 8 字节对齐 debug_assert)。

- Ptr 链解析(≤16 跳)、ListLen/ListAt 遍历缓存 O(N)、DelTree 范围
- volatile 跨进程失效与 4 槽环形缓冲(未变槽原地复用)
- ctime 变化时退役跨句柄缓存函数条目、Redis 重连与 panic 兜底、fs 原子写
- v0.3.23 ABI 回归测试套件、deps.json 新增 kvspace v0.3.23 pin

已知后果(留档):body-only 守卫让位后 durable 的 SetPart 无范围校验
(fs pwrite / redis SETRANGE),reserved key 仅 fs 后端检查 —— 见 ci-followups ⑪。

Co-Authored-By: Claude Code <noreply@anthropic.com>
@miaobyte
miaobyte merged commit 4945133 into main Nov 1, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant