Skip to content

Commit

Permalink
fix: serialize NetworkTransport data race on ServerAddr()
Browse files Browse the repository at this point in the history
  • Loading branch information
moogacs committed Apr 3, 2024
1 parent cc2bb08 commit c6584b3
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions net_transport.go
Expand Up @@ -91,6 +91,7 @@ type NetworkTransport struct {
maxPool int
maxInFlight int

serverAddressLock sync.RWMutex
serverAddressProvider ServerAddressProvider

shutdown bool
Expand Down Expand Up @@ -384,6 +385,8 @@ func (n *NetworkTransport) getConnFromAddressProvider(id ServerID, target Server
}

func (n *NetworkTransport) getProviderAddressOrFallback(id ServerID, target ServerAddress) ServerAddress {
n.serverAddressLock.RLock()
defer n.serverAddressLock.RUnlock()
if n.serverAddressProvider != nil {
serverAddressOverride, err := n.serverAddressProvider.ServerAddr(id)
if err != nil {
Expand Down

0 comments on commit c6584b3

Please sign in to comment.