Location wire/net.EndpointRegistry
Problem Replacing a connection before it timed out on the other end will trigger the race detector, even if there is no race.
Proposal For each Endpoint, remember the time it was opened. During fullEndpoint.replace(), if !dialed (i.e., we have an incoming connection) and the previous endpoint is older than 5 seconds, do not perform the race check, and simply discard the old connection.
Location
wire/net.EndpointRegistryProblem Replacing a connection before it timed out on the other end will trigger the race detector, even if there is no race.
Proposal For each
Endpoint, remember the time it was opened. DuringfullEndpoint.replace(), if!dialed(i.e., we have an incoming connection) and the previous endpoint is older than 5 seconds, do not perform the race check, and simply discard the old connection.