- Notifications
You must be signed in to change notification settings - Fork 4.6k
Closed
Description
grpc-ecosystem/go-grpc-middleware implements retry logic and other client-side interceptors.
See an example here:
https://github.com/grpc-ecosystem/go-grpc-middleware/blob/master/retry/options.go#L94
Now, it implements it by relying on an anonymous instantiation of grpc.CallOptions without providing an implementation. The client-side Unary and Stream interceptors then strip them before passing them to grpc.invoke.
However, this causes panics when users use the CallOptions without the interceptors, see:
grpc-ecosystem/go-grpc-middleware#37
I propose adding a grpc.NoOpCallOption that CallOptions implemented in middleware. This would implement both the private before and after methods without doing anything, keeping the callInfo private.
Metadata
Metadata
Assignees
Labels
No labels