Skip to content

Commit 50e4fb7

Browse files
committed
chore: enable exposedSyncMutex rule from go-critic
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
1 parent 8b2ef69 commit 50e4fb7

File tree

8 files changed

+46
-48
lines changed

8 files changed

+46
-48
lines changed

.golangci.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ linters:
5757
disabled-checks:
5858
- appendAssign
5959
- exitAfterDefer
60-
- exposedSyncMutex
6160
- hugeParam
6261
- rangeValCopy
6362
- unnamedResult

instrumentation/github.com/aws/aws-lambda-go/otellambda/lambdatest_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,22 +35,22 @@ import (
3535
var errorLogger = log.New(log.Writer(), "OTel Lambda Test Error: ", 0)
3636

3737
type mockIDGenerator struct {
38-
sync.Mutex
38+
mu sync.Mutex
3939
traceCount int
4040
spanCount int
4141
}
4242

4343
func (m *mockIDGenerator) NewIDs(context.Context) (trace.TraceID, trace.SpanID) {
44-
m.Lock()
45-
defer m.Unlock()
44+
m.mu.Lock()
45+
defer m.mu.Unlock()
4646
m.traceCount++
4747
m.spanCount++
4848
return [16]byte{byte(m.traceCount)}, [8]byte{byte(m.spanCount)}
4949
}
5050

5151
func (m *mockIDGenerator) NewSpanID(context.Context, trace.TraceID) trace.SpanID {
52-
m.Lock()
53-
defer m.Unlock()
52+
m.mu.Lock()
53+
defer m.mu.Unlock()
5454
m.spanCount++
5555
return [8]byte{byte(m.spanCount)}
5656
}

instrumentation/go.mongodb.org/mongo-driver/mongo/otelmongo/mongo.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ type spanKey struct {
2323
}
2424

2525
type monitor struct {
26-
sync.Mutex
26+
mu sync.Mutex
2727
spans map[spanKey]trace.Span
2828
cfg config
2929
semconv semconv.EventMonitor
@@ -51,9 +51,9 @@ func (m *monitor) Started(ctx context.Context, evt *event.CommandStartedEvent) {
5151
ConnectionID: evt.ConnectionID,
5252
RequestID: evt.RequestID,
5353
}
54-
m.Lock()
54+
m.mu.Lock()
5555
m.spans[key] = span
56-
m.Unlock()
56+
m.mu.Unlock()
5757
}
5858

5959
func (m *monitor) Succeeded(_ context.Context, evt *event.CommandSucceededEvent) {
@@ -69,12 +69,12 @@ func (m *monitor) Finished(evt *event.CommandFinishedEvent, err error) {
6969
ConnectionID: evt.ConnectionID,
7070
RequestID: evt.RequestID,
7171
}
72-
m.Lock()
72+
m.mu.Lock()
7373
span, ok := m.spans[key]
7474
if ok {
7575
delete(m.spans, key)
7676
}
77-
m.Unlock()
77+
m.mu.Unlock()
7878
if !ok {
7979
return
8080
}

instrumentation/go.mongodb.org/mongo-driver/v2/mongo/otelmongo/mongo.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ type spanKey struct {
2424
}
2525

2626
type monitor struct {
27-
sync.Mutex
27+
mu sync.Mutex
2828
spans map[spanKey]trace.Span
2929
cfg config
3030
}
@@ -59,9 +59,9 @@ func (m *monitor) Started(ctx context.Context, evt *event.CommandStartedEvent) {
5959
ConnectionID: evt.ConnectionID,
6060
RequestID: evt.RequestID,
6161
}
62-
m.Lock()
62+
m.mu.Lock()
6363
m.spans[key] = span
64-
m.Unlock()
64+
m.mu.Unlock()
6565
}
6666

6767
func (m *monitor) Succeeded(_ context.Context, evt *event.CommandSucceededEvent) {
@@ -77,12 +77,12 @@ func (m *monitor) Finished(evt *event.CommandFinishedEvent, err error) {
7777
ConnectionID: evt.ConnectionID,
7878
RequestID: evt.RequestID,
7979
}
80-
m.Lock()
80+
m.mu.Lock()
8181
span, ok := m.spans[key]
8282
if ok {
8383
delete(m.spans, key)
8484
}
85-
m.Unlock()
85+
m.mu.Unlock()
8686
if !ok {
8787
return
8888
}

propagators/aws/xray/idgenerator.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@ import (
1919

2020
// IDGenerator is used for generating a new traceID and spanID.
2121
type IDGenerator struct {
22-
sync.Mutex
22+
mu sync.Mutex
2323
randSource *rand.Rand
2424
}
2525

2626
var _ sdktrace.IDGenerator = &IDGenerator{}
2727

2828
// NewSpanID returns a non-zero span ID from a randomly-chosen sequence.
2929
func (gen *IDGenerator) NewSpanID(context.Context, trace.TraceID) trace.SpanID {
30-
gen.Lock()
31-
defer gen.Unlock()
30+
gen.mu.Lock()
31+
defer gen.mu.Unlock()
3232
sid := trace.SpanID{}
3333
_, _ = gen.randSource.Read(sid[:])
3434
return sid
@@ -40,8 +40,8 @@ func (gen *IDGenerator) NewSpanID(context.Context, trace.TraceID) trace.SpanID {
4040
//
4141
// span ID is from a randomly-chosen sequence.
4242
func (gen *IDGenerator) NewIDs(context.Context) (trace.TraceID, trace.SpanID) {
43-
gen.Lock()
44-
defer gen.Unlock()
43+
gen.mu.Lock()
44+
defer gen.mu.Unlock()
4545

4646
tid := trace.TraceID{}
4747
currentTime := getCurrentTimeHex()

samplers/jaegerremote/sampler.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,7 @@ func (*guaranteedThroughputProbabilisticSampler) Description() string {
209209
// perOperationSampler is a delegating sampler that applies guaranteedThroughputProbabilisticSampler
210210
// on a per-operation basis.
211211
type perOperationSampler struct {
212-
sync.RWMutex
213-
212+
mu sync.RWMutex
214213
samplers map[string]*guaranteedThroughputProbabilisticSampler
215214
defaultSampler *probabilisticSampler
216215
lowerBound float64
@@ -265,15 +264,15 @@ func (s *perOperationSampler) ShouldSample(p trace.SamplingParameters) trace.Sam
265264
}
266265

267266
func (s *perOperationSampler) getSamplerForOperation(operation string) trace.Sampler {
268-
s.RLock()
267+
s.mu.RLock()
269268
sampler, ok := s.samplers[operation]
270269
if ok {
271-
defer s.RUnlock()
270+
defer s.mu.RUnlock()
272271
return sampler
273272
}
274-
s.RUnlock()
275-
s.Lock()
276-
defer s.Unlock()
273+
s.mu.RUnlock()
274+
s.mu.Lock()
275+
defer s.mu.Unlock()
277276

278277
// Check if sampler has already been created
279278
sampler, ok = s.samplers[operation]
@@ -294,8 +293,8 @@ func (*perOperationSampler) Description() string {
294293
}
295294

296295
func (s *perOperationSampler) update(strategies *jaeger_api_v2.PerOperationSamplingStrategies) {
297-
s.Lock()
298-
defer s.Unlock()
296+
s.mu.Lock()
297+
defer s.mu.Unlock()
299298
newSamplers := map[string]*guaranteedThroughputProbabilisticSampler{}
300299
for _, strategy := range strategies.PerOperationStrategies {
301300
operation := strategy.Operation

samplers/jaegerremote/sampler_remote.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ type Sampler struct {
7272
// Cf. https://github.com/jaegertracing/jaeger-client-go/issues/155, https://pkg.go.dev/sync/atomic#pkg-note-BUG
7373
closed int64 // 0 - not closed, 1 - closed
7474

75-
sync.RWMutex // used to serialize access to samplerConfig.sampler
75+
mu sync.RWMutex // used to serialize access to samplerConfig.sampler
7676
config
7777

7878
serviceName string
@@ -98,8 +98,8 @@ func New(
9898
// ShouldSample returns a sampling choice based on the passed sampling
9999
// parameters.
100100
func (s *Sampler) ShouldSample(p trace.SamplingParameters) trace.SamplingResult {
101-
s.RLock()
102-
defer s.RUnlock()
101+
s.mu.RLock()
102+
defer s.mu.RUnlock()
103103
return s.sampler.ShouldSample(p)
104104
}
105105

@@ -143,8 +143,8 @@ func (s *Sampler) pollControllerWithTicker(ticker *time.Ticker) {
143143
}
144144

145145
func (s *Sampler) setSampler(sampler trace.Sampler) {
146-
s.Lock()
147-
defer s.Unlock()
146+
s.mu.Lock()
147+
defer s.mu.Unlock()
148148
s.sampler = sampler
149149
}
150150

@@ -162,8 +162,8 @@ func (s *Sampler) UpdateSampler() {
162162
return
163163
}
164164

165-
s.Lock()
166-
defer s.Unlock()
165+
s.mu.Lock()
166+
defer s.mu.Unlock()
167167

168168
if err := s.updateSamplerViaUpdaters(strategy); err != nil {
169169
s.logger.Error(err, "failed to handle sampling strategy response", "response", res)

zpages/spanprocessor.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -154,9 +154,9 @@ func (ssm *SpanProcessor) spansByLatency(name string, latencyBucketIndex int) []
154154
// It contains sample of spans for error requests (status code is codes.Error);
155155
// and a sample of spans for successful requests, bucketed by latency.
156156
type sampleStore struct {
157-
sync.Mutex // protects everything below.
158-
latency []*bucket
159-
errors *bucket
157+
mu sync.Mutex // protects everything below.
158+
latency []*bucket
159+
errors *bucket
160160
}
161161

162162
// newSampleStore creates a sampleStore.
@@ -172,8 +172,8 @@ func newSampleStore(latencyBucketSize, errorBucketSize uint) *sampleStore {
172172
}
173173

174174
func (ss *sampleStore) perMethodSummary() *perMethodSummary {
175-
ss.Lock()
176-
defer ss.Unlock()
175+
ss.mu.Lock()
176+
defer ss.mu.Unlock()
177177
p := &perMethodSummary{}
178178
p.errorSpans = ss.errors.len()
179179
for _, b := range ss.latency {
@@ -183,26 +183,26 @@ func (ss *sampleStore) perMethodSummary() *perMethodSummary {
183183
}
184184

185185
func (ss *sampleStore) spansByLatency(latencyBucketIndex int) []sdktrace.ReadOnlySpan {
186-
ss.Lock()
187-
defer ss.Unlock()
186+
ss.mu.Lock()
187+
defer ss.mu.Unlock()
188188
if latencyBucketIndex < 0 || latencyBucketIndex >= len(ss.latency) {
189189
return nil
190190
}
191191
return ss.latency[latencyBucketIndex].spans()
192192
}
193193

194194
func (ss *sampleStore) errorSpans() []sdktrace.ReadOnlySpan {
195-
ss.Lock()
196-
defer ss.Unlock()
195+
ss.mu.Lock()
196+
defer ss.mu.Unlock()
197197
return ss.errors.spans()
198198
}
199199

200200
// sampleSpan removes adds to the corresponding latency or error bucket.
201201
func (ss *sampleStore) sampleSpan(span sdktrace.ReadOnlySpan) {
202202
code := span.Status().Code
203203

204-
ss.Lock()
205-
defer ss.Unlock()
204+
ss.mu.Lock()
205+
defer ss.mu.Unlock()
206206
if code == codes.Error {
207207
ss.errors.add(span)
208208
return

0 commit comments

Comments
 (0)