From: Robert Varga Date: Tue, 22 Aug 2017 08:51:58 +0000 (+0200) Subject: BUG-8858: remove sleeps from test driver X-Git-Tag: release/oxygen-sr3~13 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=5afe951a7bfc7275cf35569985173e3ec6817082 BUG-8858: remove sleeps from test driver This is a follow-up patch to speed up test driver, properly chasing leader, without any sleeps incurred. Change-Id: I55ed680ad3f45813b3ee3d8b948046c4ae34e273 Signed-off-by: Robert Varga (cherry picked from commit 0cb983d35266801f8c8a0f9dc106bdc3f812e599) --- diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/FlappingSingletonService.java b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/FlappingSingletonService.java index 197fadad9b..cbc9a10200 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/FlappingSingletonService.java +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/FlappingSingletonService.java @@ -10,8 +10,6 @@ package org.opendaylight.controller.clustering.it.provider.impl; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; @@ -27,8 +25,6 @@ public class FlappingSingletonService implements ClusterSingletonService { private static final ServiceGroupIdentifier SERVICE_GROUP_IDENTIFIER = ServiceGroupIdentifier.create("flapping-singleton-service"); - private static final ScheduledExecutorService EXECUTOR = FinalizableScheduledExecutorService.newSingleThread(); - private final ClusterSingletonServiceProvider singletonServiceProvider; private final AtomicBoolean active = new AtomicBoolean(true); @@ -45,19 +41,14 @@ public class FlappingSingletonService implements ClusterSingletonService { @Override public void instantiateServiceInstance() { LOG.debug("Instantiating flapping-singleton-service."); - - // TODO direct registration/close seem to trigger a bug in singleton state transitions, - // remove the whole executor shenanigans after it's fixed. - EXECUTOR.submit(() -> { - try { - registration.close(); - registration = null; - } catch (final Exception e) { - LOG.warn("There was a problem closing flapping singleton service.", e); - setInactive(); - flapCount = -flapCount; - } - }); + try { + registration.close(); + registration = null; + } catch (final Exception e) { + LOG.warn("There was a problem closing flapping singleton service.", e); + setInactive(); + flapCount = -flapCount; + } } @Override @@ -66,20 +57,14 @@ public class FlappingSingletonService implements ClusterSingletonService { flapCount++; if (active.get()) { - // TODO direct registration/close seem to trigger a bug in singleton state transitions, - // remove whole executor shenanigans after it's fixed. - // Needs to be delayed slightly otherwise it's triggered as well. - EXECUTOR.schedule(() -> { - LOG.debug("Running re-registration"); - try { - registration = singletonServiceProvider.registerClusterSingletonService(this); - } catch (final Exception e) { - LOG.warn("There was a problem re-registering flapping singleton service.", e); - setInactive(); - flapCount = -flapCount - 1; - } - - }, 200, TimeUnit.MILLISECONDS); + LOG.debug("Running re-registration"); + try { + registration = singletonServiceProvider.registerClusterSingletonService(this); + } catch (final Exception e) { + LOG.warn("There was a problem re-registering flapping singleton service.", e); + setInactive(); + flapCount = -flapCount - 1; + } } return Futures.immediateFuture(null);