mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-20 08:30:35 +00:00
Compaction tasks executors serve two different purposes - as compaction manager related entity they execute compaction operation and as task manager related entity they track compaction status. When one role depends on the other, as it currently is for compaction_task_impl::done() and compaction_task_executor::compaction_done(), requirements of both roles need to be satisfied at the same time in each corner case. Such complexity leads to bugs. To prevent it, compaction_task_impl::done() of executors no longer depends on compaction_task_executor::compaction_done(). Fixes: #14912. Closes scylladb/scylladb#15140 * github.com:scylladb/scylladb: compaction: warn about compaction_done() compaction: do not run stopped compaction compaction: modify lowest compaction tasks' run method compaction: pass do_throw_if_stopping to compaction_task_executor