From ea26dbd730b0b340f65cdebd5ba9e899d367aa53 Mon Sep 17 00:00:00 2001 From: Aleksey Yeschenko Date: Thu, 29 May 2014 19:01:32 +0300 Subject: [PATCH] Fix availability validation for LOCAL_ONE CL patch by Aleksey Yeschenko; reviewed by Sylvain Lebresne for CASSANDRA-7319 --- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/ConsistencyLevel.java | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/CHANGES.txt b/CHANGES.txt index 619c219c17..ba3a675532 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -25,6 +25,7 @@ * reduce garbage creation in calculatePendingRanges (CASSANDRA-7191) * exit CQLSH with error status code if script fails (CASSANDRA-6344) * Fix bug with some IN queries missig results (CASSANDRA-7105) + * Fix availability validation for LOCAL_ONE CL (CASSANDRA-7319) 1.2.16 diff --git a/src/java/org/apache/cassandra/db/ConsistencyLevel.java b/src/java/org/apache/cassandra/db/ConsistencyLevel.java index 3737c730be..e65b61fcc0 100644 --- a/src/java/org/apache/cassandra/db/ConsistencyLevel.java +++ b/src/java/org/apache/cassandra/db/ConsistencyLevel.java @@ -249,6 +249,10 @@ public enum ConsistencyLevel case ANY: // local hint is acceptable, and local node is always live break; + case LOCAL_ONE: + if (countLocalEndpoints(liveEndpoints) == 0) + throw new UnavailableException(this, 1, 0); + break; case LOCAL_QUORUM: int localLive = countLocalEndpoints(liveEndpoints); if (localLive < blockFor)