Piotr Smaron
d4c28690e1
db: fail reads and writes with local consistencty level to a DC with RF=0
...
When read or write operations are performed on a DC with RF=0 with LOCAL_QUORUM
or LOCAL_ONE consistency level, Cassandra throws `Unavailable` exception.
Scylla allowed such read operations and failed write operations with a cryptic:
"broken promise" error. This occured because the initial availability
check passed (quorum of 0 requires 0 replicas), but execution failed
later when no replicas existed to process the mutation.
This patch adds an explicit RF=0 validation for LOCAL_ONE and LOCAL_QUORUM that
throws before attempting operation execution.
The change also requires `test_query_dc_with_rf_0_does_not_crash_db` to be
upgraded. This testcase was asserting somewhat similar scenario, but wasn't
taking into account the whole matrix of combinations:
- scenarios: successful vs unsuccesful operation outcome
- local consistency levels: LOCAL_QUORUM & LOCAL_ONE
- operations: SELECT (read) & INSERT (write)
and so it's been extended to cover both the pre-existing and the current issues
and the whole matrix of combinations.
Fixes : scylladb/scylladb#27893
2026-01-22 12:49:45 +01:00
..
2026-01-08 21:55:16 +02:00
2026-01-13 08:33:17 +02:00
2026-01-08 21:55:16 +02:00
2026-01-09 10:01:23 +02:00
2026-01-14 18:57:55 +01:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-13 10:22:38 +02:00
2026-01-08 21:55:18 +02:00
2026-01-08 21:55:16 +02:00
2026-01-13 09:59:24 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2025-04-25 12:25:15 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2025-03-24 14:54:45 +02:00
2025-07-10 10:56:53 +08:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2025-11-13 17:00:08 +01:00
2026-01-08 21:55:16 +02:00
2025-12-12 15:11:03 +02:00
2025-09-09 19:01:12 +02:00
2025-05-10 16:30:18 +02:00
2026-01-08 21:55:16 +02:00
2025-12-30 17:34:56 +01:00
2026-01-08 21:55:16 +02:00
2025-03-30 19:23:40 +03:00
2025-06-23 17:56:26 +02:00
2025-05-10 16:30:18 +02:00
2026-01-08 21:55:16 +02:00
2026-01-14 17:50:46 +02:00
2025-11-03 16:04:37 +01:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-14 13:11:27 +01:00
2025-09-09 19:01:12 +02:00
2025-07-01 12:58:02 +02:00
2025-11-18 08:17:17 +02:00
2025-10-22 14:06:30 +00:00
2026-01-08 21:55:16 +02:00
2025-05-10 16:30:18 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2025-03-30 19:23:40 +03:00
2026-01-08 21:55:16 +02:00
2026-01-14 09:55:45 +01:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:18 +02:00
2025-08-22 09:51:24 +03:00
2025-12-29 19:13:55 +01:00
2025-10-29 23:32:58 +01:00
2025-12-29 14:22:34 +01:00
2025-09-08 17:14:37 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2025-11-13 11:07:45 +01:00
2026-01-08 21:55:16 +02:00
2025-08-22 09:51:24 +03:00
2026-01-22 12:49:45 +01:00
2025-03-30 19:23:40 +03:00
2025-11-25 09:15:46 +01:00
2025-04-17 16:22:58 +02:00
2025-12-12 15:11:03 +02:00
2025-11-24 17:12:13 +01:00
2025-08-10 10:16:00 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:53:47 +02:00
2025-12-17 14:18:04 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2025-03-24 14:54:45 +02:00
2026-01-08 21:55:16 +02:00
2025-10-24 21:23:41 +03:00
2025-03-24 14:54:45 +02:00
2026-01-08 21:55:16 +02:00
2025-10-07 17:48:55 +02:00
2026-01-08 21:55:16 +02:00
2025-03-30 19:23:40 +03:00
2026-01-08 21:55:16 +02:00
2026-01-13 11:46:48 +02:00
2025-05-10 16:30:18 +02:00
2026-01-08 21:55:16 +02:00
2025-03-30 19:23:40 +03:00
2025-03-24 14:54:45 +02:00
2025-05-19 11:50:55 +00:00
2026-01-08 21:55:16 +02:00
2025-12-03 15:35:59 +01:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2025-05-10 16:30:18 +02:00
2025-05-10 16:30:18 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2025-07-10 10:46:55 +02:00
2026-01-08 21:55:16 +02:00
2025-10-30 15:53:54 +02:00
2025-05-10 16:30:18 +02:00
2025-10-29 20:13:08 +02:00
2025-09-15 12:34:45 +02:00
2026-01-08 21:55:16 +02:00
2026-01-15 10:25:45 +01:00
2025-09-19 12:50:20 +03:00
2026-01-08 21:55:16 +02:00
2025-04-23 14:29:28 +02:00
2026-01-09 16:11:39 +08:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2025-05-10 16:30:49 +02:00
2026-01-09 10:01:23 +02:00
2025-05-10 16:30:18 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:53:47 +02:00
2025-12-22 09:14:30 +01:00
2026-01-08 21:53:47 +02:00
2025-09-01 14:16:29 +02:00
2025-08-22 09:51:24 +03:00
2025-03-30 19:23:40 +03:00
2026-01-08 21:55:16 +02:00
2025-03-24 14:54:45 +02:00
2025-03-30 19:23:40 +03:00
2025-05-10 16:30:18 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2025-03-24 14:54:45 +02:00
2026-01-08 21:55:16 +02:00
2025-09-03 07:25:34 +03:00
2026-01-08 21:55:16 +02:00
2026-01-09 10:01:23 +02:00
2025-12-05 09:26:26 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2026-01-08 21:55:16 +02:00
2025-10-29 23:32:58 +01:00
2025-08-22 09:51:24 +03:00
2025-05-10 16:30:34 +02:00
2025-11-17 15:21:28 +01:00