diff --git a/db/view/view.cc b/db/view/view.cc index 6e3a790416..3077fdc14e 100644 --- a/db/view/view.cc +++ b/db/view/view.cc @@ -1266,6 +1266,10 @@ future<> view_builder::start(service::migration_manager& mm) { } return container().invoke_on(0, [eptr = std::move(eptr)] (view_builder& builder) { + // The &builder is alive, because it can only be destroyed in + // sharded::stop(), which, in turn, waits for all + // view_builder::stop()-s to finish, and each stop() waits for + // the shard's current future (called _started) to resolve. if (!eptr) { if (++builder._shards_finished_read == smp::count) { builder._shards_finished_read_promise.set_value();