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]

Reply via email to