aboutsummaryrefslogtreecommitdiffstats
path: root/service-monitor
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2021-05-03 13:59:00 +0200
committerJon Marius Venstad <venstad@gmail.com>2021-05-03 13:59:00 +0200
commit360315b448ec780a9b751e7b5992e9072b3221dc (patch)
treebc2c2731e38257472633ee03c1bac5fc9ef45772 /service-monitor
parentc5df332d4c7519565f45ce9301771c3662eda128 (diff)
Shut down transport threads of health monitor
Diffstat (limited to 'service-monitor')
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/slobrok/SlobrokMonitor.java14
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/slobrok/SlobrokMonitorTest.java4
2 files changed, 12 insertions, 6 deletions
diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/slobrok/SlobrokMonitor.java b/service-monitor/src/main/java/com/yahoo/vespa/service/slobrok/SlobrokMonitor.java
index 62f39084272..976aab7f732 100644
--- a/service-monitor/src/main/java/com/yahoo/vespa/service/slobrok/SlobrokMonitor.java
+++ b/service-monitor/src/main/java/com/yahoo/vespa/service/slobrok/SlobrokMonitor.java
@@ -12,7 +12,6 @@ import com.yahoo.jrt.slobrok.api.Mirror;
import com.yahoo.jrt.slobrok.api.SlobrokList;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import java.util.Objects;
@@ -25,19 +24,21 @@ public class SlobrokMonitor implements AutoCloseable {
private final SlobrokList slobrokList;
private final Mirror mirror;
+ private final Transport transport;
SlobrokMonitor() {
- this(new SlobrokList());
+ this(new SlobrokList(), new Transport("slobrok-monitor"));
}
// Package-private for testing.
- SlobrokMonitor(SlobrokList slobrokList, Mirror mirror) {
+ SlobrokMonitor(SlobrokList slobrokList, Mirror mirror, Transport transport) {
this.slobrokList = slobrokList;
this.mirror = mirror;
+ this.transport = transport;
}
- private SlobrokMonitor(SlobrokList slobrokList) {
- this(slobrokList, new Mirror(new Supervisor(new Transport("slobrok-monitor")), slobrokList));
+ private SlobrokMonitor(SlobrokList slobrokList, Transport transport) {
+ this(slobrokList, new Mirror(new Supervisor(transport), slobrokList), transport);
}
void updateSlobrokList(ApplicationInfo application) {
@@ -73,6 +74,9 @@ public class SlobrokMonitor implements AutoCloseable {
@Override
public void close() {
mirror.shutdown();
+ transport.sync() // Wait for mirror shutdown.
+ .shutdown() // Signal shutdown of transport threads.
+ .join(); // Wait for shutdown of transport threads.
}
boolean registeredInSlobrok(String slobrokServiceName) {
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/slobrok/SlobrokMonitorTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/slobrok/SlobrokMonitorTest.java
index 8bec3bf6cd8..3297823a0be 100644
--- a/service-monitor/src/test/java/com/yahoo/vespa/service/slobrok/SlobrokMonitorTest.java
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/slobrok/SlobrokMonitorTest.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.service.slobrok;
import com.yahoo.config.model.api.ApplicationInfo;
import com.yahoo.config.model.api.SuperModel;
+import com.yahoo.jrt.Transport;
import com.yahoo.jrt.slobrok.api.Mirror;
import com.yahoo.jrt.slobrok.api.SlobrokList;
import com.yahoo.vespa.service.model.ExampleModel;
@@ -14,7 +15,8 @@ import static org.mockito.Mockito.verify;
public class SlobrokMonitorTest {
private final SlobrokList slobrokList = mock(SlobrokList.class);
private final Mirror mirror = mock(Mirror.class);
- private SlobrokMonitor slobrokMonitor = new SlobrokMonitor(slobrokList, mirror);
+ private final Transport transport = mock(Transport.class);
+ private final SlobrokMonitor slobrokMonitor = new SlobrokMonitor(slobrokList, mirror, transport);
@Test
public void testUpdateSlobrokList() {