LI123456mo opened a new pull request, #16398: URL: https://github.com/apache/dubbo/pull/16398
Fixes part of #16397. ## Problem When `pathResolver.resolve()` fails to find an invoker because it was unregistered during graceful shutdown, `GrpcRequestHandlerMapping` throws a 404, which maps to gRPC `UNIMPLEMENTED`. Consumer-side cluster fault tolerance treats `UNIMPLEMENTED` as a permanent, non-retriable error, so it never fails over to another provider instance — turning a routine rolling restart into a business-visible error. ## Fix When resolution fails specifically because the application is stopping (`ApplicationDeployer#isStopping()`), return 503 instead of 404, which maps to gRPC `UNAVAILABLE` — a retriable status consumers already know how to fail over on. ## Testing Added `GrpcRequestHandlerMappingTest#returnsServiceUnavailableWhenStoppingAndInvokerNotFound`, verifying a 503 is thrown when the app is stopping and resolution fails. -- 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
