Mercurial > dovecot > core-2.2
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 */