public void profileRemoved(Profile profile) {
    if (profile instanceof CacheServerProfile) {
      CacheServerProfile bp = (CacheServerProfile) profile;
      // InternalDistributedMember id = bp.getDistributedMember();
      ServerLocation location = buildServerLocation(bp);
      loadSnapshot.removeServer(location, bp.getDistributedMember().getUniqueId());
      if (logger.isDebugEnabled()) {
        logger.debug("ServerLocator: server departed {}", location);
      }
      synchronized (ownerMap) {
        ownerMap.remove(location);
      }
    } else {
      cachedLocators = null;
    }
  }
A ServerLocator may be in place but non-functional during auto-reconnect because peer location
services have been initialized while the servers reconnect but server location services aren't
reconnected until a cache is available
geode-core/src/main/java/org/apache/geode/distributed/internal/ServerLocator.java