|
|
@@ -48,7 +48,7 @@ func newUnaryInterceptor(s *etcdserver.EtcdServer) grpc.UnaryServerInterceptor {
|
|
|
return nil, rpctypes.ErrGRPCNotCapable
|
|
|
}
|
|
|
|
|
|
- if s.IsLearner() && !isRPCSupportedForLearner(req) {
|
|
|
+ if s.IsMemberExist(s.ID()) && s.IsLearner() && !isRPCSupportedForLearner(req) {
|
|
|
return nil, rpctypes.ErrGPRCNotSupportedForLearner
|
|
|
}
|
|
|
|
|
|
@@ -194,7 +194,7 @@ func newStreamInterceptor(s *etcdserver.EtcdServer) grpc.StreamServerInterceptor
|
|
|
return rpctypes.ErrGRPCNotCapable
|
|
|
}
|
|
|
|
|
|
- if s.IsLearner() { // learner does not support Watch and LeaseKeepAlive RPC
|
|
|
+ if s.IsMemberExist(s.ID()) && s.IsLearner() { // learner does not support stream RPC
|
|
|
return rpctypes.ErrGPRCNotSupportedForLearner
|
|
|
}
|
|
|
|