diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f397cc446..a404b0654d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -66,6 +66,7 @@ * [BUGFIX] Querier: Fix flake in integration tests TestQuerierWithStoreGatewayDataBytesLimits and TestQuerierWithBlocksStorageLimits by waiting for the querier to see the store-gateway ACTIVE in the ring before querying. #7614 * [BUGFIX] Ruler: Register xfunctions (xincrease, xrate, xdelta) in the global parser before loading rule files. #7621 * [BUGFIX] Security: Reject empty entries in `-distributor.sign-write-requests-keys` caused by stray or trailing commas (e.g. `newkey,`). Previously these were silently accepted and produced an empty signing key, which downgraded HMAC stream-push authentication to a forgeable signature. Misconfigured flags now fail at process startup; audit your configs before upgrading. #7587 +* [BUGFIX] Querier: Fix parquet queryable fallback returning a nil error instead of the actual query error in `LabelValues` and `LabelNames`. #7638 ## 1.21.0 2026-04-24 diff --git a/pkg/querier/parquet_queryable.go b/pkg/querier/parquet_queryable.go index 33eba95061..d7659b95e7 100644 --- a/pkg/querier/parquet_queryable.go +++ b/pkg/querier/parquet_queryable.go @@ -408,7 +408,7 @@ func (q *parquetQuerierWithFallback) LabelValues(ctx context.Context, name strin if len(parquet) > 0 { res, ann, qErr := q.parquetQuerier.LabelValues(InjectBlocksIntoContext(ctx, parquet...), name, hints, matchers...) if qErr != nil { - return nil, nil, err + return nil, nil, qErr } result = res rAnnotations = ann @@ -417,7 +417,7 @@ func (q *parquetQuerierWithFallback) LabelValues(ctx context.Context, name strin if len(remaining) > 0 { res, ann, qErr := q.blocksStoreQuerier.LabelValues(InjectBlocksIntoContext(ctx, remaining...), name, hints, matchers...) if qErr != nil { - return nil, nil, err + return nil, nil, qErr } if len(result) == 0 { @@ -462,7 +462,7 @@ func (q *parquetQuerierWithFallback) LabelNames(ctx context.Context, hints *stor if len(parquet) > 0 { res, ann, qErr := q.parquetQuerier.LabelNames(InjectBlocksIntoContext(ctx, parquet...), hints, matchers...) if qErr != nil { - return nil, nil, err + return nil, nil, qErr } result = res rAnnotations = ann @@ -471,7 +471,7 @@ func (q *parquetQuerierWithFallback) LabelNames(ctx context.Context, hints *stor if len(remaining) > 0 { res, ann, qErr := q.blocksStoreQuerier.LabelNames(InjectBlocksIntoContext(ctx, remaining...), hints, matchers...) if qErr != nil { - return nil, nil, err + return nil, nil, qErr } if len(result) == 0 {