Could we revert / refactor this: https://github.com/apache/cassandra/commit/c57e7c9e
Testing something in trunk and the above refactor prevents CL > ONE reads. The exception is: ERROR 19:51:52,271 Internal error processing get_counter java.lang.AssertionError: org.apache.cassandra.service.DigestMismatchException: Mismatch for key DecoratedKey(47663949345540697427011412002459125089, 746573742e6b65792e313239343235373039382e303231303034) (d41d8cd98f00b204e9800998ecf8427e vs 4474cd24733f6b664b61a22bafac4bfe) at org.apache.cassandra.service.StorageProxy.fetchRows(StorageProxy.java:469) at org.apache.cassandra.service.StorageProxy.readProtocol(StorageProxy.java:352) at org.apache.cassandra.thrift.CassandraServer.readColumnFamily(CassandraServer.java:108) at org.apache.cassandra.thrift.CassandraServer.internal_get(CassandraServer.java:296) at org.apache.cassandra.thrift.CassandraServer.get_counter(CassandraServer.java:1075) at org.apache.cassandra.thrift.Cassandra$Processor$get_counter.process(Cassandra.java:3874) at org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:3227) at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:167) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: org.apache.cassandra.service.DigestMismatchException: Mismatch for key DecoratedKey(47663949345540697427011412002459125089, 746573742e6b65792e313239343235373039382e303231303034) (d41d8cd98f00b204e9800998ecf8427e vs 4474cd24733f6b664b61a22bafac4bfe) at org.apache.cassandra.service.ReadResponseResolver.resolve(ReadResponseResolver.java:110) at org.apache.cassandra.service.ReadResponseResolver.resolve(ReadResponseResolver.java:47) at org.apache.cassandra.service.RepairCallback.get(RepairCallback.java:44) at org.apache.cassandra.service.StorageProxy.fetchRows(StorageProxy.java:463) ... 10 more Basically, it always considers a read a digest read, so if remote replicas have different values a digest mismatch exception will prevent it from advancing. Thanks. -Kelvin