Skip to content

Commit 88ba97b

Browse files
author
Myron Scott
committed
probe test servers
1 parent 67e8a9b commit 88ba97b

File tree

2 files changed

+58
-7
lines changed

2 files changed

+58
-7
lines changed

azure-pipelines.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,41 +28,41 @@ jobs:
2828
parameters:
2929
jdkVersion: '1.8'
3030
jobName: 'LinuxJava8'
31-
gradleTasks: ':clustered:integration-test:test --tests=org.ehcache.clustered.replication.BasicClusteredCacheOpsReplicationMultiThreadedTest'
31+
gradleTasks: ':clustered:integration-test:test --info --tests=org.ehcache.clustered.replication.BasicClusteredCacheOpsReplicationMultiThreadedTest'
3232

3333
- template: build-templates/gradle-common.yml@templates
3434
parameters:
3535
jdkVersion: '1.8'
3636
options: '-PtestVM=java11Home'
3737
jobName: 'LinuxJava11'
38-
gradleTasks: ':clustered:integration-test:test --tests=org.ehcache.clustered.replication.BasicClusteredCacheOpsReplicationMultiThreadedTest'
38+
gradleTasks: ':clustered:integration-test:test --info --tests=org.ehcache.clustered.replication.BasicClusteredCacheOpsReplicationMultiThreadedTest'
3939

4040
- template: build-templates/gradle-common.yml@templates
4141
parameters:
4242
jdkVersion: '1.8'
4343
options: '-PtestVM=java17Home'
4444
jobName: 'LinuxJava17'
45-
gradleTasks: ':clustered:integration-test:test --tests=org.ehcache.clustered.replication.BasicClusteredCacheOpsReplicationMultiThreadedTest'
45+
gradleTasks: ':clustered:integration-test:test --info --tests=org.ehcache.clustered.replication.BasicClusteredCacheOpsReplicationMultiThreadedTest'
4646

4747
- template: build-templates/gradle-common.yml@templates
4848
parameters:
4949
vmImage: 'windows-latest'
5050
jdkVersion: '1.8'
5151
jobName: 'WindowsJava8'
52-
gradleTasks: ':clustered:integration-test:test --tests=org.ehcache.clustered.replication.BasicClusteredCacheOpsReplicationMultiThreadedTest'
52+
gradleTasks: ':clustered:integration-test:test --info --tests=org.ehcache.clustered.replication.BasicClusteredCacheOpsReplicationMultiThreadedTest'
5353

5454
- template: build-templates/gradle-common.yml@templates
5555
parameters:
5656
vmImage: 'windows-latest'
5757
jdkVersion: '1.8'
5858
options: '-PtestVM=java11Home'
5959
jobName: 'WindowsJava11'
60-
gradleTasks: ':clustered:integration-test:test --tests=org.ehcache.clustered.replication.BasicClusteredCacheOpsReplicationMultiThreadedTest'
60+
gradleTasks: ':clustered:integration-test:test --info --tests=org.ehcache.clustered.replication.BasicClusteredCacheOpsReplicationMultiThreadedTest'
6161

6262
- template: build-templates/gradle-common.yml@templates
6363
parameters:
6464
vmImage: 'windows-latest'
6565
jdkVersion: '1.8'
6666
options: '-PtestVM=java17Home'
6767
jobName: 'WindowsJava17'
68-
gradleTasks: ':clustered:integration-test:test --tests=org.ehcache.clustered.replication.BasicClusteredCacheOpsReplicationMultiThreadedTest'
68+
gradleTasks: ':clustered:integration-test:test --info --tests=org.ehcache.clustered.replication.BasicClusteredCacheOpsReplicationMultiThreadedTest'

clustered/integration-test/src/test/java/org/ehcache/clustered/replication/BasicClusteredCacheOpsReplicationMultiThreadedTest.java

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,15 @@
4545
import org.slf4j.LoggerFactory;
4646

