From 99f8d7dcbe320c911ec0d1dee30c7bbe6df87952 Mon Sep 17 00:00:00 2001 From: Marcin Maliszkiewicz Date: Fri, 31 Mar 2023 13:53:33 +0200 Subject: [PATCH] db: view: use deferred_close for closing staging_sstable_reader When consume_in_thread throws the reader should still be closed. Related https://github.com/scylladb/scylla-enterprise/issues/2661 Closes #13398 Refs: scylladb/scylla-enterprise#2661 Fixes: #13413 --- db/view/view_update_generator.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/view/view_update_generator.cc b/db/view/view_update_generator.cc index 75db180d1a..7bbb0c92b2 100644 --- a/db/view/view_update_generator.cc +++ b/db/view/view_update_generator.cc @@ -162,11 +162,11 @@ future<> view_update_generator::start() { service::get_local_streaming_priority(), nullptr, ::mutation_reader::forwarding::no); + auto close_sr = deferred_close(staging_sstable_reader); inject_failure("view_update_generator_consume_staging_sstable"); auto result = staging_sstable_reader.consume_in_thread(view_updating_consumer(*this, s, std::move(permit), *t, sstables, _as, staging_sstable_reader_handle), dht::incremental_owned_ranges_checker::make_partition_filter(_db.get_keyspace_local_ranges(s->ks_name()))); - staging_sstable_reader.close().get(); if (result == stop_iteration::yes) { break; }