Skip to content

Commit 3fc9e64

Browse files
saswatamcodecincinnatsimonpasquierharry671003
authored andcommitted
Cut patch release v0.36.1 (thanos-io#7636)
* Proxy: Query goroutine leak when `store.response-timeout` is set (thanos-io#7618) time.AfterFunc() returns a time.Timer object whose C field is nil, accroding to the documentation. A goroutine blocks forever on reading from a `nil` channel, leading to a goroutine leak on random slow queries. Signed-off-by: Mikhail Nozdrachev <[email protected]> * pkg/clientconfig: fix TLS configs with only CA (thanos-io#7634) 065e3dd introduced a regression: TLS configurations for Thanos Ruler query and alerting with only a CA file failed to load. For instance, the following snippet is a valid query configuration: ``` - static_configs: - prometheus.example.com:9090 scheme: https http_config: tls_config: ca_file: /etc/ssl/cert.pem ``` The test fixtures (CA, certificate and key files) are copied from prometheus/common and are valid until 2072. Signed-off-by: Simon Pasquier <[email protected]> * Cut patch release v0.36.1 Signed-off-by: Saswata Mukherjee <[email protected]> * Fix failing e2e test (thanos-io#7620) Signed-off-by: 🌲 Harry 🌊 John 🏔 <[email protected]> Signed-off-by: Saswata Mukherjee <[email protected]> --------- Signed-off-by: Mikhail Nozdrachev <[email protected]> Signed-off-by: Simon Pasquier <[email protected]> Signed-off-by: Saswata Mukherjee <[email protected]> Signed-off-by: 🌲 Harry 🌊 John 🏔 <[email protected]> Co-authored-by: Mikhail Nozdrachev <[email protected]> Co-authored-by: Simon Pasquier <[email protected]> Co-authored-by: Harry John <[email protected]>
1 parent 6ec898b commit 3fc9e64

File tree

10 files changed

+272
-17
lines changed

10 files changed

+272
-17
lines changed

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.36.0
1+
0.36.1

cmd/thanos/rule.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ func runRule(
325325
if len(conf.queryConfigYAML) > 0 {
326326
queryCfg, err = clientconfig.LoadConfigs(conf.queryConfigYAML)
327327
if err != nil {
328-
return err
328+
return errors.Wrap(err, "query configuration")
329329
}
330330
} else {
331331
queryCfg, err = clientconfig.BuildConfigFromHTTPAddresses(conf.query.addrs)
@@ -382,12 +382,12 @@ func runRule(
382382
cfg.HTTPConfig.HTTPClientConfig.ClientMetrics = queryClientMetrics
383383
c, err := clientconfig.NewHTTPClient(cfg.HTTPConfig.HTTPClientConfig, "query")
384384
if err != nil {
385-
return err
385+
return fmt.Errorf("failed to create HTTP query client: %w", err)
386386
}
387387
c.Transport = tracing.HTTPTripperware(logger, c.Transport)
388388
queryClient, err := clientconfig.NewClient(logger, cfg.HTTPConfig.EndpointsConfig, c, queryProvider.Clone())
389389
if err != nil {
390-
return err
390+
return fmt.Errorf("failed to create query client: %w", err)
391391
}
392392
queryClients = append(queryClients, queryClient)
393393
promClients = append(promClients, promclient.NewClient(queryClient, logger, "thanos-rule"))

pkg/clientconfig/http.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -199,11 +199,18 @@ func NewRoundTripperFromConfig(cfg config_util.HTTPClientConfig, transportConfig
199199
return newRT(tlsConfig)
200200
}
201201

202-
return config_util.NewTLSRoundTripper(tlsConfig, config_util.TLSRoundTripperSettings{
203-
CA: config_util.NewFileSecret(cfg.TLSConfig.CAFile),
204-
Cert: config_util.NewFileSecret(cfg.TLSConfig.CertFile),
205-
Key: config_util.NewFileSecret(cfg.TLSConfig.KeyFile),
206-
}, newRT)
202+
rtConfig := config_util.TLSRoundTripperSettings{
203+
Cert: config_util.NewFileSecret(cfg.TLSConfig.CAFile),
204+
}
205+
if len(cfg.TLSConfig.CertFile) > 0 {
206+
rtConfig.Cert = config_util.NewFileSecret(cfg.TLSConfig.CertFile)
207+
}
208+
209+
if len(cfg.TLSConfig.KeyFile) > 0 {
210+
rtConfig.Key = config_util.NewFileSecret(cfg.TLSConfig.KeyFile)
211+
}
212+
213+
return config_util.NewTLSRoundTripper(tlsConfig, rtConfig, newRT)
207214
}
208215

209216
// NewHTTPClient returns a new HTTP client.

pkg/clientconfig/http_test.go

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
// Copyright (c) The Thanos Authors.
2+
// Licensed under the Apache License 2.0.
3+
4+
package clientconfig
5+
6+
import (
7+
"testing"
8+
9+
"github.com/efficientgo/core/testutil"
10+
)
11+
12+
func TestNewHTTPClientConfigFromYAML(t *testing.T) {
13+
for _, tc := range []struct {
14+
desc string
15+
cfg HTTPClientConfig
16+
err bool
17+
}{
18+
{
19+
desc: "empty string",
20+
cfg: HTTPClientConfig{},
21+
err: false,
22+
},
23+
{
24+
desc: "missing CA file",
25+
cfg: HTTPClientConfig{
26+
TLSConfig: TLSConfig{
27+
CAFile: "xxx",
28+
},
29+
},
30+
err: true,
31+
},
32+
{
33+
desc: "invalid CA file",
34+
cfg: HTTPClientConfig{
35+
TLSConfig: TLSConfig{
36+
CAFile: "testdata/invalid.pem",
37+
},
38+
},
39+
err: true,
40+
},
41+
{
42+
desc: "valid CA file",
43+
cfg: HTTPClientConfig{
44+
TLSConfig: TLSConfig{
45+
CAFile: "testdata/tls-ca-chain.pem",
46+
},
47+
},
48+
err: false,
49+
},
50+
{
51+
desc: "invalid cert file",
52+
cfg: HTTPClientConfig{
53+
TLSConfig: TLSConfig{
54+
CAFile: "testdata/tls-ca-chain.pem",
55+
CertFile: "testdata/invalid.pem",
56+
KeyFile: "testdata/self-signed-client.key",
57+
},
58+
},
59+
err: true,
60+
},
61+
{
62+
desc: "invalid key file",
63+
cfg: HTTPClientConfig{
64+
TLSConfig: TLSConfig{
65+
CAFile: "testdata/tls-ca-chain.pem",
66+
CertFile: "testdata/self-signed-client.crt",
67+
KeyFile: "testdata/invalid.pem",
68+
},
69+
},
70+
err: true,
71+
},
72+
{
73+
desc: "valid CA, cert and key files",
74+
cfg: HTTPClientConfig{
75+
TLSConfig: TLSConfig{
76+
CAFile: "testdata/tls-ca-chain.pem",
77+
CertFile: "testdata/self-signed-client.crt",
78+
KeyFile: "testdata/self-signed-client.key",
79+
},
80+
},
81+
err: false,
82+
},
83+
} {
84+
t.Run(tc.desc, func(t *testing.T) {
85+
_, err := NewHTTPClient(tc.cfg, "")
86+
if tc.err {
87+
t.Logf("err: %v", err)
88+
testutil.NotOk(t, err)
89+
return
90+
}
91+
92+
testutil.Ok(t, err)
93+
})
94+
}
95+
}

pkg/clientconfig/testdata/invalid.pem

Whitespace-only changes.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIFLjCCAxagAwIBAgIRAMMSh5NoexSCjSvDRf1fpgUwDQYJKoZIhvcNAQELBQAw
3+
NjELMAkGA1UEBhMCVVMxEzARBgNVBAoTClByb21ldGhldXMxEjAQBgNVBAMTCWxv
4+
Y2FsaG9zdDAgFw0yMjA3MDgwOTE1MDlaGA8yMDcyMDYyNTA5MTUwOVowNjELMAkG
5+
A1UEBhMCVVMxEzARBgNVBAoTClByb21ldGhldXMxEjAQBgNVBAMTCWxvY2FsaG9z
6+
dDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALtrXxnHr7eUM7Xh7awY
7+
LwompmuznbTa/8+OsihSaelUN6RDsAdm7eOMA7KMqZB5NOfeDqEqMIUoaoQ1gzIm
8+
0BJ4dCgi99SnA8b0MjAGqUpRJ3gLLSXsPa5647gxUSP5zQ0hWMMgGaw4rJ9LDOtU
9+
z2S8dtqKTHrXl34mpdsLrZyLXwyz8UJ83Jq2Ngx4cApZrbs+g1XlMRV8Vh89Z2bk
10+
bbKmDYmIOhTeE1wLdrZ/XecEOvkGZcj3bWiO/yTnP8mTER2hTvSxUrpyHn/55LkU
11+
8PR6wCO7hntZ9LLWxg85XTRdWL7cIyjgJgfL9+hVQQyNEjWC2+LTq1QExqa+IxoH
12+
iL4xX/1y+6o1W5XKLf/uplgaWuSK+mjQeqc387DwYbj61QWOjCoaJA1wl6RHuGGV
13+
6ygpdAO1l8o+2U8nuULHW5lx+1BtMG5ytAXy9dWPercs5L8gh1IRNCVXWKsQCCWg
14+
iG67nErFV5iRFLuAIX7ixLKJ5MGp/fVKUI9V1EViM2GUU46PVAPhhlZ1qcygjbZ5
15+
CelBnQ/XvGof5b4zm4eEgCc0ZkqsQDeS5jPjTtES8/y5WEKqbyijmvx2P40nuO/d
16+
aTxNretMwaptWzu+WXHih0WG2Sq85m41070xsIMEwlqSfdiOOPdax6393NJgkdM7
17+
5NKC3+pzcHK1S1+x/Guawv0NAgMBAAGjNTAzMA4GA1UdDwEB/wQEAwIFIDATBgNV
18+
HSUEDDAKBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IC
19+
AQBTLnU8jFCmYpPUBOqj/xzBqokiQK92axG/h/3JgB7fFSLzUCV3NtvwBVCU28rA
20+
wHwBYPjmGhi1vyHha/hb6V2WMPt0jhMRpNxCf16dAMoyIoWNas88vU2Mef90Chfj
21+
8e6wLtzqAquX/ruwIfsOMnbcSGuh+y54DspCXgsTZ9cnCI2lnQroXZi4WUqi3Enj
22+
mFPpVc+mMlffGW6LISo3ehRLA7k3/01yJhqzpTQw44k9ZfJ7VXZTRJKJsaqeljzV
23+
VfzDbDfW8ftbZ8IWQGAOQfTa23aHIYcvJfvyxpfQRyrwRxjGytLHoOH/G+1TZuOt
24+
KBJ2Xdi9qrr+Wep4eNJm2cTBd1Fpr0hWZ9K27BwwYdZZF8Eu8eP8hSeRmA4PqzAj
25+
HauCl8PgWJIWzMloXVZaGxiYX7sGVs79m/Yl9A6+p8RTpK7DVB9+sDIiD2bhiZqL
26+
i9YWM8aD2cR20t2ZkuBBPlVTOouF/WotOWrLhT4J+SngkdmLkAjP/5jPFvpTfeGi
27+
THyAmp4gigwaM0nIZskPcPCbkk+zFYPToyS49ZJwQMzqK2hkjyQ9LyzUdo9vlDjL
28+
8lFjlUZzqaR0DF3pbf8fs5/16gPurR65SU/ebOs+uxZLYJrP2zKmeISE+q4AMudc
29+
rQ0Z6KmGUiXnIvpB105UJ7jlXCxbsruc8gRTbjkgW7yoXg==
30+
-----END CERTIFICATE-----
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
-----BEGIN PRIVATE KEY-----
2+
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
51+
vOJ7/LvbOa8BlIMsprB2rz3PDSUSaIw=
52+
-----END PRIVATE KEY-----
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
-----BEGIN CERTIFICATE-----
2+
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
33+
0ig2QvMFWMw=
34+
-----END CERTIFICATE-----
35+
-----BEGIN CERTIFICATE-----
36+
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
66+
aOK9l5wSyyqPfkHybKvT6z9pqWUchJsz
67+
-----END CERTIFICATE-----

pkg/store/proxy_merge.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,9 @@ func newLazyRespSet(
385385
var rerr error
386386
// If timer is already stopped
387387
if t != nil && !t.Stop() {
388-
<-t.C // Drain the channel if it was already stopped.
388+
if t.C != nil {
389+
<-t.C // Drain the channel if it was already stopped.
390+
}
389391
rerr = errors.Wrapf(err, "failed to receive any data in %s from %s", l.frameTimeout, st)
390392
} else {
391393
rerr = errors.Wrapf(err, "receive series from %s", st)
@@ -643,7 +645,9 @@ func newEagerRespSet(
643645
var rerr error
644646
// If timer is already stopped
645647
if t != nil && !t.Stop() {
646-
<-t.C // Drain the channel if it was already stopped.
648+
if t.C != nil {
649+
<-t.C // Drain the channel if it was already stopped.
650+
}
647651
rerr = errors.Wrapf(err, "failed to receive any data in %s from %s", l.frameTimeout, storeName)
648652
} else {
649653
rerr = errors.Wrapf(err, "receive series from %s", storeName)

test/e2e/receive_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -848,9 +848,9 @@ test_metric{a="2", b="2"} 1`)
848848
e2ethanos.AvalancheOptions{
849849
MetricCount: "10",
850850
SeriesCount: "1",
851-
MetricInterval: "30",
852-
SeriesInterval: "3600",
853-
ValueInterval: "3600",
851+
MetricInterval: "3600",
852+
SeriesInterval: "30",
853+
ValueInterval: "30",
854854

855855
RemoteURL: e2ethanos.RemoteWriteEndpoint(ingestor1.InternalEndpoint("remote-write")),
856856
RemoteWriteInterval: "30s",
@@ -886,9 +886,9 @@ test_metric{a="2", b="2"} 1`)
886886
e2ethanos.AvalancheOptions{
887887
MetricCount: "10",
888888
SeriesCount: "1",
889-
MetricInterval: "30",
890-
SeriesInterval: "3600",
891-
ValueInterval: "3600",
889+
MetricInterval: "3600",
890+
SeriesInterval: "30",
891+
ValueInterval: "30",
892892

893893
RemoteURL: e2ethanos.RemoteWriteEndpoint(ingestor1.InternalEndpoint("remote-write")),
894894
RemoteWriteInterval: "30s",

0 commit comments

Comments
 (0)