Skip to content

Commit 66ffc00

Browse files
authored
Merge pull request #1468 from ydb-platform/fix-cincurrent-map-writes
Fix concurrent map writes in metrics
2 parents e582517 + 4f959f2 commit 66ffc00

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
* Fixed concurrent map writes in metrics
12
* Renamed method at experimental API reader.PopBatchTx to reader.PopMessagesBatchTx
23

34
## v3.80.5

metrics/driver.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package metrics
22

33
import (
44
"strconv"
5+
"sync"
56

67
"github.com/ydb-platform/ydb-go-sdk/v3/internal/repeater"
78
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
@@ -26,6 +27,7 @@ func driver(config Config) (t trace.Driver) {
2627
az string
2728
}
2829
knownEndpoints := make(map[endpointKey]struct{})
30+
endpointsMu := sync.RWMutex{}
2931

3032
t.OnConnInvoke = func(info trace.DriverConnInvokeStartInfo) func(trace.DriverConnInvokeDoneInfo) {
3133
var (
@@ -104,6 +106,8 @@ func driver(config Config) (t trace.Driver) {
104106

105107
return func(info trace.DriverBalancerUpdateDoneInfo) {
106108
if config.Details()&trace.DriverBalancerEvents != 0 {
109+
endpointsMu.Lock()
110+
defer endpointsMu.Unlock()
107111
balancerUpdates.With(map[string]string{
108112
"cause": eventType,
109113
}).Inc()

0 commit comments

Comments
 (0)