ai-yang opened a new pull request, #10740: URL: https://github.com/apache/rocketmq/pull/10740
### Which Issue(s) This PR Fixes - Fixes #10739 ### Brief Description `FutureUtils.appendNextFuture` now retains the stage returned by `whenCompleteAsync` and propagates completion-task scheduling failures to the future returned to the caller. The Proxy producer and consumer processor executors now use an explicit `AbortPolicy`. This is required because the shared default `DiscardOldestPolicy` can silently discard completion tasks during shutdown or saturation, leaving no rejection for `FutureUtils` to propagate. Other RocketMQ thread pools keep their existing rejection behavior. Together, these changes ensure that Proxy request futures reach an exceptional terminal state instead of remaining pending when processor completion work is rejected. ### How Did You Test This Change? - On the unmodified JDK 8 baseline, the helper-level and real processor-pool regressions each failed at the expected pending-future assertion in 5/5 runs. - After the fix, both regressions passed together in 20/20 consecutive runs. - Full JDK 8 `proxy -am` test reactor: all 11 modules succeeded; Proxy ran 304 tests with 0 failures and 0 errors. - Checkstyle and SpotBugs passed throughout the full reactor. - Explicit `common,proxy` Maven `validate`: passed with 0 Checkstyle violations. - `git diff --check`: passed. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
