diff options
author | jonmv <venstad@gmail.com> | 2022-10-11 10:34:38 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-10-11 10:34:38 +0200 |
commit | 37d63d09b71333401849662f5642123d2ae8f9ce (patch) | |
tree | edb973e1d16b6e5e81a9ede3b20e1e29651c17d1 /zkfacade | |
parent | d572ecbe50456810df1dba311d74ebb878e06c7b (diff) |
Complete janitor shutdown in synchronous part of shutdown
Diffstat (limited to 'zkfacade')
-rw-r--r-- | zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java | 5 | ||||
-rw-r--r-- | zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorWrapperTest.java | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java b/zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java index 96511a5dd1c..ef8759b2bbc 100644 --- a/zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java +++ b/zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java @@ -176,8 +176,6 @@ class SingletonManager { } } } - for (Task task : tasks) task.future.cancel(true); - unlock(); } catch (Throwable t) { Process.logAndDie(worker + " can't continue, shutting down", t); @@ -329,9 +327,12 @@ class SingletonManager { } void shutdown() { + assert Thread.currentThread() == worker : "shutdown should be run in the worker thread"; if ( ! shutdown.compareAndSet(false, true)) { logger.log(Level.WARNING, "Shutdown called more than once on " + this); } + unlock(); + for (Task task : tasks) task.future.cancel(true); } private class MetricHelper { diff --git a/zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorWrapperTest.java b/zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorWrapperTest.java index 82b9693b8fe..cd96ba78bd3 100644 --- a/zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorWrapperTest.java +++ b/zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorWrapperTest.java @@ -197,12 +197,12 @@ public class CuratorWrapperTest { RuntimeException e = assertThrows(RuntimeException.class, () -> new Singleton(curator) { @Override public void activate() { - throw new RuntimeException(); + throw new RuntimeException("expected test exception"); } @Override public void deactivate() { stunning.arriveAndAwaitAdvance(); stunning.arriveAndAwaitAdvance(); - throw new RuntimeException(); + throw new RuntimeException("expected test exception"); } @Override public String toString() { return "failing singleton"; |