From eb8e50062a124e516418c502c1193c38000bade8 Mon Sep 17 00:00:00 2001 From: Kosuke Morimoto Date: Thu, 23 Jan 2025 18:26:26 +0900 Subject: [PATCH] add Search_Config validation --- internal/errors/lb.go | 3 +++ pkg/gateway/lb/handler/grpc/aggregation.go | 4 ++++ pkg/gateway/lb/handler/grpc/handler.go | 22 ++++++++++++++++++++++ 3 files changed, 29 insertions(+) diff --git a/internal/errors/lb.go b/internal/errors/lb.go index 5215f366c6..02ea754031 100644 --- a/internal/errors/lb.go +++ b/internal/errors/lb.go @@ -25,4 +25,7 @@ var ( // ErrIndexNotFound represents an error that the index not found. ErrIndexNotFound = New("index not found") + + // ErrNilSearch_Config represents an error that the Search_Config is nil. + ErrNilSearch_Config = New("Search_Config is nil") ) diff --git a/pkg/gateway/lb/handler/grpc/aggregation.go b/pkg/gateway/lb/handler/grpc/aggregation.go index 24ad0925cd..a62c20a3a0 100644 --- a/pkg/gateway/lb/handler/grpc/aggregation.go +++ b/pkg/gateway/lb/handler/grpc/aggregation.go @@ -65,6 +65,10 @@ func (s *server) aggregationSearch( } }() + if bcfg == nil { + return nil, nil, errors.ErrNilSearch_Config + } + num := aggr.GetNum() min := int(bcfg.GetMinNum()) diff --git a/pkg/gateway/lb/handler/grpc/handler.go b/pkg/gateway/lb/handler/grpc/handler.go index ca21f84083..da1b555419 100644 --- a/pkg/gateway/lb/handler/grpc/handler.go +++ b/pkg/gateway/lb/handler/grpc/handler.go @@ -438,6 +438,28 @@ func (s *server) doSearch( } }() + if cfg == nil { + err = errors.ErrNilSearch_Config + err = status.WrapWithInvalidArgument(apiName+"/doSearch", err, &errdetails.RequestInfo{ + RequestId: "Search_Config is nil", + ServingData: "Search_Config is nil", + }, + &errdetails.BadRequest{ + FieldViolations: []*errdetails.BadRequestFieldViolation{ + { + Field: "Search_Config is nil", + Description: err.Error(), + }, + }, + }) + if span != nil { + span.RecordError(err) + span.SetAttributes(trace.StatusCodeInvalidArgument(err.Error())...) + span.SetStatus(trace.StatusError, err.Error()) + } + return nil, nil, err + } + var ( num = int(cfg.GetNum()) fnum int