Skip to content

Commit b43907e

Browse files
committed
Remove flag and make it default behaviour
Signed-off-by: Kevin Hellemun <17928966+OGKevin@users.noreply.github.com>
1 parent 76b5263 commit b43907e

File tree

7 files changed

+18
-34
lines changed

7 files changed

+18
-34
lines changed

cmd/thanos/query.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -261,11 +261,10 @@ func runQuery(
261261
}
262262

263263
fileSDCache := cache.New()
264-
dnsStoreProvider := dns.NewProviderWithReturnOnErrorIfNotFound(
264+
dnsStoreProvider := dns.NewProvider(
265265
logger,
266266
extprom.WrapRegistererWithPrefix("thanos_querier_store_apis_", reg),
267267
dns.ResolverType(dnsSDResolver),
268-
true,
269268
)
270269

271270
for _, store := range strictStores {
@@ -274,11 +273,10 @@ func runQuery(
274273
}
275274
}
276275

277-
dnsRuleProvider := dns.NewProviderWithReturnOnErrorIfNotFound(
276+
dnsRuleProvider := dns.NewProvider(
278277
logger,
279278
extprom.WrapRegistererWithPrefix("thanos_querier_rule_apis_", reg),
280279
dns.ResolverType(dnsSDResolver),
281-
true,
282280
)
283281

284282
var (

cmd/thanos/rule.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -334,11 +334,10 @@ func runRule(
334334
}
335335
}
336336

337-
queryProvider := dns.NewProviderWithReturnOnErrorIfNotFound(
337+
queryProvider := dns.NewProvider(
338338
logger,
339339
extprom.WrapRegistererWithPrefix("thanos_ruler_query_apis_", reg),
340340
dns.ResolverType(dnsSDResolver),
341-
true,
342341
)
343342
var queryClients []*http_util.Client
344343
for _, cfg := range queryCfg {
@@ -398,11 +397,10 @@ func runRule(
398397
level.Warn(logger).Log("msg", "no alertmanager configured")
399398
}
400399

401-
amProvider := dns.NewProviderWithReturnOnErrorIfNotFound(
400+
amProvider := dns.NewProvider(
402401
logger,
403402
extprom.WrapRegistererWithPrefix("thanos_ruler_alertmanagers_", reg),
404403
dns.ResolverType(dnsSDResolver),
405-
false,
406404
)
407405
var alertmgrs []*alert.Alertmanager
408406
for _, cfg := range alertingCfg.Alertmanagers {

pkg/cacheutil/memcached_client.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,11 +215,10 @@ func newMemcachedClient(
215215
config MemcachedClientConfig,
216216
reg prometheus.Registerer,
217217
) (*memcachedClient, error) {
218-
dnsProvider := dns.NewProviderWithReturnOnErrorIfNotFound(
218+
dnsProvider := dns.NewProvider(
219219
logger,
220220
extprom.WrapRegistererWithPrefix("thanos_memcached_", reg),
221221
dns.GolangResolverType,
222-
true,
223222
)
224223

225224
c := &memcachedClient{

pkg/discovery/dns/provider.go

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,20 +53,12 @@ func (t ResolverType) ToResolver(logger log.Logger) ipLookupResolver {
5353
return r
5454
}
5555

56-
// Deprecated. Use NewProviderWithReturnOnErrorIfNotFound instead.
57-
//
5856
// NewProvider returns a new empty provider with a given resolver type.
5957
// If empty resolver type is net.DefaultResolver.
6058
// TODO(OGKevin): Refactor code to use new method and eventually rename NewProviderWithReturnOnErrorIfNotFound back to NewProvider.
6159
func NewProvider(logger log.Logger, reg prometheus.Registerer, resolverType ResolverType) *Provider {
62-
return NewProviderWithReturnOnErrorIfNotFound(logger, reg, resolverType, true)
63-
}
64-
65-
// NewProviderWithReturnOnErrorIfNotFound returns a new empty provider with a given resolver type.
66-
// If empty resolver type is net.DefaultResolver.
67-
func NewProviderWithReturnOnErrorIfNotFound(logger log.Logger, reg prometheus.Registerer, resolverType ResolverType, returnErrOnNotFound bool) *Provider {
6860
p := &Provider{
69-
resolver: NewResolver(resolverType.ToResolver(logger), logger, returnErrOnNotFound),
61+
resolver: NewResolver(resolverType.ToResolver(logger), logger),
7062
resolved: make(map[string][]string),
7163
logger: logger,
7264
resolverAddrs: extprom.NewTxGaugeVec(reg, prometheus.GaugeOpts{

pkg/discovery/dns/provider_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func TestProvider(t *testing.T) {
2222
"127.0.0.5:19095",
2323
}
2424

25-
prv := NewProviderWithReturnOnErrorIfNotFound(log.NewNopLogger(), nil, "", true)
25+
prv := NewProvider(log.NewNopLogger(), nil, "")
2626
prv.resolver = &mockResolver{
2727
res: map[string][]string{
2828
"a": ips[:2],

pkg/discovery/dns/resolver.go

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,11 @@ type ipLookupResolver interface {
4242
type dnsSD struct {
4343
resolver ipLookupResolver
4444
logger log.Logger
45-
// https://github.com/thanos-io/thanos/issues/3186
46-
// This flag is used to prevent components from crashing if hosts are not found.
47-
returnErrOnNotFound bool
4845
}
4946

5047
// NewResolver creates a resolver with given underlying resolver.
51-
func NewResolver(resolver ipLookupResolver, logger log.Logger, returnErrOnNotFound bool) Resolver {
52-
return &dnsSD{resolver: resolver, logger: logger, returnErrOnNotFound: returnErrOnNotFound}
48+
func NewResolver(resolver ipLookupResolver, logger log.Logger) Resolver {
49+
return &dnsSD{resolver: resolver, logger: logger}
5350
}
5451

5552
func (s *dnsSD) Resolve(ctx context.Context, name string, qtype QType) ([]string, error) {
@@ -78,13 +75,15 @@ func (s *dnsSD) Resolve(ctx context.Context, name string, qtype QType) ([]string
7875
}
7976
ips, err := s.resolver.LookupIPAddr(ctx, host)
8077
if err != nil {
81-
// https://github.com/thanos-io/thanos/issues/3186
82-
// Default DNS resolver can make thanos components crash if DNS resolutions results in EAI_NONAME.
83-
// the flag returnErrOnNotFound can be used to prevent such crash.
84-
if dnsErr, ok := err.(*net.DNSError); !ok || !dnsErr.IsNotFound || s.returnErrOnNotFound {
78+
// We exclude error from std Golang resolver for the case of the domain (e.g `NXDOMAIN`) not being found by DNS
79+
// server. Since `miekg` does not consider this as an error, when the host cannot be found, empty slice will be
80+
// returned.
81+
if dnsErr, ok := err.(*net.DNSError); !ok || !dnsErr.IsNotFound {
8582
return nil, errors.Wrapf(err, "lookup IP addresses %q", host)
8683
}
87-
level.Error(s.logger).Log("msg", "failed to lookup IP addresses", "host", host, "err", err)
84+
if ips == nil {
85+
level.Error(s.logger).Log("msg", "failed to lookup IP addresses", "host", host, "err", err)
86+
}
8887
}
8988
for _, ip := range ips {
9089
res = append(res, appendScheme(scheme, net.JoinHostPort(ip.String(), port)))
@@ -119,10 +118,8 @@ func (s *dnsSD) Resolve(ctx context.Context, name string, qtype QType) ([]string
119118
return nil, errors.Errorf("invalid lookup scheme %q", qtype)
120119
}
121120

122-
// https://github.com/thanos-io/thanos/issues/3186
123-
// This happens when miekg is used as resolver. When the host cannot be found, nothing is returned.
124121
if res == nil && err == nil {
125-
level.Warn(s.logger).Log("msg", "IP address lookup yielded no results nor errors", "host", host)
122+
level.Warn(s.logger).Log("msg", "IP address lookup yielded no results. No host found or no addresses found", "host", host)
126123
}
127124

128125
return res, nil

pkg/discovery/dns/resolver_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ func TestDnsSD_Resolve(t *testing.T) {
186186

187187
func testDnsSd(t *testing.T, tt DNSSDTest) {
188188
ctx := context.TODO()
189-
dnsSD := dnsSD{tt.resolver, log.NewNopLogger(), false}
189+
dnsSD := dnsSD{tt.resolver, log.NewNopLogger()}
190190

191191
result, err := dnsSD.Resolve(ctx, tt.addr, tt.qtype)
192192
if tt.expectedErr != nil {

0 commit comments

Comments
 (0)