Skip to content
This repository was archived by the owner on Jul 19, 2023. It is now read-only.

Commit b9491b7

Browse files
authored
Merge pull request #361 from grafana/phone-home-race
Removes the use of pointer for the usagestats package
2 parents 6830eb1 + 6f15638 commit b9491b7

File tree

5 files changed

+20
-20
lines changed

5 files changed

+20
-20
lines changed

pkg/usagestats/reporter.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ type Reporter struct {
5858

5959
conf Config
6060
kvConfig kv.Config
61-
cluster *ClusterSeed
61+
cluster ClusterSeed
6262
lastReport time.Time
6363
}
6464

@@ -77,11 +77,11 @@ func NewReporter(config Config, kvConfig kv.Config, objectClient phlareobjstore.
7777
return r, nil
7878
}
7979

80-
func (rep *Reporter) initLeader(ctx context.Context) *ClusterSeed {
80+
func (rep *Reporter) initLeader(ctx context.Context) ClusterSeed {
8181
kvClient, err := kv.NewClient(rep.kvConfig, JSONCodec, nil, rep.logger)
8282
if err != nil {
8383
level.Info(rep.logger).Log("msg", "failed to create kv client", "err", err)
84-
return nil
84+
return ClusterSeed{}
8585
}
8686
// Try to become leader via the kv client
8787
backoff := backoff.New(ctx, backoff.Config{
@@ -126,14 +126,14 @@ func (rep *Reporter) initLeader(ctx context.Context) *ClusterSeed {
126126
backoff.Wait()
127127
continue
128128
}
129-
return &seed
129+
return seed
130130
}
131131
backoff.Wait()
132132
continue
133133
}
134134
return remoteSeed
135135
}
136-
return nil
136+
return ClusterSeed{}
137137
}
138138

139139
// ensureStableKey ensures that the cluster seed is stable for at least 30seconds.
@@ -182,7 +182,7 @@ func (rep *Reporter) init(ctx context.Context) {
182182

183183
// fetchSeed fetches the cluster seed from the object store and try until it succeeds.
184184
// continueFn allow you to decide if we should continue retrying. Nil means always retry
185-
func (rep *Reporter) fetchSeed(ctx context.Context, continueFn func(err error) bool) (*ClusterSeed, error) {
185+
func (rep *Reporter) fetchSeed(ctx context.Context, continueFn func(err error) bool) (ClusterSeed, error) {
186186
var (
187187
backoff = backoff.New(ctx, backoff.Config{
188188
MinBackoff: time.Second,
@@ -208,21 +208,21 @@ func (rep *Reporter) fetchSeed(ctx context.Context, continueFn func(err error) b
208208
backoff.Wait()
209209
continue
210210
}
211-
return nil, err
211+
return ClusterSeed{}, err
212212
}
213213
return seed, nil
214214
}
215-
return nil, backoff.Err()
215+
return ClusterSeed{}, backoff.Err()
216216
}
217217

218218
// readSeedFile reads the cluster seed file from the object store.
219-
func (rep *Reporter) readSeedFile(ctx context.Context) (*ClusterSeed, error) {
219+
func (rep *Reporter) readSeedFile(ctx context.Context) (ClusterSeed, error) {
220220
reader, err := rep.bucket.Get(ctx, ClusterSeedFileName)
221221
if err != nil {
222-
return nil, err
222+
return ClusterSeed{}, err
223223
}
224224
if err != nil {
225-
return nil, err
225+
return ClusterSeed{}, err
226226
}
227227
defer func() {
228228
if err := reader.Close(); err != nil {
@@ -231,13 +231,13 @@ func (rep *Reporter) readSeedFile(ctx context.Context) (*ClusterSeed, error) {
231231
}()
232232
data, err := io.ReadAll(reader)
233233
if err != nil {
234-
return nil, err
234+
return ClusterSeed{}, err
235235
}
236236
seed, err := JSONCodec.Decode(data)
237237
if err != nil {
238-
return nil, err
238+
return ClusterSeed{}, err
239239
}
240-
return seed.(*ClusterSeed), nil
240+
return *(seed.(*ClusterSeed)), nil
241241
}
242242

243243
// writeSeedFile writes the cluster seed to the object store.
@@ -253,7 +253,7 @@ func (rep *Reporter) writeSeedFile(ctx context.Context, seed ClusterSeed) error
253253
func (rep *Reporter) running(ctx context.Context) error {
254254
rep.init(ctx)
255255

256-
if rep.cluster == nil {
256+
if rep.cluster.UID == "" {
257257
<-ctx.Done()
258258
if err := ctx.Err(); !errors.Is(err, context.Canceled) {
259259
return err

pkg/usagestats/reporter_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
func Test_LeaderElection(t *testing.T) {
2222
stabilityCheckInterval = 100 * time.Millisecond
2323

24-
result := make(chan *ClusterSeed, 10)
24+
result := make(chan ClusterSeed, 10)
2525
objectClient, err := client.NewBucket(context.Background(), client.Config{
2626
StorageBackendConfig: client.StorageBackendConfig{
2727
Backend: client.Filesystem,

pkg/usagestats/seed_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func Test_Memberlist(t *testing.T) {
7070
},
7171
}, "test")
7272
require.NoError(t, err)
73-
result := make(chan *ClusterSeed, 10)
73+
result := make(chan ClusterSeed, 10)
7474

7575
// create a first memberlist to get a valid listening port.
7676
initMKV := createMemberlist(t, 0, -1)

pkg/usagestats/stats.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ type Report struct {
4545
}
4646

4747
// sendReport sends the report to the stats server
48-
func sendReport(ctx context.Context, seed *ClusterSeed, interval time.Time) error {
48+
func sendReport(ctx context.Context, seed ClusterSeed, interval time.Time) error {
4949
report := buildReport(seed, interval)
5050
out, err := jsoniter.MarshalIndent(report, "", " ")
5151
if err != nil {
@@ -72,7 +72,7 @@ func sendReport(ctx context.Context, seed *ClusterSeed, interval time.Time) erro
7272
}
7373

7474
// buildReport builds the report to be sent to the stats server
75-
func buildReport(seed *ClusterSeed, interval time.Time) Report {
75+
func buildReport(seed ClusterSeed, interval time.Time) Report {
7676
var (
7777
targetName string
7878
editionName string

pkg/usagestats/stats_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515

1616
func Test_BuildReport(t *testing.T) {
1717
now := time.Now()
18-
seed := &ClusterSeed{
18+
seed := ClusterSeed{
1919
UID: uuid.New().String(),
2020
CreatedAt: now,
2121
}

0 commit comments

Comments
 (0)