You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bifromq.apache.org by GitBox <gi...@apache.org> on 2026/10/13 01:58:24 UTC
[GH] (bifromq/fix/inbox-watermark-286): Workflow run "Build and Test BifroMQ" failed!
The GitHub Actions job "Build and Test BifroMQ" on bifromq.git/fix/inbox-watermark-286 has failed.
Run started by GitHub user ImDanXie (triggered by ImDanXie).
Head commit for run:
805838bbe7b2111264930dbef0a9c766cbdf8afa / ImDanXie <wo...@gmail.com>
fix(mqtt): do not advance the inbox watermark on out-of-order PUBACK (#286)
confirm() unconditionally called onConfirm(confirmingMsg.seq) with the
PASSED-IN message, even when the drain loop removed nothing because the
head of unconfirmedPacketIds was still un-acked. A client acknowledging
packetId 2 while packetId 1 is in flight (the spec places no ordering
requirement on PUBACK) would then clear stagingBuffer up to the second
message's seq and commit sendBufferUpToSeq past it - deleting the
never-acknowledged first message from the inbox. On session resume it is
not redelivered: permanent loss.
Advance the watermark only when the drain loop actually removed a
contiguous prefix; when zero entries were removed, do not call onConfirm
at all.
Regression test: outOfOrderPubAckMustNotAdvanceInboxWatermark.
Control experiment: fails on unfixed code, passes with the fix.
Full PersistentSessionHandlerTest (24) passes.
Fixes #286
Report URL: https://github.com/apache/bifromq/actions/runs/36004439639
With regards,
GitHub Actions via GitBox