diff --git a/pkg/logql/blocker.go b/pkg/logql/blocker.go index 248ba708db3..df4614d5ef7 100644 --- a/pkg/logql/blocker.go +++ b/pkg/logql/blocker.go @@ -43,6 +43,9 @@ func (qb *queryBlocker) isBlocked(ctx context.Context, tenant string) bool { logger := log.With(qb.logger, "user", tenant, "type", typ) for _, b := range blocks { + if b == nil { + continue + } if b.Hash > 0 { if b.Hash == util.HashedQuery(query) { diff --git a/pkg/logql/blocker_test.go b/pkg/logql/blocker_test.go index b3805e6d370..bea15a02494 100644 --- a/pkg/logql/blocker_test.go +++ b/pkg/logql/blocker_test.go @@ -28,6 +28,12 @@ func TestEngine_ExecWithBlockedQueries(t *testing.T) { blocked []*validation.BlockedQuery expectedErr error }{ + { + name: "edge case: slice contains nil value", + q: defaultQuery, + blocked: []*validation.BlockedQuery{nil}, + expectedErr: nil, + }, { "exact match all types", defaultQuery, []*validation.BlockedQuery{