From 4cee8206f860ab776e570d45ee512045995e3fa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Botond=20D=C3=A9nes?= Date: Thu, 13 Jul 2023 16:48:50 +0300 Subject: [PATCH] Revert "view_update_generator: Increase the registration_queue_size" This reverts commit d3034e0fab9848a22f5abe598e0e91f51ffacc51. The test modified by this commit (view_build_test.test_view_update_generator_register_semaphore_unit_leak) often fails, breaking build jobs. --- db/view/view_update_generator.hh | 2 +- test/boost/view_build_test.cc | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/db/view/view_update_generator.hh b/db/view/view_update_generator.hh index 628187f1d4..dbc8fd9b7f 100644 --- a/db/view/view_update_generator.hh +++ b/db/view/view_update_generator.hh @@ -50,7 +50,7 @@ using wait_for_all_updates = bool_class; class view_update_generator : public async_sharded_service { public: - static constexpr size_t registration_queue_size = 100; + static constexpr size_t registration_queue_size = 5; private: replica::database& _db; diff --git a/test/boost/view_build_test.cc b/test/boost/view_build_test.cc index 23b13ff511..631415f586 100644 --- a/test/boost/view_build_test.cc +++ b/test/boost/view_build_test.cc @@ -464,17 +464,17 @@ SEASTAR_TEST_CASE(test_view_update_generator) { BOOST_REQUIRE_EQUAL(view_update_generator.available_register_units(), db::view::view_update_generator::registration_queue_size); - auto register_and_check_semaphore = [&view_update_generator, t] (std::vector::iterator b, std::vector::iterator e) { - std::vector> register_futures; - for (auto it = b; it != e; ++it) { - register_futures.emplace_back(view_update_generator.register_staging_sstable(*it, t)); - } - const auto qsz = db::view::view_update_generator::registration_queue_size; - when_all(register_futures.begin(), register_futures.end()).get(); - REQUIRE_EVENTUALLY_EQUAL(view_update_generator.available_register_units(), qsz); - }; - register_and_check_semaphore(ssts.begin(), ssts.begin() + 10); - register_and_check_semaphore(ssts.begin() + 10, ssts.end()); + parallel_for_each(ssts.begin(), ssts.begin() + 10, [&] (shared_sstable& sst) { + return view_update_generator.register_staging_sstable(sst, t); + }).get(); + + BOOST_REQUIRE_EQUAL(view_update_generator.available_register_units(), db::view::view_update_generator::registration_queue_size); + + parallel_for_each(ssts.begin() + 10, ssts.end(), [&] (shared_sstable& sst) { + return view_update_generator.register_staging_sstable(sst, t); + }).get(); + + BOOST_REQUIRE_EQUAL(view_update_generator.available_register_units(), db::view::view_update_generator::registration_queue_size); auto select_by_p_id = e.prepare("SELECT * FROM t WHERE p = ?").get(); auto select_by_p_and_c_id = e.prepare("SELECT * FROM t WHERE p = ? and c = ?").get();