Avi Kivity
b20a85d651
Merge 'multishard_mutation_query: make reader_context::lookup_readers() exception safe' from Botond Dénes
...
With regards to closing the looked-up querier if an exception is thrown. In particular, this requires closing the querier if a semaphore mismatch is detected. Move the table lookup above the line where the querier is looked up, to avoid having to handle the exception from it. As a consequence of closing the querier on the error path, the lookup lambda has to be made a coroutine. This is sad, but this is executed once per page, so its cost should be insignificant when spread over an
entire page worth of work.
Also add a unit test checking that the mismatch is detected in the first place and that readers are closed.
Fixes : #13784
Closes #13790
* github.com:scylladb/scylladb:
test/boost/database_test: add unit test for semaphore mismatch on range scans
partition_slice_builder: add set_specific_ranges()
multishard_mutation_query: make reader_context::lookup_readers() exception safe
multishard_mutation_query: lookup_readers(): make inner lambda a coroutine
(cherry picked from commit 1c0e8c25ca )
2023-06-07 13:29:48 +03:00
..
2023-03-07 17:54:53 +08:00
2023-05-02 11:04:05 +03:00
2023-04-07 20:32:28 +08:00
2023-02-28 21:56:53 +08:00
2023-02-01 20:14:51 -03:00
2023-03-22 13:48:50 +02:00
2023-02-01 20:14:51 -03:00
2023-02-15 11:01:50 +02:00
2023-03-21 13:15:12 +02:00
2023-02-15 11:01:50 +02:00
2023-02-14 11:19:03 +02:00
2023-02-01 20:14:51 -03:00
2023-05-07 17:17:36 +03:00
2023-02-15 11:01:50 +02:00
2023-03-21 13:15:12 +02:00
2023-02-19 12:58:22 +08:00
2023-02-01 20:14:51 -03:00
2023-05-17 09:51:51 +03:00
2023-02-01 20:14:51 -03:00
2023-03-22 04:58:01 -04:00
2023-02-15 11:01:50 +02:00
2023-02-01 20:14:51 -03:00
2023-04-19 05:20:42 -04:00
2023-02-15 11:01:50 +02:00
2023-02-01 20:14:51 -03:00
2023-05-07 17:17:36 +03:00
2023-02-15 11:01:50 +02:00
2023-05-07 17:17:36 +03:00
2023-02-15 11:01:50 +02:00
2023-05-07 17:17:36 +03:00
2023-04-17 14:08:37 +03:00
2023-06-07 13:29:48 +03:00
2023-02-01 20:14:51 -03:00
2023-04-27 10:24:46 +03:00
2023-02-15 11:09:04 +02:00
2023-02-28 21:56:53 +08:00
2023-02-01 20:14:51 -03:00
2023-04-29 13:11:31 +02:00
2023-02-28 21:56:53 +08:00
2023-02-01 20:14:51 -03:00
2023-05-02 07:58:34 +03:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-02-15 11:01:50 +02:00
2023-02-28 21:56:53 +08:00
2023-05-07 17:17:36 +03:00
2023-02-01 20:14:51 -03:00
2023-04-24 14:06:43 +03:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-02-19 21:05:45 +02:00
2023-02-19 21:05:45 +02:00
2023-02-01 20:14:51 -03:00
2023-03-21 13:15:12 +02:00
2023-02-01 20:14:51 -03:00
2023-04-20 23:39:18 +02:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-04-17 14:08:37 +03:00
2023-03-21 13:15:12 +02:00
2023-02-15 11:01:50 +02:00
2023-04-05 10:32:58 +02:00
2023-05-02 09:42:41 -04:00
2023-02-15 11:01:50 +02:00
2023-05-02 16:19:32 +03:00
2023-05-03 04:19:42 -04:00
2023-02-28 21:56:53 +08:00
2023-02-28 21:56:53 +08:00
2023-04-24 10:49:37 +02:00
2023-02-15 11:01:50 +02:00
2023-04-24 10:49:37 +02:00
2023-02-14 11:19:03 +02:00
2023-04-26 07:41:57 -04:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-02-15 11:01:50 +02:00
2023-02-14 11:19:03 +02:00
2023-04-26 09:00:25 +03:00
2023-02-28 21:56:53 +08:00
2023-05-14 14:14:23 +03:00
2023-02-03 19:04:32 +01:00
2023-02-28 21:56:53 +08:00
2023-02-01 20:14:51 -03:00
2023-02-28 21:56:53 +08:00
2023-04-26 22:09:17 +02:00
2023-02-01 20:14:51 -03:00
2023-05-02 07:58:34 +03:00
2023-05-07 19:51:10 -03:00
2023-04-27 09:40:18 +02:00
2023-03-22 13:59:47 +02:00
2023-02-01 20:14:51 -03:00
2023-02-15 11:01:50 +02:00
2023-03-07 17:54:53 +08:00
2023-04-21 09:43:53 +03:00
2023-05-11 16:31:23 +03:00
2023-04-27 10:24:46 +03:00
2023-04-27 10:24:46 +03:00
2023-02-28 21:56:53 +08:00
2023-05-19 11:21:35 +03:00
2023-06-06 11:59:31 +03:00
2023-02-01 20:14:51 -03:00
2023-05-12 17:52:12 +03:00
2023-05-12 13:22:32 +08:00
2023-05-11 12:32:22 +08:00
2023-05-11 12:32:22 +08:00
2023-02-17 17:58:26 +03:00
2023-05-06 18:24:48 +08:00
2023-05-17 11:31:07 +03:00
2023-05-11 12:32:22 +08:00
2023-03-22 13:59:47 +02:00
2023-04-23 21:34:02 +03:00
2023-04-29 13:11:31 +02:00
2023-04-24 10:49:36 +02:00
2023-05-16 08:56:16 +03:00
2023-03-27 01:44:00 -04:00
2023-04-24 10:49:37 +02:00
2023-05-15 10:19:39 +03:00
2023-05-09 18:42:03 +04:00
2023-04-17 14:08:37 +03:00
2023-02-15 11:09:04 +02:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-02-19 21:05:45 +02:00
2023-03-09 17:51:15 +01:00
2023-02-28 21:56:53 +08:00
2023-04-26 14:09:58 +08:00
2023-05-02 07:58:34 +03:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-03-16 20:34:18 +08:00
2023-03-06 13:17:21 +03:00
2023-02-15 11:01:50 +02:00
2023-02-01 20:14:51 -03:00
2023-03-28 18:18:48 +02:00
2023-03-28 18:18:48 +02:00