SERVER-57280 introduced a mechanism that tried to prevent accesses to the shard registry via the getShardNoReload before setting up the shard registry. However, there is a race that can happen after setting the isUp variable from a thread that is performing the first refresh, and another thread using the non causally consistent API, that might result on the shard registry not finding any shard if the node have been recently started.
SERVER-67169 Wrong comparison might make shard registry accessed before initialization
- is caused by
SERVER-57280 ShardRegistry must be initialized before DDL coordinators contact any shard