AsioSessionManager::_rejectedSessions is currently used
1) Inside SessionManagerCommon::startSession. A sync token is acquired (which holds SessionManagerCommon::Sessions lock for its lifetime) to access sync.size().
2) Inside AsioSessionManager::appendStats.
SessionManagerCommon::appendStats previously handled concurrent access to some of the members by acquiring a sync token at the beginning of the function. This means that previously we inadvertently synchronized access using a SessionManagerCommon::Sessions lock even though _rejectedSessions is outside of that class.
During the separation of SessionManager into subclasses AsioSessionManager and GRPCSessionManager, it seems the appendStats section no longer acquires the sync token for the duration of the function, so we lost the synchronization.
We can probably just make this into an atomic or make rejectedSessions a member of SessionManagerCommon::Sessions.