Botond Dénes
8e6648870b
reader_concurrency_semaphore: with_permit(): proper clean-up after queue overload
...
with_permit() creates a permit, with a self-reference, to avoid
attaching a continuation to the permit's run function. This
self-reference is used to keep the permit alive, until the execution
loop processes it. This self reference has to be carefully cleared on
error-paths, otherwise the permit will become a zombie, effectively
leaking memory.
Instead of trying to handle all loose ends, get rid of this
self-reference altogether: ask caller to provide a place to save the
permit, where it will survive until the end of the call. This makes the
call-site a little bit less nice, but it gets rid of a whole class of
possible bugs.
Fixes : #22588
Closes scylladb/scylladb#22624
(cherry picked from commit f2d5819645 )
Closes scylladb/scylladb#22703
2025-02-13 15:03:57 +02:00
..
2024-09-11 23:21:40 +03:00
2024-05-20 12:56:20 +03:00
2024-06-21 19:20:27 +03:00
2025-02-03 15:50:22 +02:00
2024-08-05 08:23:35 +03:00
2024-09-05 19:31:30 +03:00
2024-08-05 08:23:35 +03:00
2025-01-08 11:48:23 +01:00
2024-08-05 08:23:35 +03:00
2024-10-01 01:38:47 +00:00
2024-05-02 19:37:04 +03:00
2024-08-05 08:23:35 +03:00
2024-09-11 23:21:40 +03:00
2024-06-14 13:47:10 +05:30
2024-06-25 12:08:11 +03:00
2024-08-28 10:59:44 +02:00
2024-05-20 12:56:20 +03:00
2024-06-17 17:33:55 +03:00
2024-10-01 17:41:02 +03:00
2024-11-04 14:24:18 -03:00
2024-05-26 12:32:43 +08:00
2024-06-07 06:44:59 +08:00
2024-08-13 10:07:12 +02:00
2024-09-11 23:21:40 +03:00
2024-08-29 21:19:23 +03:00
2024-08-05 08:23:35 +03:00
2024-08-02 14:38:46 +02:00
2024-09-11 23:21:40 +03:00
2024-06-21 07:12:06 +03:00
2024-08-26 16:56:18 +03:00
2024-04-19 07:44:07 +03:00
2024-05-20 12:56:20 +03:00
2024-08-22 23:34:24 +03:00
2024-08-05 08:23:35 +03:00
2024-08-29 21:19:23 +03:00
2024-05-05 23:31:48 +03:00
2024-08-05 08:23:35 +03:00
2024-06-21 07:12:06 +03:00
2024-08-28 10:59:44 +02:00
2024-05-20 12:56:20 +03:00
2024-08-22 20:51:38 +03:00
2024-07-31 09:18:54 +02:00
2024-06-19 23:19:33 +02:00
2024-08-05 08:23:35 +03:00
2024-10-01 01:38:47 +00:00
2024-05-05 23:31:48 +03:00
2024-08-05 08:23:35 +03:00
2024-08-05 08:23:35 +03:00
2024-08-05 08:23:35 +03:00
2025-02-03 16:15:46 +02:00
2024-08-29 10:37:07 +02:00
2024-08-05 08:23:35 +03:00
2024-08-05 08:23:35 +03:00
2024-09-10 19:05:57 +03:00
2024-10-24 09:18:11 -04:00
2024-09-11 13:12:32 +03:00
2024-06-21 07:12:06 +03:00
2024-08-13 10:03:46 +02:00
2024-09-10 19:05:57 +03:00
2024-10-24 09:18:11 -04:00
2024-09-13 12:25:10 +03:00
2024-06-21 07:12:06 +03:00
2024-11-08 15:32:24 +01:00
2024-09-11 23:21:40 +03:00
2024-05-26 12:32:43 +08:00
2024-08-05 08:23:35 +03:00
2024-05-16 00:28:47 +02:00
2024-06-21 07:12:06 +03:00
2024-05-26 12:32:43 +08:00
2025-02-13 15:03:57 +02:00
2024-08-22 20:51:38 +03:00
2024-04-19 22:56:16 +08:00
2024-08-05 08:23:35 +03:00
2024-06-04 15:43:04 +02:00
2024-09-11 23:21:40 +03:00
2024-08-27 16:15:40 +03:00
2024-08-11 09:53:19 -04:00
2024-06-21 07:12:06 +03:00
2024-09-09 14:22:58 +03:00
2024-03-26 15:31:18 +02:00
2024-11-12 14:36:06 +01:00
2024-06-18 15:55:22 +08:00
2024-08-08 10:42:09 +02:00
2024-04-19 22:57:36 +08:00
2024-05-27 17:34:38 +03:00
2024-05-16 13:30:03 +02:00
2024-09-11 23:21:40 +03:00
2024-12-06 10:36:46 +02:00
2024-08-13 10:03:46 +02:00
2024-09-13 12:25:10 +03:00
2025-01-21 00:48:34 +05:30
2024-09-11 23:21:40 +03:00
2024-09-13 14:09:53 +03:00
2024-09-01 19:58:15 +03:00
2024-08-17 23:38:05 +05:30
2024-09-05 19:31:30 +03:00
2024-09-05 19:33:29 +03:00
2024-06-18 23:36:30 +05:30
2024-08-29 21:19:23 +03:00
2024-09-11 23:21:40 +03:00
2024-05-03 11:34:23 +03:00
2024-07-19 13:15:57 +05:30
2025-02-06 16:47:14 +01:00
2024-08-29 10:37:07 +02:00
2024-05-27 17:34:38 +03:00
2024-09-11 23:21:40 +03:00
2024-08-23 09:26:22 +03:00
2024-06-18 15:55:22 +08:00
2024-05-26 12:32:43 +08:00
2024-04-19 22:56:16 +08:00
2024-09-11 23:21:40 +03:00
2025-02-03 15:50:22 +02:00
2024-08-02 14:38:46 +02:00
2024-05-05 23:31:48 +03:00
2024-05-05 23:31:48 +03:00
2024-12-04 13:44:33 +02:00
2024-05-26 12:32:43 +08:00