Skip to content

Commit d4c100a

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

File tree

2 files changed

+56
-7
lines changed

2 files changed

+56
-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: 50 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;
@@ -69,6 +71,9 @@
6971
import static org.hamcrest.Matchers.is;
7072
import static org.hamcrest.Matchers.nullValue;
7173
import static org.junit.Assert.fail;
74+
import org.terracotta.connection.ConnectionException;
75+
import org.terracotta.connection.Diagnostics;
76+
import org.terracotta.connection.DiagnosticsFactory;
7277

7378

7479
/**
@@ -98,7 +103,7 @@ public static Consistency[] data() {
98103

99104
@ClassRule @Rule
100105
public static final ParallelTestCluster CLUSTER = new ParallelTestCluster(newCluster(2).in(clusterPath())
101-
.withServiceFragment(offheapResource("primary-server-resource", 24)).build());
106+
.withServiceFragment(offheapResource("primary-server-resource", 24)).withTcProperty("tc.messages.grouping.enabled", "false").build());
102107

103108
@Rule
104109
public final TestName testName = new TestName();
@@ -110,6 +115,8 @@ public static Consistency[] data() {
110115
private final ThreadLocalRandom random = ThreadLocalRandom.current();
111116

112117
private final ExecutorService executorService = Executors.newWorkStealingPool(NUM_OF_THREADS);
118+
119+
private final Probe probe = new Probe();
113120

114121
@Before
115122
public void startServers() throws Exception {
@@ -134,6 +141,7 @@ public void startServers() throws Exception {
134141
cache2 = cacheManager2.createCache(testName.getMethodName(), config);
135142

136143
caches = Arrays.asList(cache1, cache2);
144+
probe.loop();
137145
}
138146

139147
@After
@@ -148,6 +156,7 @@ public void tearDown() throws Exception {
148156
if(cacheManager2 != null && cacheManager2.getStatus() != Status.UNINITIALIZED) {
149157
cacheManager2.close();
150158
}
159+
151160
}
152161

153162
@Test(timeout=180000)
@@ -287,4 +296,44 @@ private static class BlobValue implements Serializable {
287296
private final byte[] data = new byte[10 * 1024];
288297
}
289298

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

0 commit comments

Comments
 (0)