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.
std::chrono::microseconds nNextInvSend{0};
        RecursiveMutex cs_feeFilter;
        
        CAmount minFeeFilter GUARDED_BY(cs_feeFilter){0};
        CAmount lastSentFeeFilter{0};
        int64_t nextSendTimeFeeFilter{0};
    };
    
    std::unique_ptr<TxRelay> m_tx_relay;
    
    std::vector<uint256> vBlockHashesToAnnounce GUARDED_BY(cs_inventory);
    
    std::atomic<int64_t> nLastBlockTime{0};
    std::atomic<int64_t> nLastTXTime{0};
    
    
    std::atomic<uint64_t> nPingNonceSent{0};
    
    std::atomic<int64_t> nPingUsecStart{0};
    
    std::atomic<int64_t> nPingUsecTime{0};
    
    std::atomic<int64_t> nMinPingUsecTime{std::numeric_limits<int64_t>::max()};
    
    std::atomic<bool> fPingQueued{false};
    std::set<uint256> orphan_work_set;
    CNode(NodeId id, ServiceFlags nLocalServicesIn, int nMyStartingHeightIn, SOCKET hSocketIn, const CAddress &addrIn, uint64_t nKeyedNetGroupIn, uint64_t nLocalHostNonceIn, const CAddress &addrBindIn, const std::string &addrNameIn = "", bool fInboundIn = false, bool block_relay_only = false);
    ~CNode();
    CNode(const CNode&) = delete;
    CNode& operator=(const CNode&) = delete;