mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-25 11:00:35 +00:00
" The database::shutdown() and ::drain() methods are called inside the invoke_on_all()s synchronizing with each other via the cross-shard _stop_barrier. If either shard throws in between all others may get stuck waiting for the barrier to collect all arrivals. To fix it the throwing shard should wake up others, resolving the wait somehow. The fix is actually patch #4, the first and the second are the abort() method for the barrier itself. Fixes: #10304 tests: unit(dev), manual " * 'br-barrier-exception-2' of https://github.com/xemul/scylla: database: Abort barriers on exception database: Coroutinize close_tables test: Add test for cross_shard_barrier::abort() cross-shard-barrier: Add .abort() method