Skip to content

Commit c6584b3

Browse files
committed
fix: serialize NetworkTransport data race on ServerAddr()
1 parent cc2bb08 commit c6584b3

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

net_transport.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ type NetworkTransport struct {
9191
maxPool int
9292
maxInFlight int
9393

94+
serverAddressLock sync.RWMutex
9495
serverAddressProvider ServerAddressProvider
9596

9697
shutdown bool
@@ -384,6 +385,8 @@ func (n *NetworkTransport) getConnFromAddressProvider(id ServerID, target Server
384385
}
385386

386387
func (n *NetworkTransport) getProviderAddressOrFallback(id ServerID, target ServerAddress) ServerAddress {
388+
n.serverAddressLock.RLock()
389+
defer n.serverAddressLock.RUnlock()
387390
if n.serverAddressProvider != nil {
388391
serverAddressOverride, err := n.serverAddressProvider.ServerAddr(id)
389392
if err != nil {

0 commit comments

Comments
 (0)