Skip to content

v1.22.0

Choose a tag to compare

@erikwang2013 erikwang2013 released this 29 Oct 00:50
· 276 commits to main since this release

v1.22.0

v1.21.x 之后的硬化版:配额/权限正确性、只读审计与升级/迁移脚本。

新增

  • oss-server tier-audit [--json]:只读列出未绑定源整对象摘要的已归档版本(legacy parts / 空 sha),有未绑定项 exit 1;绝不回填或改写 meta。
  • scripts/upgrade-preflight.sh:升级前只读检查存量裸 UUID MPU、M6 无 site_token 远端、M7 未映射 REPLICA;支持 --json/--strict。
  • scripts/single-to-cluster.sh:单机→集群单向 re-ingest(rclone);版本化/开锁桶 fail-closed,明确不保留历史版本/ACL/策略/加密等,非无损迁移。
  • AP 信任链 E2E:真实 listener + ConnectInfo 覆盖重复/畸形头、非可信 peer、缺 ConnectInfo fail-closed(测试资产)。

修复

  • 桶数量硬配额并发:Raft 在 leader append 前原子判定(只串行 BucketCreate);standalone 在 BEGIN IMMEDIATE 写锁内 count+insert。不新增 ControlResponse 变体,混版不分叉;并发 quota=2 恰 2 成功 1×403。
  • Raft follower 权限追赶:require_manager/require_member 在本地成员行 miss 时先追上 leader 已应用点再判定,修复滞后副本误 403;超时仍 fail-closed。
  • tier 100MiB 用例 flake:测试改用文件库,避免 sqlite::memory: 连接回收后 schema 丢失。

验证

  • cargo test -p oss-server:66 suites / 0 failed;clippy -D warnings、fmt 0。
  • tests/e2e_m9.sh:stretch 64/0/1;sync 85/0/1(含 Batch Delete 异步作业与 marker 同 id)。
  • Level C:v1.20.1 ↔ v1.21.1 控制面混版 147/0/0;v1.13.1 旧端不再支持。

仍未交付

硬字节/对象数配额、M8-2 运行态实时复制、真实 PrivateLink 身份、Level C 完整双向混写与数据面滚动。