Repository navigation
v0.9.2
Release of oekit/network v0.9.2(annotated tag,由 release_train 门禁后打点)。
变更记录
- fix(nats): 订阅 handler 的 panic 就地收编——handler 跑在 nats.go 无 recover 的派发 goroutine(waitForMsgs 直接 mcb(m))里,一条语义残缺消息的 panic 会穿透炸掉整个进程、连同其上全部订阅与在途请求一并消灭;现在 Subscribe/QueueSubscribe(覆盖 SubscribeJSON/QueueSubscribeJSON/Reply 全部漏斗)的 handler 调用点统一 panic 收编(Error 日志 + 该条消息丢弃留痕,与 wsutil「只死这条连接」同口径),订阅与进程存活(#145)
关联问题单:#145。
- fix(wsutil): Outbox 写动作 panic 同样闭合记账——write panic 时旧实现整套记账与冲刷(failInFlight/countPending/drain)被跳过,「Send(true) − Written ≡ Dropped」恒等式破口、帧静默消失且 Dropped 恒为 0(#105/#117/#123 的口径只对 error 路径成立);现在 write 调用点 panic 收编为 error 走既有失败分支(run 与 drain 两径同口径),写动作 panic 计入 Dropped(#146)
关联问题单:#146。
- fix(nats): Close(ctx) 重连窗口内返回 nil——上游 Drain() 在连接重连中自己执行 nc.Close()(目标态已达成)却返回 ErrConnectionReconnecting,旧豁免只认 ErrConnectionClosed,把已关误记成 "drain: connection reconnecting" 虚假错误(上层关停误报告警/非零退出码/跳过清理);现在 ErrConnectionReconnecting 与 ErrConnectionDraining 同列「目标态已达成」豁免(#147)
关联问题单:#147。
矩阵内依赖地板(该 tag 的 go.mod,CI 验证过的组合)
github.com/oekit/concurrency v0.32.0
github.com/oekit/logx v0.9.2
github.com/oekit/tracing v0.3.10