summaryrefslogtreecommitdiffstats
path: root/zkfacade
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-10-11 10:34:38 +0200
committerjonmv <venstad@gmail.com>2022-10-11 10:34:38 +0200
commit37d63d09b71333401849662f5642123d2ae8f9ce (patch)
treeedb973e1d16b6e5e81a9ede3b20e1e29651c17d1 /zkfacade
parentd572ecbe50456810df1dba311d74ebb878e06c7b (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.java5
-rw-r--r--zkfacade/src/test/java/com/yahoo/vespa/curator/CuratorWrapperTest.java4
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";