From 10ae77966c6dbdce7e71b06c5d2fd0146db005e4 Mon Sep 17 00:00:00 2001 From: "Raphael S. Carvalho" Date: Fri, 14 May 2021 22:57:21 -0300 Subject: [PATCH] compaction_manager: Don't swallow exception in procedure used by reshape and resharding run_custom_job() was swallowing all exceptions, which is definitely wrong because failure in a resharding or reshape would be incorrectly interpreted as success, which means upper layer will continue as if everything is ok. For example, ignoring a failure in resharding could result in a shared sstable being left unresharded, so when that sstable reaches a table, scylla would abort as shared ssts are no longer accepted in the main sstable set. Let's allow the exception to be propagated, so failure will be communicated, and resharding and reshape will be all or nothing, as originally intended. Fixes #8657. Signed-off-by: Raphael S. Carvalho Message-Id: <20210515015721.384667-1-raphaelsc@scylladb.com> --- sstables/compaction_manager.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/sstables/compaction_manager.cc b/sstables/compaction_manager.cc index bf8a07357f..816b83bb8b 100644 --- a/sstables/compaction_manager.cc +++ b/sstables/compaction_manager.cc @@ -314,6 +314,7 @@ future<> compaction_manager::run_custom_job(column_family* cf, sstring name, non cmlog.info("{} was abruptly stopped, reason: {}", name, e.what()); } catch (...) { cmlog.error("{} failed: {}", name, std::current_exception()); + throw; } }); return task->compaction_done.get_future().then([task] {});