Upon changing the FCV value, outgoing connections to servers with a lower binary version are closed. This is done by closing all the connections except those tagged with transport::Session::kKeepOpen.
However, there exists a race condition between setting the kKeepOpen flag during the hello handshake, and deciding whether to close the connection by looking at the tags.
As a result, connections that are in the process of being established can be incorrectly dropped during setFCV.
ConnectionPool::dropConnections is not considering the kPending flag.
- is duplicated by
-
SERVER-57202 _flushReshardingStateChange can fail with PooledConnectionsDropped during concurrent setFCV
- Closed