The ReplicaSetMonitorManager::_stats member can be concurrently accessed from different threads without synchronization, i.e. via report() where it is read without synchronization.
This member has type shared_ptr<ReplicaSetMonitorManager> - note that while the pointed-to object is thread-safe/synchronized, the shared_ptr object itself still requires synchronization, and cannot be accessed concurrently by different threads (one of which writes/mutates it) without additional synchronization.
We should fix it by either gating access with the ReplicaSetMonitorManager::_mutex or using the new c++20 atomic<shared_ptr>