Skip to content

Commit d57e192

Browse files
authored
Don't log invalid row for zero-token nodes (#519)
In some cases having zero token node is a normal thing. Logging invalid row each time driver updates metadata confuses users in such case and produce bad UX.
1 parent a5619f6 commit d57e192

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

driver-core/src/main/java/com/datastax/driver/core/ControlConnection.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1007,12 +1007,12 @@ private boolean isValidPeer(Row peerRow, boolean logIfInvalid) {
10071007
&& !peerRow.isNull("data_center")
10081008
&& peerRow.getColumnDefinitions().contains("rack")
10091009
&& !peerRow.isNull("rack")
1010-
&& peerRow.getColumnDefinitions().contains("tokens")
1011-
&& (!peerRow.isNull("tokens")
1012-
|| cluster
1013-
.configuration
1014-
.getQueryOptions()
1015-
.shouldConsiderZeroTokenNodesValidPeers());
1010+
&& peerRow.getColumnDefinitions().contains("tokens");
1011+
1012+
if (isValid && peerRow.isNull("tokens")) {
1013+
// Don't log invalid row for zero token nodes, but report it if it is configured so.
1014+
return cluster.configuration.getQueryOptions().shouldConsiderZeroTokenNodesValidPeers();
1015+
}
10161016
}
10171017
if (!isValid && logIfInvalid)
10181018
logger.warn(

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,12 @@ static void run_with_null_peer_info(String columns, boolean expectPeer2, boolean
378378
.extractingResultOf("getAddress")
379379
.doesNotContain(node2Address);
380380

381-
assertThat(log).containsOnlyOnce(expectedError);
381+
if (columns.equals("tokens")) {
382+
// For zero token nodes driver does not log an error
383+
assertThat(log).doesNotContain(expectedError);
384+
} else {
385+
assertThat(log).containsOnlyOnce(expectedError);
386+
}
382387
}
383388
} finally {
384389
cLogger.removeAppender(logs);

0 commit comments

Comments
 (0)