Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, because the HTTP/gRPC server is a dependency of services and is shut down last, there is a possibility that it may receive requests after de-initialization. In most cases, if the deployment is managed properly, the issue is barely noticeable: the load balancer's grace period allows clients to remove the peer from the "pool."
However, when dealing with client-side discovery (e.g., via memberlist/ring, Kubernetes, DNS, etc.), nothing prevents clients from sending requests to a target that is already de-initialized but not yet excluded from the list of available/discoverable instances. The fix ensures that a request will either be handled or rejected appropriately.
Note that heartbeats/health checks are not helpful in this case (and in many other scenarios).
The problem is not specific to the experimental modules; however, the fix is only enabled for them.