Skip to content

fix(core): 结构服务异常边界与写入读回尺寸校验(lingshu #1106,镜像 #1150 净增量) - #1155

Merged
FuRongJun-1999 merged 2 commits into
mainfrom
fix/structure-bounds-1150
Oct 29, 2026
Merged

FuRongJun-1999 merged 2 commits into
mainfrom
fix/structure-bounds-1150

Conversation

@FuRongJun-1999

Copy link
Copy Markdown
Owner

Summary

修复 lingshu #1106 两现象(异常边界穿透 handler、1MiB 收发不对称),净增量镜像自 PR #1150(@STARDUSTLC666 修复与守卫原样):

Tests

E02/E03:_receive 的 json.loads 包 RecursionError/JSONDecodeError、_send 的
json.dumps 包 RecursionError——深层 JSON(~2 万层)曾穿透 handler ⇒ 客户端
只收 EOF,无法区分成功与失败。现统一转 WriteError(业务可回执)。
E01':dispatch 补 Overflow/Recursion 边界(before_rowid=10**100 的 sqlite
INTEGER 越界、occurred_at 时区越界的 astimezone——合法 JSON 触发的溢出)。
E01''(收发对称):structure_writer 新增 _require_readable——写入前按读取
视图估算响应尺寸,超 MAX_RECORD_BYTES(1MiB-4KiB) 即拒,保证「可写入 ⊆
可读出」(改前 1MiB 内可写入但响应发不出 ⇒ 已提交但不可读)。

净增量镜像自 PR #1150(STARDUSTLC666 修复与守卫原样,其分支基线早于
#1138/#1143/#1146/#1153/#1154 直接合并会回退已合工作)。#1146 读超时预算
与 #1154 校验保持。守卫 10 条(E01/E02/E03 三钉 + B 组对照),基线 3 红、
修复后 10/10;变异 _require_readable 改名 E01 红。
Linux CI 红=#1106 守卫是脚本式(pytest 收集 0 件,test_gate_coverage 判
「两条腿都没走到」)。修法:包 test_ 入口进程内直调 _run_assertions()
(E01/E02/E03 三钉+B 组对照),与 python -X utf8 直跑同判据。
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