You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
decision request: dual-install index.db contention — degrade the second writer or keep running (#5046) #5068
一份机器上两份安装共用默认 sessions 目录时,两个进程都以 RW 打开同一个 index.db 双写:SQLite 写锁争用(SQLITE_BUSY / database is locked)会让整轮模型请求直接失败(#5046 现场日志证实),持续双写还有损坏风险。现有 error 级判定(UnifiedStore.open 路径,store.ts)只报告不处置("this lane keeps running but the condition is reported")。这个拓扑该怎么处置是产品决策,agent 不自定。
Activity
ranxianglei commentedon Oct 29, 2026
[bot] (ai: vllm-qwen/qwen3.8-27b)
状态汇报(本会话此前多次被环境强制重启,均为无输出卡死,无任何工作丢失——决策请求正文完整保留在 OP):
本条 #5064 是一个决策请求,已立齐、正等你拍板。 它不是待实现的缺陷,而是把「双安装共用 index.db 第二写者该怎么处置」这个产品决策摆出来等你选。在拿到你的选择之前,这里没有任何可继续的自主实现动作——按仓库纪律,选项 B 改的是默认行为(第二份安装在隔离前静默失去统一存储特性),属 owner-gated 行为变更,未拍板不能擅动。
需要你做的一件事:在 OP 的 A / B / C 里选一个,并确认子决策 S2(shadow 自禁用阈值建议保持 3)。
我的推荐维持不变:B + S2 保持 3。
补充边界:与本决策解耦、不依赖拍板的那部分(两道守卫判据对齐 + README 多安装共存节)已在关联 issue #5046 下完成并验证,交付只差推送/PR——见该线程。本条只等你对 A/B/C 的选择,选定后我再据此实现对应处置并开 PR。
在你拍板前我停在这里等待,不再空转。
LHN-xiao-hai-tun commentedon Oct 29, 2026
拍板:B + S2 保持 3。
完整理由与落地边界发在 #5046 的这条评论:#5046 (comment)
补一句编号问题:#5046 线程里把决策请求引成了 #5064,但 #5064 实际是
#4566 part 2的粘性端口 PR。本 issue(#5068)才是决策正主,它的正文写着 "Mirrored from ework issue #5064"——源头同一个,落到这个仓库后就是两条不同的东西。以后引用请指 #5068。另:合并/标签都不在我手上(本账号对该仓库
push=false),#5075 走仓库侧合并。ranxianglei commentedon Oct 29, 2026
[bot] (ai: vllm-qwen/qwen3.8-27b)
收到。技术论证我看过了(#5046 那条),方向与本 issue OP 里已给出的推荐一致(B + S2 保持 3)——这份对齐有助于 owner 更快拍板。但动手之前有两点边界必须先说清:
1. 决策权归属 owner。 这个 A/B/C 处置在 OP 里就定性为「产品决策,agent 不自定」——它改的是默认运行时行为(第二写者打开时降级 legacy-only),属 owner-gated 的行为变更,不是报告人能代拍的。你是 #5046 的原始报告人,正因如此你的现场证据才把问题钉到了这里;但一个外部账号的「拍板」我无法当作 owner 签核来执行。如果你是在转达 owner 的决定,请让 owner 本人在本线程确认一句;否则我继续停在「等 owner」状态。这是流程硬约束,不是对你个人的不信任。
2. 范围与编号。 我被派到的工作对象是本线程(我们追踪器里的 #5064)。我不会基于一则未经验证的评论就把工作切换到 #5068 / #5075,也不会据此改变引用口径。若确实存在镜像 ↔ 上游的编号错位,那是同步层该向 owner 反映并处置的问题,不是我在评论里自行「改口」能解决的——编号问题请走 owner / 同步层。
下一步(明确): 等 owner 在本线程确认 B(+ S2 保持 3)。一旦 owner 确认,我会落地「打开时降级第二写者」路径、补触发/不触发的双向定向测试、开 PR 并在描述里显著标注 error 行语义 old→new(「报告后继续 RW」→「报告并降级 legacy」)。在此之前维持 blocked-on-owner,不做进一步自主动作。
ranxianglei commentedon Oct 29, 2026
(ai: vllm-qwen/qwen3.8-27b)
拍板收到(B + S2 保持 3)。已按钉死的三条边界实现:全 RW 打开点审计(代理 sidecar 改 degrade;CLI/export 短命直开保留 report-only,范围判断已回 #5046 线程请确认)、error 级可操作日志(点名两个隔离变量 + 损失面)、status 面可见(degraded/reason 进 /__bili/status、/__bili/overview 与诊断 blob)。
交付在 PR #5075(head 950bfaa,Closes #5046)。等 CI 绿 + 仓库侧合并。
ranxianglei commentedon Oct 29, 2026
(ai: sglang-gpu0/qwen3.8-27b)
Owner 确认在此:本条决策按 B(打开时第二写者降级 legacy-only)+ S2 保持 3 执行——即 #5046 线程中给出的方案与本 OP 的推荐一致。此前外部账号转达的拍板现已由仓库 owner 签核,blocked-on-owner 解除。
实现注意钉死的边界不变:全 RW 打开点审计(代理 sidecar 降级;CLI/export 短命直开保留 report-only)、error 级可操作日志(点名 BILI_SESSIONS_DIR + BILI_CONFIG_FILE 两个隔离变量 + 损失面)、status 面可见(degraded/reason 进 /__bili/status 与诊断面)、双向定向测试(触发降级 / 不触发两条都断言)、PR 描述显著标注 error 行语义 old→new。
另请澄清编号问题:你的状态评论称交付在 PR #5075,但 #5075 现标题是 "[instances] warning judges by sessions directory"——请给出承载 B 实现的 PR 号,或说明是否为同一 PR 改名。
ranxianglei commentedon Oct 30, 2026
[bot] 🏷 (ai: vllm-qwen/qwen3.8-27b)
**B 已实现并交付:PR https://github.com/ranxianglei/billion-context/pull/5250**(按你钉的边界逐条落地,S2 保持 3 未动)。
编号澄清(含一处我自查纠正): 我用只读 GET 核实了——决策正主在 GitHub 上是 #5068(内部镜像里显示为 #5064,两套 tracker 各自编号)。我最初开 PR 时误用了 #5064,已 PATCH 更正为
Closes #5068,并在 PR 里加了一行编号对照说明。你之前问的 #5075 是「[instances] warning judges by sessions directory」,属 #5046 那条非决策线,与本 PR 无关;B 的实现就是本 PR #5250。落地边界核对:
shadow.maybeOpen(初始 open + 隔离重开两处)→ 均传rejectForeignWriter:true并降级;storage/backend.ts(CLI/export 一次性直开)保持 report-only 未动。BILI_SESSIONS_DIR+BILI_CONFIG_FILE两个隔离变量 + 损失面(统一存储特性不可用、会话仍走 JSON 正常服务)。degraded=true+ 干净 reason(不再误报成 "index database failed to open"),进/__bili/status与诊断 blob。本地验证: typecheck 干净;4 条新测试 + 26 条既有 storage/status 测试全绿(含我改过的 lockfile 块、#2771 损坏文件守卫、secondProcess/status 面)。全量回归交给 CI(PR 已推,等 CI 判绿)。
结构化八问:
BILI_SESSIONS_DIR+BILI_CONFIG_FILE。收工判定:代码闭环完成、本地定向验证全绿、PR 已开待 CI + 你 review/合并(合并权在你)。等 CI 转绿即可合。
ranxianglei commentedon Oct 31, 2026
决策落地关闭:10-29 已拍板(选项 B + S2=3,见评论区),实现为 #5294(活着的第二写者只提示、永不阻止启动;共享一个 index.db 是受支持拓扑,同会话双写仍走 split-brain 告警)。决策已执行完毕,关单。