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