4747
import java.io.Serializable;
48+
import java.net.InetSocketAddress;
4849
import java.time.Duration;
4950
import java.util.ArrayList;
5051
import java.util.Arrays;
5152
import java.util.HashMap;
5253
import java.util.HashSet;
5354
import java.util.List;
5455
import java.util.Map;
56+
import java.util.Properties;
5557
import java.util.Set;
5658
import java.util.concurrent.ConcurrentHashMap;
5759
import java.util.concurrent.ExecutorService;
@@ -62,13 +64,17 @@
6264
import java.util.concurrent.TimeoutException;
6365

6466
import static org.ehcache.testing.StandardCluster.clusterPath;
67+
import static org.ehcache.testing.StandardCluster.leaseLength;
6568
import static org.ehcache.testing.StandardCluster.newCluster;
6669
import static org.ehcache.testing.StandardCluster.offheapResource;
6770
import static org.hamcrest.MatcherAssert.assertThat;
6871
import static org.hamcrest.Matchers.equalTo;
6972
import static org.hamcrest.Matchers.is;
7073
import static org.hamcrest.Matchers.nullValue;
7174
import static org.junit.Assert.fail;
75+
import org.terracotta.connection.ConnectionException;
76+
import org.terracotta.connection.Diagnostics;
77+
import org.terracotta.connection.DiagnosticsFactory;
7278

7379

7480
/**
@@ -98,7 +104,8 @@ public static Consistency[] data() {
98104

99105
@ClassRule @Rule
100106
public static final ParallelTestCluster CLUSTER = new ParallelTestCluster(newCluster(2).in(clusterPath())
101-
.withServiceFragment(offheapResource("primary-server-resource", 24)).build());
107+
.withServiceFragment(offheapResource("primary-server-resource", 24)).withServiceFragment(leaseLength(Duration.ofDays(1)))
108+
.build());
102109

103110
@Rule
104111
public final TestName testName = new TestName();
@@ -110,6 +117,8 @@ public static Consistency[] data() {
110117
private final ThreadLocalRandom random = ThreadLocalRandom.current();
111118

112119
private final ExecutorService executorService = Executors.newWorkStealingPool(NUM_OF_THREADS);
120+
121+
private final Probe probe = new Probe();
113122

114123
@Before
115124
public void startServers() throws Exception {
@@ -134,6 +143,7 @@ public void startServers() throws Exception {
134143
cache2 = cacheManager2.createCache(testName.getMethodName(), config);
135144

136145
caches = Arrays.asList(cache1, cache2);
146+
probe.loop();
137147
}
138148

139149
@After
@@ -148,6 +158,7 @@ public void tearDown() throws Exception {
148158
if(cacheManager2 != null && cacheManager2.getStatus() != Status.UNINITIALIZED) {
149159
cacheManager2.close();
150160
}
161+
151162
}
152163

153164
@Test(timeout=180000)
@@ -287,4 +298,44 @@ private static class BlobValue implements Serializable {
287298
private final byte[] data = new byte[10 * 1024];
288299
}
289300

301+
public class Probe {
302+
303+
/**
304+
* @param args the command line arguments
305+
*/
306+
public void loop() {
307+
String[] servers = CLUSTER.getClusterHostPorts();
308+
for (String hostPort : servers) {
309+
String[] hp = hostPort.split("[:]");
310+
InetSocketAddress inet = InetSocketAddress.createUnresolved(hp[0], Integer.parseInt(hp[1]));
311+
log.info("starting probe for " + hostPort);
312+
new Thread(()->{
313+
while (!executorService.isShutdown()) {
314+
315+
try (Diagnostics d = DiagnosticsFactory.connect(inet, new Properties())) {
316+
while (!executorService.isShutdown()) {
317+
try {
318+
probe(d);
319+
log.info("sleeping for 10 sec.");
320+
Thread.sleep(10_000L);
321+
} catch (InterruptedException ie) {
322+
ie.printStackTrace();
323+
}
324+
}
325+
} catch (ConnectionException e) {
326+
e.printStackTrace();
327+
}
328+
}
329+
330+
}).start();
331+
}
332+
}
333+
334+
private void probe(Diagnostics d) {
335+
log.info("===== PROBE =====");
336+
log.info(d.getClusterState());
337+
log.info(d.getThreadDump());
338+
}
339+
}
340+
290341
}

0 commit comments

Comments
 (0)