From 793665232200c602fd9df4a8f26febc762aae713 Mon Sep 17 00:00:00 2001 From: Piotr Sarna Date: Sat, 27 Feb 2021 15:01:00 +0100 Subject: [PATCH] db,view: improve verbosity of errors coming from view updates The error now contains information about the view table that failed, as well as base and view tokens. Example: view - Error applying view update to 127.0.0.1 (view: ks.testme_v_idx_index, base token: -4069959284402364209, view token: -3248873570005575792): std::runtime_error (manually injected error) Fixes #8177 Closes #8178 --- db/view/view.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/db/view/view.cc b/db/view/view.cc index cf658a489b..1799908804 100644 --- a/db/view/view.cc +++ b/db/view/view.cc @@ -1197,7 +1197,7 @@ future<> mutate_MV( auto& keyspace_name = mut.s->ks_name(); auto target_endpoint = get_view_natural_endpoint(keyspace_name, base_token, view_token); auto remote_endpoints = service::get_local_storage_service().get_token_metadata().pending_endpoints_for(view_token, keyspace_name); - auto maybe_account_failure = [tr_state, &stats, &cf_stats, units = pending_view_updates.split(mut.fm.representation().size())] ( + auto maybe_account_failure = [s = mut.s, tr_state, &stats, &cf_stats, base_token, view_token, units = pending_view_updates.split(mut.fm.representation().size())] ( future<>&& f, gms::inet_address target, bool is_local, @@ -1210,7 +1210,8 @@ future<> mutate_MV( auto ep = f.get_exception(); tracing::trace(tr_state, "Failed to apply {}view update for {} and {} remote endpoints", seastar::value_of([is_local]{return is_local ? "local " : "";}), target, remotes); - vlogger.error("Error applying view update to {}: {}", target, ep); + vlogger.error("Error applying view update to {} (view: {}.{}, base token: {}, view token: {}): {}", + target, s->ks_name(), s->cf_name(), base_token, view_token, ep); return make_exception_future<>(std::move(ep)); } else { tracing::trace(tr_state, "Successfully applied {}view update for {} and {} remote endpoints",