From: Markus Valentin Date: Thu, 16 Apr 2020 05:35:25 +0000 (+0200) Subject: lib-sql: driver-cassandra - Handle more Cassandra errors as uncertain X-Git-Tag: 2.3.13~527 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=53155cad723ab350342a1e58946cf32435d81128;p=thirdparty%2Fdovecot%2Fcore.git lib-sql: driver-cassandra - Handle more Cassandra errors as uncertain Treat CASS_ERROR_LIB_WRITE_ERROR as uncertain error. --- diff --git a/src/lib-sql/driver-cassandra.c b/src/lib-sql/driver-cassandra.c index 22bdb859f0..ef1dcd0691 100644 --- a/src/lib-sql/driver-cassandra.c +++ b/src/lib-sql/driver-cassandra.c @@ -1141,9 +1141,17 @@ driver_cassandra_error_is_uncertain(CassError error) { switch (error) { case CASS_ERROR_SERVER_WRITE_FAILURE: + /* This happens when some of the replicas that were contacted + * by the coordinator replied with an error. */ case CASS_ERROR_SERVER_WRITE_TIMEOUT: + /* A Cassandra timeout during a write query. */ case CASS_ERROR_SERVER_UNAVAILABLE: + /* The coordinator knows there are not enough replicas alive + * to perform a query with the requested consistency level. */ case CASS_ERROR_LIB_REQUEST_TIMED_OUT: + /* A request sent from the driver has timed out. */ + case CASS_ERROR_LIB_WRITE_ERROR: + /* A write error occured. */ return SQL_RESULT_ERROR_TYPE_WRITE_UNCERTAIN; default: return SQL_RESULT_ERROR_TYPE_UNKNOWN;