The GitHub Actions job "Build and Run Tests by Bazel" on rocketmq.git/fix/pop-revive-future-exceptionally has succeeded. Run started by GitHub user wang-jiahua (triggered by wang-jiahua).
Head commit for run: 0549ae5988eed00239ec4c85d69ccd5797f749fa / wangjiahua.wjh <[email protected]> [ISSUE #10658] Consume incidental interrupts and preserve the suspend flag in backoff records Address two review comments on #10659. Interrupt handling: restoring the interrupt flag before rethrowing left the revive service permanently interrupted, because shutdown stops this service with the stopped flag and wakeup() rather than interruption, and ServiceThread.waitForRunning preserves the interrupt status. Every later Semaphore.acquire() threw again, turning one incidental interrupt into a permanent busy error loop with each batch abandoned before writeRecords and deleteRecords. Consume incidental interrupts and retry the acquire; if the service is stopped, abort the batch cleanly so the records are reprocessed after the next start. Suspend flag: the backoff record was built with the eight-argument PopConsumerRecord constructor, which defaults suspend to false. A suspended record whose revive failed transiently lost the flag, so a later successful reviveRetry incremented reconsumeTimes unexpectedly. Build the retry record with the nine-argument constructor and preserve record.isSuspend(). New regression tests: one blocks the worker on the semaphore with a single permit, interrupts it once, releases the outstanding read and verifies the whole batch still completes without an exception; the other fails one record synchronously and one asynchronously, both with suspend=true, and verifies the persisted backoff records keep suspend=true with attemptTimes=1. Both fail before this change. Report URL: https://github.com/apache/rocketmq/actions/runs/32936181582 With regards, GitHub Actions via GitBox
