Tech
[程序员] [吐槽] OpenCode 惊现 两年虫 大 bug,线上业务几千个会话在同一时间一起炸了...
我司有一个在线对话+开发的平台,是基于 opencode acp 实现的。
昨天晚上刚准备下班,就看到业务群里有一大波反馈,说对话消息不回复了,但创建新的会话就能恢复正常。与此同时我本地的 opencode 开发任务似乎也不回复了。
仔细排查了半天容器日志和 opencode 会话日志,发现是 opencode 在七点之后生成的 message ID 竟然比之前小,ID 生成器轮转了,而 opencode 的 message.latest() 是基于最大的 message ID 来找的。这就导致新消息发出去之后,获取的最新用户消息仍然是七点前的消息,导致对话不能正常工作了。。
结合代码发现确实如此,message id 中的时间戳是被截断之后存进 buffer 的,最多只能存 2^36ms ~= 795 天, 大概两年,刚好在昨天 (8.14) 晚上 19:19 会发生轮转 , msg_id 会从 msg_ffff 变成 msg_0000
let now = BigInt(currentTimestamp) * BigInt(0x1000) + BigInt...
Read the full discussion on V2EX
This article was aggregated from V2EX. Click to join the conversation.
View on V2EX