The GitHub Actions job "Build and Run Tests by Bazel" on 
rocketmq.git/feature/pop-orderly-attemptid-replay has succeeded.
Run started by GitHub user lizhimins (triggered by lizhimins).

Head commit for run:
3df14b93206029dde23afdd47502fdc5c5a177ff / lizhimins <[email protected]>
[ISSUE #10827] fix(broker): spin for the lock on same-attemptId pop orderly 
retry to avoid empty response

An orderly retry carrying the same attemptId is an idempotent reentrant
request, but the old logic fails fast with an empty response on
group@topic lock contention. The retry then suspends in long polling,
burns the only reentrant opportunity, times out, and the client rotates
to a new attemptId, permanently losing reentrancy and blocking the queue
head (up to invisibleTime, or ~3h when proxy autoRenew keeps extending
nextVisibleTime).

Fifo requests with a non-empty attemptId now spin-retry tryLock until
the lock is acquired; other requests keep the fail-fast behavior. The
lock holder always releases on pop completion, with the lock service's
2-minute expiry sweep as the worst-case backstop, so the spin cannot
wait forever; same-attemptId contention is rare and the wait is normally
milliseconds. Once the lock is acquired the existing re-pop path runs,
fully preserving the reentrant semantics.

Report URL: https://github.com/apache/rocketmq/actions/runs/31156389932

With regards,
GitHub Actions via GitBox

Reply via email to