Skip to content

Commit

Permalink
mcs: fix panic when resp is nil (#6283)
Browse files Browse the repository at this point in the history
close #6278

Signed-off-by: Ryan Leung <[email protected]>
  • Loading branch information
rleungx authored Apr 7, 2023
1 parent 6bac6b7 commit 976be4b
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions pkg/mcs/meta_storage/server/grpc_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,11 +163,15 @@ func (s *Service) Get(ctx context.Context, req *meta_storagepb.GetRequest) (*met
}
cli := s.manager.GetClient()
res, err := cli.Get(ctx, key, options...)
var revision int64
if res != nil {
revision = res.Header.GetRevision()
}
if err != nil {
return &meta_storagepb.GetResponse{Header: s.wrapErrorAndRevision(res.Header.GetRevision(), meta_storagepb.ErrorType_UNKNOWN, err.Error())}, nil
return &meta_storagepb.GetResponse{Header: s.wrapErrorAndRevision(revision, meta_storagepb.ErrorType_UNKNOWN, err.Error())}, nil
}
resp := &meta_storagepb.GetResponse{
Header: &meta_storagepb.ResponseHeader{ClusterId: s.manager.ClusterID(), Revision: res.Header.GetRevision()},
Header: &meta_storagepb.ResponseHeader{ClusterId: s.manager.ClusterID(), Revision: revision},
Count: res.Count,
More: res.More,
}
Expand Down Expand Up @@ -197,12 +201,16 @@ func (s *Service) Put(ctx context.Context, req *meta_storagepb.PutRequest) (*met

cli := s.manager.GetClient()
res, err := cli.Put(ctx, key, value, options...)
var revision int64
if res != nil {
revision = res.Header.GetRevision()
}
if err != nil {
return &meta_storagepb.PutResponse{Header: s.wrapErrorAndRevision(res.Header.GetRevision(), meta_storagepb.ErrorType_UNKNOWN, err.Error())}, nil
return &meta_storagepb.PutResponse{Header: s.wrapErrorAndRevision(revision, meta_storagepb.ErrorType_UNKNOWN, err.Error())}, nil
}

resp := &meta_storagepb.PutResponse{
Header: &meta_storagepb.ResponseHeader{ClusterId: s.manager.ClusterID(), Revision: res.Header.GetRevision()},
Header: &meta_storagepb.ResponseHeader{ClusterId: s.manager.ClusterID(), Revision: revision},
}
if res.PrevKv != nil {
resp.PrevKv = &meta_storagepb.KeyValue{Key: res.PrevKv.Key, Value: res.PrevKv.Value}
Expand Down

0 comments on commit 976be4b

Please sign in to comment.