This is a well known (long standing) issue. Documented in the code base in commit eea02be70ee37b845f2719b3c08e5baf4b6f51f6.

Countless intermittent sanitizer warnings can be attributed to it.
{
        LOCK(cs_inventory);
        vBlockHashesToAnnounce.push_back(hash);
    }
    void CloseSocketDisconnect();
    void copyStats(CNodeStats &stats, const std::vector<bool> &m_asmap);
    ServiceFlags GetLocalServices() const
    {
        return nLocalServices;
    }
    std::string GetAddrName() const;
    
    void MaybeSetAddrName(const std::string& addrNameIn);
};
int64_t PoissonNextSend(int64_t now, int average_interval_seconds);
inline std::chrono::microseconds PoissonNextSend(std::chrono::microseconds now, std::chrono::seconds average_interval)
{
    return std::chrono::microseconds{PoissonNextSend(now.count(), average_interval.count())};
}
#endif