Loyal-Young opened a new pull request, #11255: URL: https://github.com/apache/rocketmq/pull/11255
### Which Issue(s) This PR Fixes - Fixes #11254. ### Brief Description ThreadUtils.shutdownGracefully(Thread,long) loops after every timed join, so a finite timeout does not bound the call. If the caller is interrupted, it restores its interrupt flag inside that loop and immediately throws from join again, spinning until the worker terminates. Interrupt the worker once and perform one bounded/interruptible join while preserving caller interruption. Reproduction: Use a worker that cannot stop until a latch is released. shutdownGracefully(worker,50) must return before that latch is released, and an already-interrupted caller must return without spinning. This is an independent bug fix based on develop `78b96bc5e21216cd7896efae08f90c5cde4cae53`, not stacked on the other contributions. It changes one implementation and adds one regression test file; no new protocol or public API is introduced. ### How Did You Test This Change? - The bug-specific regression fails against the unmodified implementation. - On this independent branch, JDK 8 / Maven 3.9.9: `ThreadUtilsShutdownTest` — 2 tests passed, zero failures/errors/skips. - Command: `mvn -pl common -am -Dspotbugs.skip=true -Djacoco.skip=true -Dsurefire.failIfNoSpecifiedTests=false -Dtest=ThreadUtilsShutdownTest test`. - The combined candidate changes also pass the complete common-module suite: 284 tests, zero failures/errors/skips. - Maven Checkstyle passed; `git diff --check` passed. Local runs disable JaCoCo and SpotBugs; this does not claim that upstream GitHub Actions have run or 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]
