fix(shardnode): 1.prevent create blob with empty name

2.fix some error msg
3.fix seal and delete blob return nil when get space failed

with #22977114 #22981300 #22982188

Signed-off-by: xiejian <xiejian3@oppo.com>
This commit is contained in:
xiejian 2025-01-13 19:32:52 +08:00 committed by slasher
parent 35140e84ff
commit 986bb6c830
3 changed files with 11 additions and 4 deletions

View File

@ -158,18 +158,19 @@ var errCodeMap = map[int]string{
CodeShardNodeNotLeader: "shardnode:not leader",
CodeShardRangeMismatch: "shardnode:range mismatch",
CodeShardDoesNotExist: "shardnode:does not exist",
CodeShardDoesNotExist: "shardnode:shard does not exist",
CodeShardNodeDiskNotFound: "shardnode:disk not found",
CodeUnknownField: "shardnode:unknown field",
CodeShardRouteVersionNeedUpdate: "shardnode:route version need update",
CodeShardNoLeader: "shardnode:shard has no leader",
CodeIllegalSlices: "shardnode:alloc with illegal slices",
CodeIllegalSlices: "shardnode:illegal slices",
CodeBlobAlreadyExists: "shardnode:blob already exists",
CodeShardConflicts: "shardnode:shard conflicts",
CodeKeySizeTooLarge: "shardnode:key size large than 32KB",
CodeValueSizeTooLarge: "shardnode:value size large than 16MB",
CodeKeyNotFound: "shardnode:key not found",
CodeBlobAlreadySealed: "shardnode:blob already sealed",
CodeBlobNameEmpty: "shardnode:blob name is empty",
}
// HTTPError make rpc.HTTPError

View File

@ -30,6 +30,7 @@ const (
CodeValueSizeTooLarge = 1013
CodeKeyNotFound = 1014
CodeBlobAlreadySealed = 1015
CodeBlobNameEmpty = 1016
)
// 10xx
@ -49,4 +50,5 @@ var (
ErrValueSizeTooLarge = Error(CodeValueSizeTooLarge)
ErrKeyNotFound = Error(CodeKeyNotFound)
ErrBlobAlreadySealed = Error(CodeBlobAlreadySealed)
ErrBlobNameEmpty = Error(CodeBlobNameEmpty)
)

View File

@ -24,6 +24,10 @@ import (
)
func (s *service) createBlob(ctx context.Context, req *shardnode.CreateBlobArgs) (resp shardnode.CreateBlobRet, err error) {
if len(req.Name) < 1 {
err = apierr.ErrBlobNameEmpty
return
}
if len(req.Name) > storage.MaxKeySize {
err = apierr.ErrKeySizeTooLarge
return
@ -40,7 +44,7 @@ func (s *service) deleteBlob(ctx context.Context, req *shardnode.DeleteBlobArgs)
sid := req.Header.SpaceID
space, err := s.catalog.GetSpace(ctx, sid)
if err != nil {
return nil
return err
}
return space.DeleteBlob(ctx, req)
}
@ -49,7 +53,7 @@ func (s *service) sealBlob(ctx context.Context, req *shardnode.SealBlobArgs) err
sid := req.Header.SpaceID
space, err := s.catalog.GetSpace(ctx, sid)
if err != nil {
return nil
return err
}
return space.SealBlob(ctx, req)
}