Skip to content

Commit

Permalink
Store: Don't error when no stores are matched
Browse files Browse the repository at this point in the history
It's normal and not an error if a query does not match due to no
downstream stores. This is common when querying with external labels and
tiered query servers.

This bug was introduced in #5296

Fixes: #5862

Signed-off-by: SuperQ <superq@gmail.com>
  • Loading branch information
SuperQ committed Jan 29, 2023
1 parent 1b12ab9 commit fe4c3e2
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Expand Up @@ -27,6 +27,7 @@ We use *breaking :warning:* to mark changes that are not backward compatible (re
- [#6050](https://github.com/thanos-io/thanos/pull/6050) Store: Re-try bucket store initial sync upon failure.
- [#6066](https://github.com/thanos-io/thanos/pull/6066) Tracing: fixed panic because of nil sampler
- [#6067](https://github.com/thanos-io/thanos/pull/6067) Receive: fixed panic when querying uninitialized TSDBs.
- [#6082](https://github.com/thanos-io/thanos/pull/6082) Store: Don't error when no stores are matched.

### Changed

Expand Down
11 changes: 5 additions & 6 deletions pkg/store/proxy.go
Expand Up @@ -35,6 +35,10 @@ type ctxKey int
// StoreMatcherKey is the context key for the store's allow list.
const StoreMatcherKey = ctxKey(0)

// NoStoresMatchedError is returned if the query does match any data.
// This can happen with Query servers trees and external labels
var NoStoresMatchedError = errors.New("No StoreAPIs matched for this query")

// Client holds meta information about a store.
type Client interface {
// StoreClient to access the store.
Expand Down Expand Up @@ -278,12 +282,7 @@ func (s *ProxyStore) Series(originalRequest *storepb.SeriesRequest, srv storepb.
}

if len(stores) == 0 {
err := errors.New("No StoreAPIs matched for this query")
level.Debug(reqLogger).Log("err", err, "stores", strings.Join(storeDebugMsgs, ";"))
if sendErr := srv.Send(storepb.NewWarnSeriesResponse(err)); sendErr != nil {
level.Error(reqLogger).Log("err", sendErr)
return status.Error(codes.Unknown, errors.Wrap(sendErr, "send series response").Error())
}
level.Debug(reqLogger).Log("err", NoStoresMatchedError, "stores", strings.Join(storeDebugMsgs, ";"))
return nil
}

Expand Down

0 comments on commit fe4c3e2

Please sign in to comment.