From 71a95241759916832273a48e29e464b8083186bc Mon Sep 17 00:00:00 2001 From: Benny Halevy Date: Wed, 2 Feb 2022 14:41:39 +0200 Subject: [PATCH 1/3] storage_service: no need to include utils/serialized_action.hh --- service/storage_service.hh | 1 - 1 file changed, 1 deletion(-) diff --git a/service/storage_service.hh b/service/storage_service.hh index 7fed254fb8..9fa0e6c3d8 100644 --- a/service/storage_service.hh +++ b/service/storage_service.hh @@ -24,7 +24,6 @@ #include #include #include "utils/fb_utilities.hh" -#include "utils/serialized_action.hh" #include "replica/database_fwd.hh" #include "db/schema_features.hh" #include "streaming/stream_state.hh" From b56b10a4bb2557a0768ba63959c0333f8ec82a4d Mon Sep 17 00:00:00 2001 From: Benny Halevy Date: Wed, 2 Feb 2022 14:47:25 +0200 Subject: [PATCH 2/3] view_builder: do_build_step: handle unexpected exceptions Exception are handled by do_build_step in principle, Yet if an unhandled exception escapes handling (e.g. get_units(_sem, 1) fails on a broken semaphore) we should warn about it since the _build_step.trigger() calls do no handle exceptions. Signed-off-by: Benny Halevy --- db/view/view.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/db/view/view.cc b/db/view/view.cc index 127b241293..066f9691fb 100644 --- a/db/view/view.cc +++ b/db/view/view.cc @@ -1844,6 +1844,8 @@ future<> view_builder::do_build_step() { _current_step = _base_to_build_step.begin(); } } + }).handle_exception([] (std::exception_ptr ex) { + vlogger.warn("Unexcepted error executing build step: {}. Ignored.", std::current_exception()); }); } From b94c9ed3e6cec12037b757ee9dc006536c4c677d Mon Sep 17 00:00:00 2001 From: Benny Halevy Date: Wed, 2 Feb 2022 14:27:55 +0200 Subject: [PATCH 3/3] migration_manager: passive_announce(version): handle exception Signed-off-by: Benny Halevy --- service/migration_manager.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/service/migration_manager.cc b/service/migration_manager.cc index 5df185b6d5..44b568477e 100644 --- a/service/migration_manager.cc +++ b/service/migration_manager.cc @@ -1137,8 +1137,10 @@ future migration_manager::start_group0_operation() { * @param version The schema version to announce */ void migration_manager::passive_announce(utils::UUID version) { - _schema_version_to_publish = std::move(version); - (void)_schema_push.trigger(); + _schema_version_to_publish = version; + (void)_schema_push.trigger().handle_exception([version = std::move(version)] (std::exception_ptr ex) { + mlogger.warn("Passive announcing of version {} failed: {}. Ignored.", version); + }); } future<> migration_manager::passive_announce() {