--- title: Checkpoint 2026-09-30 09:10:33 UTC [ad016ac6b5] type: checkpoint permalink: main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-30-09-10-33-utc-ad016ac6b5 stable_id: a9e137cc-f3b1-4311-b8dd-b4c7b8ffbfd1 scope: project memory_type: checkpoint project_id: 25464650-ed5d-440e-b362-190f2852d451 usage_profile_id: 0c9feb46-d06e-43cd-9ef0-c5813c84a998 status: active revision: 1 request_id: checkpoint-reread-confirmed-bugs-20260930-1710 created_at: '2026-09-30T09:10:33.311649+00:00' updated_at: '2026-09-30T09:10:33.311649+00:00' tags: - handover - review --- # 检查点:合入后复查确认还要修的缺陷 基线 main `0c9b459`。四路只读复查已完成。下面是对过代码或审查引用后仍成立的项,还没开修。 ## 消息唤醒 - 定时分发 `dispatchDueBatch` 只唤醒 pending 接收方,不唤醒发送方,空闲在线时回执不推。`internal/app/message/push.go`。 - `too_large` 拒收后不自唤醒接收方,后面的 pending 会停。 - `Recall` 成功后不 `WakePush` 接收方,窗口空出来不继续推。`ack.go`。 ## broker - `PublishThenDisconnect` 用全局 `sentPub` 判断「本帧已写出」,有下行积压时 fatal/logout 可能还没写出就断开。`internal/broker/downlink.go`。 - `Broker.Shutdown` 对 ctx 是非阻塞 select,有积压时 0x8B 可能发不出。`broker.go`。 ## 存储 - 写队列通道满时 `enqueue` 持 `sendMu.RLock` 阻塞发送,`Close` 要写锁,停机会卡死。`internal/store/queue.go`。 ## SDK - Go `PublishUp` 失败且未 stopReconnect 时既不换 rid 也不 `finishSend`,`Send` 会挂。`sdk/go/send.go`。 - JS 非协议错误的 publish 失败换了 rid 但不 `drainSendQueue`。`sdk/js/src/client.ts`。 - Python/Java 首次握手失败时 `connect()` 已返回错误,后台仍重连。 - Java `rate_limited` 把 inflight 减了两次(低)。 ## 群 - 客户端 `group.Create` 事务内不对创建者做 `endpointCheckTx`,停用竞态可留下非法群主。`internal/app/group/app.go`。 - 低:后台加人审计把已是成员/重复编号算成功。`internal/admin/groups.go`。 ## 不要当缺陷 - F03/F08/F21/F22 未测项、阶段 3 发布、fix3 未提交实验、DEVIATIONS 已接受偏差。 - 0003/0004 都会执行;读池 64 已落地;四套重连公式单测一致。 ## 下一步 用户问的是还有没有要修的问题。本检查点只记缺陷,未开修。若要修,按上面清单分线,不要合 fix3。