mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-10-07 16:18:29 +08:00
三处功能修复(审计发现): 1. 租约续租失败按会话终结处理。RefreshLiveLease 的 Lua 在 leaseID 被 GC 后不会 重新 ZADD,重连拿不回并发槽;原先把 ErrLiveUnavailable 当临时错误交给 observer 重连,会让会话以约 1 秒一轮的节奏空转到 ExpiresAt(最长 60 分钟),期间持着 上游 WS 连接却不计入账号/用户/API Key 的任何并发限制。 2. observer 因过期放弃时补写 usage log。waitForLiveObserverRetry 原先把过期判定 混在重试条件里并返回 false,直接 return 绕过了 observeLiveCall 循环顶部的过期 分支,导致该路径既不写 usage log 也不释放租约(静默结束)。改为只判控制权归属, 过期交回循环顶部 finalize。 3. 把两处重复的三项终止判据抽成 liveSessionEnded,消除 ProxyLiveSideband 与 observeLiveCall 之间的判据漂移风险。 迁移改名 186/187 -> 188/189:原编号会成为第三个 186,且 187 与已合入 main 的 #4801 的 187_add_usage_log_session_id.sql 撞号。文件名即迁移主键,功能无害但易误读。 新增两个测试均经变异验证(去掉修复后会失败)。
2 lines
73 B
SQL
2 lines
73 B
SQL
ALTER TABLE groups ADD COLUMN allow_live BOOLEAN NOT NULL DEFAULT false;
|