diff --git a/test/distributed/org/apache/cassandra/distributed/impl/Instance.java b/test/distributed/org/apache/cassandra/distributed/impl/Instance.java index 93d0ec8497..3de5ed865f 100644 --- a/test/distributed/org/apache/cassandra/distributed/impl/Instance.java +++ b/test/distributed/org/apache/cassandra/distributed/impl/Instance.java @@ -445,6 +445,7 @@ public class Instance extends IsolatedExecutor implements IInvokableInstance { CassandraDaemon.getInstanceForTesting().initializeNativeTransport(); CassandraDaemon.getInstanceForTesting().startNativeTransport(); + StorageService.instance.setRpcReady(true); } if (!FBUtilities.getBroadcastAddress().equals(broadcastAddressAndPort().address)) @@ -544,7 +545,9 @@ public class Instance extends IsolatedExecutor implements IInvokableInstance Future future = async((ExecutorService executor) -> { Throwable error = null; - error = parallelRun(error, executor, CassandraDaemon.getInstanceForTesting()::destroyNativeTransport); + error = parallelRun(error, executor, + () -> StorageService.instance.setRpcReady(false), + CassandraDaemon.getInstanceForTesting()::destroyNativeTransport); if (config.has(GOSSIP) || config.has(NETWORK)) { diff --git a/test/distributed/org/apache/cassandra/distributed/test/NativeProtocolTest.java b/test/distributed/org/apache/cassandra/distributed/test/NativeProtocolTest.java index 15392b1b1e..45d9840f81 100644 --- a/test/distributed/org/apache/cassandra/distributed/test/NativeProtocolTest.java +++ b/test/distributed/org/apache/cassandra/distributed/test/NativeProtocolTest.java @@ -56,4 +56,23 @@ public class NativeProtocolTest extends DistributedTestBase cluster.close(); } } + + @Test + public void withCounters() throws Throwable + { + try (Cluster dtCluster = init(Cluster.create(3, + config -> config.with(GOSSIP, NETWORK, NATIVE_PROTOCOL)))) + { + final com.datastax.driver.core.Cluster cluster = com.datastax.driver.core.Cluster.builder().addContactPoint("127.0.0.1").build(); + Session session = cluster.connect(); + session.execute("CREATE TABLE " + KEYSPACE + ".tbl (pk int, ck counter, PRIMARY KEY (pk));"); + session.execute("UPDATE " + KEYSPACE + ".tbl set ck = ck + 10 where pk = 1;"); + Statement select = new SimpleStatement("select * from " + KEYSPACE + ".tbl;").setConsistencyLevel(ConsistencyLevel.ALL); + final ResultSet resultSet = session.execute(select); + assertRows(resultSet, row(1, 10L)); + Assert.assertEquals(3, cluster.getMetadata().getAllHosts().size()); + session.close(); + cluster.close(); + } + } } \ No newline at end of file