Skip to content

Commit 6846ce2

Browse files
A fresh attempt to fix jenkins race condition
1 parent 90e6b4e commit 6846ce2

2 files changed

Lines changed: 22 additions & 7 deletions

File tree

driver-core/src/test/java/com/datastax/driver/core/CCMBridge.java

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -292,22 +292,37 @@ public static CCMCluster create(int nbNodes, Cluster.Builder builder) {
292292
if (nbNodes == 0)
293293
throw new IllegalArgumentException();
294294

295-
return new CCMCluster(CCMBridge.create("test", nbNodes), builder);
295+
return new CCMCluster(CCMBridge.create("test", nbNodes), builder, nbNodes);
296296
}
297297

298298
public static CCMCluster create(int nbNodesDC1, int nbNodesDC2, Cluster.Builder builder) {
299299
if (nbNodesDC1 == 0)
300300
throw new IllegalArgumentException();
301301

302-
return new CCMCluster(CCMBridge.create("test", nbNodesDC1, nbNodesDC2), builder);
302+
return new CCMCluster(CCMBridge.create("test", nbNodesDC1, nbNodesDC2), builder, nbNodesDC1 + nbNodesDC2);
303303
}
304304

305-
private CCMCluster(CCMBridge cassandraCluster, Cluster.Builder builder) {
305+
private CCMCluster(CCMBridge cassandraCluster, Cluster.Builder builder, int totalNodes) {
306306
this.cassandraCluster = cassandraCluster;
307307
try {
308308
this.cluster = builder.addContactPoints(IP_PREFIX + "1").build();
309309
this.session = cluster.connect();
310310

311+
Session tmpSession = cluster.connect();
312+
313+
int maxTry = 30;
314+
for (int i = 0; i < maxTry; ++i) {
315+
List<Row> rs = tmpSession.execute("SELECT * from system.peers").all();
316+
if (rs.size() == totalNodes - 1) {
317+
break;
318+
}
319+
try { Thread.sleep(1000); } catch (Exception e) {}
320+
321+
if (i == maxTry - 1) {
322+
throw new RuntimeException("Not all nodes came online.");
323+
}
324+
}
325+
311326
} catch (NoHostAvailableException e) {
312327
for (Map.Entry<InetAddress, String> entry : e.getErrors().entrySet())
313328
logger.info("Error connecting to " + entry.getKey() + ": " + entry.getValue());

driver-core/src/test/java/com/datastax/driver/core/TestUtils.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -256,19 +256,19 @@ public static Object getFixedValue2(final DataType type) {
256256
// This is used because there is some delay between when a node has been
257257
// added through ccm and when it's actually available for querying
258258
public static void waitFor(String node, Cluster cluster) {
259-
waitFor(node, cluster, 20, false, false);
259+
waitFor(node, cluster, 30, false, false);
260260
}
261261

262262
public static void waitFor(String node, Cluster cluster, int maxTry) {
263263
waitFor(node, cluster, maxTry, false, false);
264264
}
265265

266266
public static void waitForDown(String node, Cluster cluster) {
267-
waitFor(node, cluster, 20, true, false);
267+
waitFor(node, cluster, 30, true, false);
268268
}
269269

270270
public static void waitForDownWithWait(String node, Cluster cluster, int waitTime) {
271-
waitFor(node, cluster, 20, true, false);
271+
waitFor(node, cluster, 30, true, false);
272272

273273
// FIXME: Once stop() works, remove this line
274274
try {
@@ -283,7 +283,7 @@ public static void waitForDown(String node, Cluster cluster, int maxTry) {
283283
}
284284

285285
public static void waitForDecommission(String node, Cluster cluster) {
286-
waitFor(node, cluster, 20, true, true);
286+
waitFor(node, cluster, 30, true, true);
287287
}
288288

289289
public static void waitForDecommission(String node, Cluster cluster, int maxTry) {

0 commit comments

Comments
 (0)