perf(sync): 限制暂存验证并复用已验证上传句柄
This commit is contained in:
@@ -584,3 +584,13 @@ Core 的独立数据目录目前不等于已授权 Vault。Python 旧笔记写
|
||||
- [CreateProcessW](https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessw) 文档说明通用继承在多线程并发创建时可能带入其他可继承句柄;[UpdateProcThreadAttribute](https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-updateprocthreadattribute) 仍要求 HANDLE_LIST 中的句柄具有继承标志。本轮因此同时保留显式列表并约束自有创建窗口。
|
||||
- 该锁只约束已接入的自有 Host 路径,不约束绕开该入口的第三方库或系统组件。尚未完成全部依赖/平台进程创建审计,以及真实并发启动的完整跨进程句柄攻击矩阵,不能据此宣称整个 Host 继承问题已经完全验收。第三方扩展仍未启用。
|
||||
- desktop 全目标测试累计 129 通过、12 ignored:库 114、Host 8、其余集成 7;覆盖原生扩展协议、后台实例、Core 生命周期/Workspace、凭据所有权及 Sync 故障恢复集成。本轮未显式重跑 ignored 长时资源/工具期限验收,辅助进程由其父测试驱动。日志 `.build/process-creation-full.log`。desktop 全目标 Clippy -D warnings 通过,日志 `.build/process-creation-clippy.log`。
|
||||
|
||||
|
||||
## 增量:Sync spool 校验的有界读取
|
||||
|
||||
- 核查发现网络下载本身已经逐块写入临时文件,但下载命中缓存、sync_stage 和 sync_store_bytes 命中缓存仍通过 fs::read 校验整个对象。统一改为 payloads::verify,避免这些校验分支再为 100 MiB 对象分配整块 Vec。
|
||||
- payloads::verify 使用固定 64 KiB 缓冲,并同时校验实际读取长度与 SHA-256;即使元数据检查后输入继续增长,也最多读取声明长度加 1 字节,不再一直读取到变化文件的 EOF。打开后的句柄也检查长度。open_verified 返回回到起点的同一文件句柄,上传使用它完成预校验后继续分块上传,不为校验再重开路径。
|
||||
- 该辅助函数明确不是沙箱安全打开器,路径约束仍由调用方负责;同一打开句柄不等于外部写入被完全禁止。本轮不宣称消除所有路径替换/同时写入竞争。已有网络下载的摘要校验与原子无覆盖发布行为保留。
|
||||
- 新增生成式 100 MiB 读取测试,检查每次请求不超过 64 KiB;增长输入精确在声明长度加 1 字节时拒绝,截断、同长度内容损坏均拒绝,空对象正常。另用实际文件检查返回句柄从头读取与同长度内容修改被拒绝。两项通过,日志 `.build/sync-spool-bounded-tests.log`;生成流测试不是操作系统 RSS 基准。
|
||||
- 尚有 sync_apply_pending、Workspace journal 恢复/应用、冲突保留和外部变更扫描等路径读取整块内容;因此大附件端到端固定内存目标仍未完成,接下来仍需将已有持久化日志/操作回执/CAS 语义保持不变地接到流式 payload 应用路径。
|
||||
- desktop 全目标累计 131 通过、12 ignored(库 116、Host 8、其他集成 7),包含真实 Sync 服务有序推送/重复提交及故障恢复集成,日志 `.build/sync-spool-bounded-full.log`;desktop 全目标 Clippy -D warnings 通过,日志 `.build/sync-spool-bounded-clippy.log`。本轮未将这组结果视为大附件端到端 RSS 或完整生产化验收通过。
|
||||
|
||||
Reference in New Issue
Block a user