Ernest Zaslavsky
116a2f43ee
sstables_loader: prevent use-after-free on table drop during streaming
...
sstables_loader::load_and_stream holds a replica::table& reference via
the sstable_streamer for the entire streaming operation. If the table
is dropped concurrently (e.g. DROP TABLE or DROP KEYSPACE), the
reference becomes dangling and the next access crashes with SEGV.
This was observed in a longevity-50gb-12h-master test run where a
keyspace was dropped while load_and_stream was still streaming SSTables
from a previous batch.
Fix by acquiring a stream_in_progress() phaser guard in load_and_stream
before creating the streamer. table::stop() calls
_pending_streams_phaser.close() which blocks until all outstanding
guards are released, keeping the table alive for the duration of the
streaming operation.
Fixes: SCYLLADB-1639
Closes scylladb/scylladb#29403
(cherry picked from commit e5e6608f20 )
Closes scylladb/scylladb#29558
Closes scylladb/scylladb#29600
2026-04-24 10:33:51 +02:00
..
2026-04-06 17:51:34 +03:00
2026-01-19 06:39:29 +02:00
2025-11-04 12:47:24 +01:00
2026-01-12 10:33:11 +01:00
2025-11-25 11:42:34 +02:00
2025-10-06 13:19:54 +00:00
2026-04-16 21:57:08 +03:00
2025-09-15 12:34:45 +02:00
2025-10-01 22:40:29 +02:00
2025-03-30 19:23:40 +03:00
2026-01-08 16:40:20 +02:00
2025-03-30 19:23:40 +03:00
2025-04-25 12:25:15 +02:00
2025-12-22 14:45:08 +01:00
2025-03-24 14:54:45 +02:00
2025-07-10 10:56:53 +08:00
2026-04-09 15:53:43 +02:00
2025-10-20 10:32:58 +03:00
2025-06-09 12:59:04 +02:00
2025-07-25 17:16:14 +02:00
2025-05-30 08:35:56 +02:00
2025-11-16 09:29:27 +01:00
2025-10-30 02:44:47 +00:00
2025-05-10 16:30:18 +02:00
2025-09-09 19:01:12 +02:00
2025-05-10 16:30:18 +02:00
2025-03-30 19:23:40 +03:00
2026-02-27 01:39:05 +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
2025-05-19 11:50:55 +00:00
2026-02-18 12:47:30 +02:00
2025-09-09 19:01:12 +02:00
2025-05-10 16:30:18 +02:00
2026-01-19 09:42:20 +02:00
2025-09-09 19:01:12 +02:00
2025-07-01 12:58:02 +02:00
2025-10-22 18:12:52 +02:00
2025-03-24 14:54:45 +02:00
2025-09-15 12:34:45 +02:00
2025-05-10 16:30:18 +02:00
2025-03-24 14:54:45 +02:00
2025-09-08 11:38:31 +02:00
2026-01-29 11:27:37 +01:00
2025-09-08 11:38:30 +02:00
2025-03-30 19:23:40 +03:00
2026-01-19 16:35:49 +01:00
2026-04-07 14:22:48 +03:00
2026-01-19 09:39:49 +02:00
2025-08-22 09:51:24 +03:00
2026-03-10 16:48:05 +01:00
2025-08-28 01:42:34 +02:00
2025-12-30 11:17:41 +01:00
2025-09-08 17:14:37 +02:00
2025-10-22 18:12:52 +02:00
2026-02-03 11:33:53 +01:00
2025-10-21 00:59:33 +00:00
2025-08-22 09:51:24 +03:00
2025-08-22 11:33:32 +02:00
2025-03-30 19:23:40 +03:00
2025-11-26 08:36:52 +01:00
2025-04-17 16:22:58 +02:00
2025-08-22 09:51:24 +03:00
2025-08-04 15:38:16 +03:00
2025-08-10 10:16:00 +02:00
2026-01-09 19:10:11 +01:00
2026-04-20 12:59:53 +02:00
2025-03-30 19:23:40 +03:00
2025-03-24 14:54:45 +02:00
2026-03-18 10:15:34 +01:00
2025-03-24 14:54:45 +02:00
2026-01-22 18:19:36 +01:00
2025-10-17 10:27:33 +00:00
2025-03-24 14:54:45 +02:00
2025-11-20 10:36:54 +02:00
2025-09-22 17:21:06 +02:00
2025-08-22 09:51:24 +03:00
2025-03-30 19:23:40 +03:00
2025-06-27 16:23:08 +03:00
2025-05-29 16:12:09 +03:00
2025-05-10 16:30:18 +02:00
2026-01-08 16:39:10 +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
2025-03-30 13:39:40 +03:00
2025-05-10 16:30:18 +02:00
2025-05-10 16:30:18 +02:00
2025-05-10 16:30:18 +02:00
2025-07-10 10:46:55 +02:00
2026-04-07 14:22:27 +03:00
2026-01-28 12:42:10 +02:00
2026-02-26 09:55:57 +02:00
2025-11-04 15:40:46 +02:00
2026-04-16 10:56:59 +03:00
2025-04-29 15:47:33 -03:00
2026-01-15 17:01:30 +02:00
2025-09-19 12:50:20 +03:00
2026-04-24 10:33:51 +02:00
2026-01-19 09:39:13 +02:00
2025-07-31 14:31:55 +03:00
2026-02-02 16:35:08 +01:00
2025-12-19 17:32:12 +01:00
2025-05-10 16:30:18 +02:00
2026-01-23 19:24:06 +00:00
2025-09-29 15:30:13 +03:00
2026-02-18 12:43:31 +02:00
2025-05-10 16:30:49 +02:00
2026-02-02 21:26:18 +01:00
2025-05-10 16:30:18 +02:00
2025-10-22 17:13:34 +00:00
2025-03-24 14:54:45 +02:00
2025-09-09 19:01:12 +02:00
2025-09-09 19:01:12 +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
2025-09-17 15:23:32 +05:30
2026-03-24 16:09:02 +01:00
2025-03-30 19:23:40 +03:00
2025-05-10 16:30:18 +02:00
2025-03-24 14:54:45 +02:00
2025-10-22 18:12:52 +02:00
2025-03-24 14:54:45 +02:00
2025-08-05 13:54:14 +02:00
2025-09-03 07:25:34 +03:00
2025-06-11 11:29:33 +03:00
2025-07-22 15:03:30 +02:00
2025-12-05 20:13:02 +01:00
2025-08-27 10:23:04 +02:00
2026-01-08 16:42:08 +02:00
2025-07-28 10:08:06 +02:00
2026-01-22 18:22:05 +01:00
2025-08-22 09:51:24 +03:00
2025-05-10 16:30:34 +02:00
2025-09-22 09:32:46 +03:00