diff --git a/CHANGELOG.md b/CHANGELOG.md index 897a1a8bf4..af617232f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -71,6 +71,7 @@ * [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 panic due to request tracker truncating multi-byte UTF-8 character #7640 * [BUGFIX] Ingester: Fix panic (`HistogramProtoToHistogram called with a float histogram`) when ingesting a float native histogram with a zero count (e.g. a staleness marker or empty histogram). The decoder is now selected by histogram type via `IsFloatHistogram()` instead of by count value. #7645 +* [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 {