]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-sql: driver-cassandra - Handle more Cassandra errors as uncertain
authorMarkus Valentin <markus.valentin@open-xchange.com>
Thu, 16 Apr 2020 05:35:25 +0000 (07:35 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Wed, 27 May 2020 11:08:51 +0000 (11:08 +0000)
Treat CASS_ERROR_LIB_WRITE_ERROR as uncertain error.

src/lib-sql/driver-cassandra.c

index 22bdb859f0c1d6040d1298b2b2350964e4d2c4c5..ef1dcd069113a6e9fdfb0e584ad10ab2767f3308 100644 (file)
@@ -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;