summaryrefslogtreecommitdiffstats
path: root/clustercontroller-reindexer
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2021-02-14 12:19:57 +0100
committerJon Marius Venstad <venstad@gmail.com>2021-02-14 12:19:57 +0100
commita431474b600b16bdd53e43ab5d950ae8e2fe74ae (patch)
tree62f7d4c6d68998d6649ba8ee899385d61d6ab5b6 /clustercontroller-reindexer
parentb51ce665456070fb6b59001558309fcb8429d509 (diff)
Revert "Close the underlying Curator to avoid leaking threads and other resources."
This reverts commit fb0524c28864e0311e819cc73a5f6b8f2a6e8b60.
Diffstat (limited to 'clustercontroller-reindexer')
-rw-r--r--clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/Reindexer.java19
-rw-r--r--clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingCurator.java7
-rw-r--r--clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingMaintainer.java9
-rw-r--r--clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexerTest.java8
4 files changed, 10 insertions, 33 deletions
diff --git a/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/Reindexer.java b/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/Reindexer.java
index 2c34c3164aa..af43211011a 100644
--- a/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/Reindexer.java
+++ b/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/Reindexer.java
@@ -38,7 +38,7 @@ import static java.util.logging.Level.WARNING;
*
* @author jonmv
*/
-public class Reindexer implements AutoCloseable {
+public class Reindexer {
private static final Logger log = Logger.getLogger(Reindexer.class.getName());
@@ -81,6 +81,11 @@ public class Reindexer implements AutoCloseable {
this.clock = clock;
}
+ /** Lets the reindexer abort any ongoing visit session, wait for it to complete normally, then exit. */
+ public void shutdown() {
+ phaser.forceTermination(); // All parties waiting on this phaser are immediately allowed to proceed.
+ }
+
/** Starts and tracks reprocessing of ready document types until done, or interrupted. */
public void reindex() throws ReindexingLockException {
if (phaser.isTerminated())
@@ -206,18 +211,6 @@ public class Reindexer implements AutoCloseable {
return parameters;
}
- @Override
- public void close() throws Exception {
- phaser.forceTermination(); // All parties waiting on this phaser are immediately allowed to proceed.
- database.close();
- }
-
- @Override
- public String toString() {
- return "Reindexer{" +
- "cluster=" + cluster +
- '}';
- }
static class Cluster {
diff --git a/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingCurator.java b/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingCurator.java
index f3edf30f3b2..22ae54fcc6b 100644
--- a/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingCurator.java
+++ b/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingCurator.java
@@ -26,7 +26,7 @@ import static java.util.stream.Collectors.toUnmodifiableMap;
*
* @author jonmv
*/
-public class ReindexingCurator implements AutoCloseable {
+public class ReindexingCurator {
private final Curator curator;
private final ReindexingSerializer serializer;
@@ -65,11 +65,6 @@ public class ReindexingCurator implements AutoCloseable {
private Path statusPath(String clusterName) { return rootPath(clusterName).append("status"); }
private Path lockPath(String clusterName) { return rootPath(clusterName).append("lock"); }
- @Override
- public void close() throws Exception {
- curator.close();
- }
-
private static class ReindexingSerializer {
diff --git a/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingMaintainer.java b/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingMaintainer.java
index 101989c6d17..a37a24d2b01 100644
--- a/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingMaintainer.java
+++ b/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/ReindexingMaintainer.java
@@ -98,13 +98,8 @@ public class ReindexingMaintainer extends AbstractComponent {
@Override
public void deconstruct() {
try {
- for (Reindexer reindexer : reindexers) {
- try {
- reindexer.close();
- } catch (Exception e) {
- log.log(WARNING, "Received exception while closing down reindexer " + reindexer.toString() + " : ", e);
- }
- }
+ for (Reindexer reindexer : reindexers)
+ reindexer.shutdown();
executor.shutdown();
if ( ! executor.awaitTermination(45, TimeUnit.SECONDS))
diff --git a/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexerTest.java b/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexerTest.java
index c5b72db4dee..8cf96fa8c45 100644
--- a/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexerTest.java
+++ b/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/ReindexerTest.java
@@ -28,12 +28,10 @@ import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
-import static java.util.logging.Level.WARNING;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertSame;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
/**
* @author jonmv
@@ -142,11 +140,7 @@ class ReindexerTest {
aborted.set(new Reindexer(cluster, Map.of(music, Instant.ofEpochMilli(20)), database, parameters -> {
database.writeReindexing(Reindexing.empty(), "cluster"); // Wipe database to verify we write data from reindexer.
parameters.getControlHandler().onProgress(new ProgressToken());
- try {
- aborted.get().close();
- } catch (Exception e) {
- fail(e);
- }
+ aborted.get().shutdown();
return () -> {
shutDown.set(true);
parameters.getControlHandler().onDone(VisitorControlHandler.CompletionCode.ABORTED, "Shut down");