Skip to content

Commit 51f382c

Browse files
ti-chi-botrleungx
andauthored
*: fix member race problem (#6070) (#6091)
ref #5310, ref #6069, ref #6070 Signed-off-by: Ryan Leung <rleungx@gmail.com> Co-authored-by: Ryan Leung <rleungx@gmail.com>
1 parent 5a6f460 commit 51f382c

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

server/grpc_service.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,17 @@ func (s *GrpcServer) wrapErrorToHeader(errorType pdpb.ErrorType, message string)
102102
func (s *GrpcServer) GetMembers(context.Context, *pdpb.GetMembersRequest) (*pdpb.GetMembersResponse, error) {
103103
// Here we purposely do not check the cluster ID because the client does not know the correct cluster ID
104104
// at startup and needs to get the cluster ID with the first request (i.e. GetMembers).
105-
members, err := s.Server.GetMembers()
105+
if s.IsClosed() {
106+
return &pdpb.GetMembersResponse{
107+
Header: &pdpb.ResponseHeader{
108+
Error: &pdpb.Error{
109+
Type: pdpb.ErrorType_UNKNOWN,
110+
Message: errs.ErrServerNotStarted.FastGenByArgs().Error(),
111+
},
112+
},
113+
}, nil
114+
}
115+
members, err := cluster.GetMembers(s.GetClient())
106116
if err != nil {
107117
return &pdpb.GetMembersResponse{
108118
Header: s.wrapErrorToHeader(pdpb.ErrorType_UNKNOWN, err.Error()),

server/server.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -840,8 +840,7 @@ func (s *Server) GetMembers() ([]*pdpb.Member, error) {
840840
if s.IsClosed() {
841841
return nil, errs.ErrServerNotStarted.FastGenByArgs()
842842
}
843-
members, err := cluster.GetMembers(s.GetClient())
844-
return members, err
843+
return cluster.GetMembers(s.GetClient())
845844
}
846845

847846
// GetServiceMiddlewareConfig gets the service middleware config information.

0 commit comments

Comments
 (0)