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.
nTries++;
            if (nTries > 100)
                break;
            if (!IsReachable(addr))
                continue;
            
            if (nANow - addr.nLastTry < 600 && nTries < 30)
                continue;
            
            
            
            if (!fFeeler && !HasAllDesirableServiceFlags(addr.nServices)) {
                continue;
            } else if (fFeeler && !MayHaveUsefulAddressDB(addr.nServices)) {
                continue;
            }
            
            if (addr.GetPort() != Params().GetDefaultPort() && nTries < 50)
                continue;
            addrConnect = addr;
            break;
        }
        if (addrConnect.IsValid()) {
            if (fFeeler) {
                
                int randsleep = GetRandInt(FEELER_SLEEP_WINDOW * 1000);
                if (!interruptNet.sleep_for(std::chrono::milliseconds(randsleep)))
                    return;
                LogPrint(BCLog::NET, "Making feeler connection to %s\n", addrConnect.ToString());