mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-22 07:42:16 +00:00
Fix a lifetime bug where `send_snapshot()` captured `abort_source` by reference and the referenced object could be destroyed before the continuation ran. Use a gate-tracked background coroutine for each snapshot transfer: - keep abort_source on the coroutine frame (stable lifetime) - store a raw abort_source* in _snapshot_transfers for synchronous abort - erase transfer slots immediately on abort to allow same-batch reuse - close _snapshot_gate during abort() to wait for all in-flight transfers This removes the need for extra aborted-transfer bookkeeping and makes snapshot transfer shutdown and ownership semantics explicit. Fixes: SCYLLADB-1234
87 KiB
87 KiB