changeset 21972:1ea4631afc59

cassandra: Use fallback consistency for CASS_ERROR_LIB_NO_HOSTS_AVAILABLE errors I'm not entirely sure if this is always appropriate, but at least this error happens every time when attempting to use write_consistency=two when there is only a single Cassandra node.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Fri, 21 Apr 2017 12:54:17 +0300
parents 486b1b94f39c
children 67b7d931e8a8
files src/lib-sql/driver-cassandra.c
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-sql/driver-cassandra.c	Fri Apr 21 20:59:55 2017 +0300
+++ b/src/lib-sql/driver-cassandra.c	Fri Apr 21 12:54:17 2017 +0300
@@ -841,12 +841,17 @@
 		   enough nodes available. "All hosts in current policy
 		   attempted and were either unavailable or failed"
 
+		   no hosts available = The client library couldn't connect to
+		   enough cassanra nodes. Error message is the same as for
+		   "unavailable".
+
 		   write timeout = cassandra server couldn't reach all the
 		   needed nodes. this may be because it hasn't yet detected
 		   that the servers are down, or because the servers are just
 		   too busy. we'll try the fallback consistency to avoid
 		   unnecessary temporary errors. */
 		if ((error == CASS_ERROR_SERVER_UNAVAILABLE ||
+		     error == CASS_ERROR_LIB_NO_HOSTS_AVAILABLE ||
 		     error == CASS_ERROR_SERVER_WRITE_TIMEOUT) &&
 		    result->fallback_consistency != result->consistency) {
 			/* retry with fallback consistency */