diff --git a/core/store/dist/src/main/java/org/onosproject/store/host/impl/DistributedHostStore.java b/core/store/dist/src/main/java/org/onosproject/store/host/impl/DistributedHostStore.java index 8a913cda74..5f59921c2b 100644 --- a/core/store/dist/src/main/java/org/onosproject/store/host/impl/DistributedHostStore.java +++ b/core/store/dist/src/main/java/org/onosproject/store/host/impl/DistributedHostStore.java @@ -108,7 +108,7 @@ public class DistributedHostStore private Consumer statusChangeListener; // TODO make this configurable - private static final int PROBE_TIMEOUT_MS = 1000; + private static final int PROBE_TIMEOUT_MS = 1500; private Cache pendingHostsCache = CacheBuilder.newBuilder() .expireAfterWrite(PROBE_TIMEOUT_MS, TimeUnit.MILLISECONDS) diff --git a/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java b/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java index a0d6e37c11..227415e248 100644 --- a/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java +++ b/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java @@ -90,6 +90,9 @@ import java.util.Dictionary; import java.util.Objects; import java.util.Optional; import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; import java.util.stream.Stream; import java.util.Set; @@ -447,7 +450,10 @@ public class HostLocationProvider extends AbstractProvider implements HostProvid IPv6.getMCastMacAddress(ip.getIp6Address().toOctets()), host.id().vlanId()); } - sendProbe(probe, location); + + // NOTE: delay the probe a little bit to wait for the store synchronization is done + ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor(); + executorService.schedule(() -> sendProbe(probe, location), 1000, TimeUnit.MILLISECONDS); }); }); }