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.
HasAllDesirableServiceFlags(node->nServices),
                                               peer_relay_txes, peer_filter_not_null, node->addr, node->nKeyedNetGroup,
                                               node->m_prefer_evict};
            vEvictionCandidates.push_back(candidate);
        }
    }
    
    
    
    EraseLastKElements(vEvictionCandidates, CompareNetGroupKeyed, 4);
    
    
    EraseLastKElements(vEvictionCandidates, ReverseCompareNodeMinPingTime, 8);
    
    
    EraseLastKElements(vEvictionCandidates, CompareNodeTXTime, 4);
    
    
    EraseLastKElements(vEvictionCandidates, CompareNodeBlockTime, 4);
    
    
    EraseLastKElements(vEvictionCandidates, ReverseCompareNodeTimeConnected, vEvictionCandidates.size() / 2);
    if (vEvictionCandidates.empty()) return false;
    
    
    
    if (std::any_of(vEvictionCandidates.begin(),vEvictionCandidates.end(),[](NodeEvictionCandidate const &n){return n.prefer_evict;})) {
        vEvictionCandidates.erase(std::remove_if(vEvictionCandidates.begin(),vEvictionCandidates.end(),
                                  [](NodeEvictionCandidate const &n){return !n.prefer_evict;}),vEvictionCandidates.end());
    }