Skip to content

[ISSUE #11228] Bound forwarded Proxy Admin calls with per-call deadlines - #11229

Open
3219378872 wants to merge 1 commit into
apache:developfrom
3219378872:fix/proxy-admin-forward-deadline
Open

3219378872 wants to merge 1 commit into
apache:developfrom
3219378872:fix/proxy-admin-forward-deadline

Conversation

@3219378872

Copy link
Copy Markdown

Which Issue(s) This PR Fixes

Brief Description

Forwarded Proxy Admin RPCs currently have no deadline when the original caller supplies none, so an unresponsive owning proxy can leave the request pending indefinitely.

Apply a fresh deadline to each invocation while retaining the cached peer channel/stub. Add grpcAdminServerForwardTimeoutMillis (default: 15000 ms) as the complete peer-call budget. Keep the existing per-broker timeout separate because a forwarded VerifyMessage can perform broker queries followed by a telemetry relay. A shorter incoming gRPC deadline still takes precedence.

Update the English and Chinese configuration documentation.

How Did You Test This Change?

Temurin 8u504-b01, Maven 3.9.9, Linux amd64; initialized the pinned rocketmq-apis submodule.

mvn -B -ntp -pl proxy -am \
  -Dtest=ProxyAdminForwarderTest,ProxyAdminGrpcServiceTest,ProxyAdminAuthInterceptorTest,AdminModelConverterTest,DefaultAdminServiceTest,ProxyConfigTest \
  -Dsurefire.failIfNoSpecifiedTests=false test
  • 110 tests passed, with no failures, errors or skips. The normal reactor checks also passed.
  • Red/green regression: on the unmodified baseline, the new real-transport test failed because the peer received no deadline; the shorter-caller-deadline control already passed.
  • The new tests run the production forwarder against a real loopback Netty gRPC server. They verify cancellation of a stalled peer, DEADLINE_EXCEEDED, reuse of the cached peer after a timeout, and preservation of a shorter caller deadline. The consumer directory is mocked; this is not a full broker-cluster deployment test.

AI assisted the analysis, implementation and tests; I reviewed the change and ran the validation above.

Apply a per-call peer forwarding budget without shortening the broker or telemetry timeouts. Preserve shorter caller deadlines and keep cached peer channels reusable after a timeout.

Fixes apache#11228
@3219378872

Copy link
Copy Markdown
Author

The workflows for head 667f7fc715c7c61668451fe7ca628445233487b1 currently report action_required; the Maven run has no jobs scheduled yet:
https://github.com/apache/rocketmq/actions/runs/36138281567

Could a maintainer approve the fork workflows when reviewing this PR? The local JDK 8 reactor validation completed successfully with 110 tests, including the loopback gRPC regression described above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Forwarded Proxy Admin calls have no timeout when the caller omits a deadline

1 participant