From c8021abea622405e98b90d7051afee680a25b660 Mon Sep 17 00:00:00 2001 From: Sanal Date: Thu, 8 Feb 2024 11:58:16 -0800 Subject: [PATCH] Add lock in is_blk_alloced to fix concurrency issue. (#310) There seems a concurrency issue when is blk alloced fails in test_data_service. --- conanfile.py | 2 +- src/lib/device/virtual_dev.cpp | 2 +- src/tests/CMakeLists.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/conanfile.py b/conanfile.py index 3eab992ad..38bb6fb8d 100644 --- a/conanfile.py +++ b/conanfile.py @@ -5,7 +5,7 @@ class HomestoreConan(ConanFile): name = "homestore" - version = "5.1.3" + version = "5.1.4" homepage = "https://github.com/eBay/Homestore" description = "HomeStore Storage Engine" diff --git a/src/lib/device/virtual_dev.cpp b/src/lib/device/virtual_dev.cpp index c534c2d71..7153d31b6 100644 --- a/src/lib/device/virtual_dev.cpp +++ b/src/lib/device/virtual_dev.cpp @@ -149,7 +149,7 @@ folly::Future< std::error_code > VirtualDev::async_format() { } bool VirtualDev::is_blk_alloced(BlkId const& blkid) const { - return m_dmgr.get_chunk(blkid.chunk_num())->blk_allocator()->is_blk_alloced(blkid); + return m_dmgr.get_chunk(blkid.chunk_num())->blk_allocator()->is_blk_alloced(blkid, true /* lock */); } BlkAllocStatus VirtualDev::commit_blk(BlkId const& blkid) { diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index fac27aa58..e5f4ea0b2 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -110,7 +110,7 @@ if (${io_tests}) if(${epoll_tests}) # add_test(NAME LogStore-Epoll COMMAND ${CMAKE_BINARY_DIR}/bin/test_log_store) add_test(NAME MetaBlkMgr-Epoll COMMAND ${CMAKE_BINARY_DIR}/bin/test_meta_blk_mgr) - # add_test(NAME DataService-Epoll COMMAND ${CMAKE_BINARY_DIR}/bin/test_data_service) + add_test(NAME DataService-Epoll COMMAND ${CMAKE_BINARY_DIR}/bin/test_data_service) # add_test(NAME SoloReplDev-Epoll COMMAND ${CMAKE_BINARY_DIR}/bin/test_solo_repl_dev) # add_test(NAME HomeRaftLogStore-Epoll COMMAND ${CMAKE_BINARY_DIR}/bin/test_home_raft_logstore)