Can you turn on debug logging and try this patch? On Wed, Jul 21, 2010 at 1:23 AM, Per Olesen <p...@trifork.com> wrote: >>> And when one of my non-seed nodes in my 3 node cluster is down, I do NOT >>> get the exception. >>> Anyway, guess I need to try and reproduce it in small scale. >> >>Does it return w/ UE immediately, or does it wait for RPCTimeout first? > > It returns with UE immediately. >
-- Jonathan Ellis Project Chair, Apache Cassandra co-founder of Riptano, the source for professional Cassandra support http://riptano.com
Index: src/java/org/apache/cassandra/service/StorageProxy.java =================================================================== --- src/java/org/apache/cassandra/service/StorageProxy.java (revision 979441) +++ src/java/org/apache/cassandra/service/StorageProxy.java (working copy) @@ -204,6 +204,7 @@ Collection<InetAddress> writeEndpoints = rs.getWriteEndpoints(StorageService.getPartitioner().getToken(rm.key()), table, naturalEndpoints); Multimap<InetAddress, InetAddress> hintedEndpoints = rs.getHintedEndpoints(table, writeEndpoints); int blockFor = determineBlockFor(writeEndpoints.size(), consistency_level); + logger.debug("blocking for " + blockFor + " endpoints out of " + writeEndpoints.size()); // avoid starting a write we know can't achieve the required consistency assureSufficientLiveNodes(blockFor, writeEndpoints, hintedEndpoints, consistency_level); @@ -296,6 +297,7 @@ } if (liveNodes < blockFor) { + logger.debug("only " + liveNodes + " seen out of " + blockFor + " required; throwing UE"); throw new UnavailableException(); } }