Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Switch server role raising 'segment fault' #2126

Open
1 task done
JinHai-CN opened this issue Oct 29, 2024 · 0 comments
Open
1 task done

[Bug]: Switch server role raising 'segment fault' #2126

JinHai-CN opened this issue Oct 29, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@JinHai-CN
Copy link
Contributor

JinHai-CN commented Oct 29, 2024

Is there an existing issue for the same bug?

  • I have checked the existing issues.

Other environment information

No response

Actual behavior and How to reproduce it

Set as leader, connect to the leader, then set the leader to admin, following error issued:

=================================================================
==261821==ERROR: AddressSanitizer: heap-use-after-free on address 0x513000040089 at pc 0x5af15578b914 bp 0x76b27fdff370 sp 0x76b27fdff368
WRITE of size 1 at 0x513000040089 thread T246
    #0 0x5af15578b913 in void std::__1::__cxx_atomic_store[abi:ne180100]<bool>(std::__1::__cxx_atomic_base_impl<bool>*, bool, std::__1::memory_order) /usr/lib/llvm-18/include/c++/v1/__atomic/cxx_atomic_impl.h:336:3
    #1 0x5af15578b7da in std::__1::__atomic_base<bool, false>::store[abi:ne180100](bool, std::__1::memory_order) /usr/lib/llvm-18/include/c++/v1/__atomic/atomic_base.h:52:5
    #2 0x5af15578b209 in std::__1::atomic<bool>::operator=[abi:ne180100](bool) /usr/lib/llvm-18/include/c++/v1/__atomic/atomic.h:54:13
    #3 0x5af1563e3d4f in infinity::PeerClient@peer_thrift_client::Process() /home/infiniflow/Documents/development/infinity/src/network/peer_thrift_client.cpp:126:30
    #4 0x5af1563eb3a9 in infinity::PeerClient@peer_thrift_client::Init()::$_0::operator()() const /home/infiniflow/Documents/development/infinity/src/network/peer_thrift_client.cpp:44:63
    #5 0x5af1563eb344 in decltype(std::declval<infinity::PeerClient@peer_thrift_client::Init()::$_0>()()) std::__1::__invoke[abi:ne180100]<infinity::PeerClient@peer_thrift_client::Init()::$_0>(infinity::PeerClient@peer_thrift_client::Init()::$_0&&) /usr/lib/llvm-18/include/c++/v1/__type_traits/invoke.h:344:25
    #6 0x5af1563eb31c in void std::__1::__thread_execute[abi:ne180100]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, infinity::PeerClient@peer_thrift_client::Init()::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, infinity::PeerClient@peer_thrift_client::Init()::$_0>&, std::__1::__tuple_indices<...>) /usr/lib/llvm-18/include/c++/v1/__thread/thread.h:193:3
    #7 0x5af1563eafe5 in void* std::__1::__thread_proxy[abi:ne180100]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, infinity::PeerClient@peer_thrift_client::Init()::$_0>>(void*) /usr/lib/llvm-18/include/c++/v1/__thread/thread.h:202:3
    #8 0x5af15572ef4c in asan_thread_start(void*) asan_interceptors.cpp.o
    #9 0x76b3d349ca93 in start_thread nptl/pthread_create.c:447:8
    #10 0x76b3d3529c3b in clone3 misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

0x513000040089 is located 137 bytes inside of 368-byte region [0x513000040000,0x513000040170)
freed by thread T208 here:
    #0 0x5af155770301 in operator delete(void*) (/home/infiniflow/Documents/development/infinity/cmake-build-debug/src/infinity+0xc78301) (BuildId: 14e05823b63d3f39eed632ca5e4da0abda6cb920)
    #1 0x5af155784f34 in void std::__1::__libcpp_operator_delete[abi:ne180100]<void*>(void*) /usr/lib/llvm-18/include/c++/v1/new:280:3
    #2 0x5af155784ee8 in void std::__1::__do_deallocate_handle_size[abi:ne180100]<>(void*, unsigned long) /usr/lib/llvm-18/include/c++/v1/new:302:10
    #3 0x5af155784e74 in std::__1::__libcpp_deallocate[abi:ne180100](void*, unsigned long, unsigned long) /usr/lib/llvm-18/include/c++/v1/new:317:12
    #4 0x5af15592ac8c in std::__1::allocator<std::__1::__shared_ptr_emplace<infinity::PeerClient@peer_thrift_client, std::__1::allocator<infinity::PeerClient@peer_thrift_client>>>::deallocate[abi:ne180100](std::__1::__shared_ptr_emplace<infinity::PeerClient@peer_thrift_client, std::__1::allocator<infinity::PeerClient@peer_thrift_client>>*, unsigned long) /usr/lib/llvm-18/include/c++/v1/__memory/allocator.h:139:7
    #5 0x5af15592ac44 in std::__1::allocator_traits<std::__1::allocator<std::__1::__shared_ptr_emplace<infinity::PeerClient@peer_thrift_client, std::__1::allocator<infinity::PeerClient@peer_thrift_client>>>>::deallocate[abi:ne180100](std::__1::allocator<std::__1::__shared_ptr_emplace<infinity::PeerClient@peer_thrift_client, std::__1::allocator<infinity::PeerClient@peer_thrift_client>>>&, std::__1::__shared_ptr_emplace<infinity::PeerClient@peer_thrift_client, std::__1::allocator<infinity::PeerClient@peer_thrift_client>>*, unsigned long) /usr/lib/llvm-18/include/c++/v1/__memory/allocator_traits.h:289:9
    #6 0x5af15592a923 in std::__1::__shared_ptr_emplace<infinity::PeerClient@peer_thrift_client, std::__1::allocator<infinity::PeerClient@peer_thrift_client>>::__on_zero_shared_weak() /usr/lib/llvm-18/include/c++/v1/__memory/shared_ptr.h:294:5
    #7 0x5af155784fce in std::__1::__shared_weak_count::__release_shared[abi:ne180100]() /usr/lib/llvm-18/include/c++/v1/__memory/shared_ptr.h:187:7
    #8 0x5af155907245 in std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>::~shared_ptr[abi:ne180100]() /usr/lib/llvm-18/include/c++/v1/__memory/shared_ptr.h:648:17
    #9 0x5af15590d7dc in std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>>::~pair() /usr/lib/llvm-18/include/c++/v1/__utility/pair.h:80:29
    #10 0x5af15590d7b4 in void std::__1::__destroy_at[abi:ne180100]<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>>, 0>(std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>>*) /usr/lib/llvm-18/include/c++/v1/__memory/construct_at.h:67:11
    #11 0x5af15590d718 in void std::__1::allocator_traits<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>>, void*>>>::destroy[abi:ne180100]<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>>, void, void>(std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>>, void*>>&, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>>*) /usr/lib/llvm-18/include/c++/v1/__memory/allocator_traits.h:316:5
    #12 0x5af15590d662 in std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>>, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>>, void*>*) /usr/lib/llvm-18/include/c++/v1/__tree:1548:5
    #13 0x5af15590d594 in std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>>, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>>>>::~__tree() /usr/lib/llvm-18/include/c++/v1/__tree:1539:3
    #14 0x5af1559073b4 in std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client>>>>::~map[abi:ne180100]() /usr/lib/llvm-18/include/c++/v1/map:1135:112
    #15 0x5af1558f3c0d in infinity::ClusterManager@cluster_manager::~ClusterManager() /home/infiniflow/Documents/development/infinity/src/main/cluster_manager.cpp:39:1
    #16 0x5af1558d54ba in std::__1::default_delete<infinity::ClusterManager@cluster_manager>::operator()[abi:ne180100](infinity::ClusterManager@cluster_manager*) const /usr/lib/llvm-18/include/c++/v1/__memory/unique_ptr.h:66:5
    #17 0x5af1558d543f in std::__1::unique_ptr<infinity::ClusterManager@cluster_manager, std::__1::default_delete<infinity::ClusterManager@cluster_manager>>::reset[abi:ne180100](infinity::ClusterManager@cluster_manager*) /usr/lib/llvm-18/include/c++/v1/__memory/unique_ptr.h:266:7
    #18 0x5af1559fd941 in infinity::InfinityContext@infinity_context::ChangeRole(infinity::NodeRole, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, short) /home/infiniflow/Documents/development/infinity/src/main/infinity_context.cpp:217:38
    #19 0x5af1588c918b in infinity::AdminExecutor@admin_executor::SetRole(infinity::QueryContext@query_context*, infinity::AdminStatement const*) /home/infiniflow/Documents/development/infinity/src/admin/admin_executor.cpp:4005:50
    #20 0x5af15886348f in infinity::AdminExecutor@admin_executor::Execute(infinity::QueryContext@query_context*, infinity::AdminStatement const*) /home/infiniflow/Documents/development/infinity/src/admin/admin_executor.cpp:150:20
    #21 0x5af156571447 in infinity::QueryContext@query_context::HandleAdminStatement(infinity::AdminStatement const*) /home/infiniflow/Documents/development/infinity/src/main/query_context.cpp:366:96
    #22 0x5af15656f129 in infinity::QueryContext@query_context::QueryStatement(infinity::BaseStatement const*) /home/infiniflow/Documents/development/infinity/src/main/query_context.cpp:149:28
    #23 0x5af15656e655 in infinity::QueryContext@query_context::Query(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) /home/infiniflow/Documents/development/infinity/src/main/query_context.cpp:115:32
    #24 0x5af1588e9979 in infinity::Connection@connection::HandlerSimpleQuery(infinity::QueryContext@query_context*) /home/infiniflow/Documents/development/infinity/src/network/connection.cpp:161:41
    #25 0x5af1588e922d in infinity::Connection@connection::HandleRequest() /home/infiniflow/Documents/development/infinity/src/network/connection.cpp:138:13
    #26 0x5af1588e7e0e in infinity::Connection@connection::Run() /home/infiniflow/Documents/development/infinity/src/network/connection.cpp:84:13
    #27 0x5af156418a7a in infinity::PGServer@pg_server::StartConnection(std::__1::shared_ptr<infinity::Connection@connection>&)::$_0::operator()() /home/infiniflow/Documents/development/infinity/src/network/pg_server.cpp:83:29
    #28 0x5af156418834 in decltype(std::declval<infinity::PGServer@pg_server::StartConnection(std::__1::shared_ptr<infinity::Connection@connection>&)::$_0>()()) std::__1::__invoke[abi:ne180100]<infinity::PGServer@pg_server::StartConnection(std::__1::shared_ptr<infinity::Connection@connection>&)::$_0>(infinity::PGServer@pg_server::StartConnection(std::__1::shared_ptr<infinity::Connection@connection>&)::$_0&&) /usr/lib/llvm-18/include/c++/v1/__type_traits/invoke.h:344:25
    #29 0x5af15641880c in void std::__1::__thread_execute[abi:ne180100]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, infinity::PGServer@pg_server::StartConnection(std::__1::shared_ptr<infinity::Connection@connection>&)::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, infinity::PGServer@pg_server::StartConnection(std::__1::shared_ptr<infinity::Connection@connection>&)::$_0>&, std::__1::__tuple_indices<...>) /usr/lib/llvm-18/include/c++/v1/__thread/thread.h:193:3

previously allocated by thread T203 here:
    #0 0x5af15576fa81 in operator new(unsigned long) (/home/infiniflow/Documents/development/infinity/cmake-build-debug/src/infinity+0xc77a81) (BuildId: 14e05823b63d3f39eed632ca5e4da0abda6cb920)
    #1 0x5af155785b54 in void* std::__1::__libcpp_operator_new[abi:ne180100]<unsigned long>(unsigned long) /usr/lib/llvm-18/include/c++/v1/new:271:10
    #2 0x5af155785adc in std::__1::__libcpp_allocate[abi:ne180100](unsigned long, unsigned long) /usr/lib/llvm-18/include/c++/v1/new:295:10
    #3 0x5af15592a68c in std::__1::allocator<std::__1::__shared_ptr_emplace<infinity::PeerClient@peer_thrift_client, std::__1::allocator<infinity::PeerClient@peer_thrift_client>>>::allocate[abi:ne180100](unsigned long) /usr/lib/llvm-18/include/c++/v1/__memory/allocator.h:125:32
    #4 0x5af15592a61c in std::__1::allocator_traits<std::__1::allocator<std::__1::__shared_ptr_emplace<infinity::PeerClient@peer_thrift_client, std::__1::allocator<infinity::PeerClient@peer_thrift_client>>>>::allocate[abi:ne180100](std::__1::allocator<std::__1::__shared_ptr_emplace<infinity::PeerClient@peer_thrift_client, std::__1::allocator<infinity::PeerClient@peer_thrift_client>>>&, unsigned long) /usr/lib/llvm-18/include/c++/v1/__memory/allocator_traits.h:269:16
    #5 0x5af15592a0d6 in std::__1::__allocation_guard<std::__1::allocator<std::__1::__shared_ptr_emplace<infinity::PeerClient@peer_thrift_client, std::__1::allocator<infinity::PeerClient@peer_thrift_client>>>>::__allocation_guard[abi:ne180100]<std::__1::allocator<infinity::PeerClient@peer_thrift_client>>(std::__1::allocator<infinity::PeerClient@peer_thrift_client>, unsigned long) /usr/lib/llvm-18/include/c++/v1/__memory/allocation_guard.h:56:16
    #6 0x5af155929dfa in std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client> std::__1::allocate_shared[abi:ne180100]<infinity::PeerClient@peer_thrift_client, std::__1::allocator<infinity::PeerClient@peer_thrift_client>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, long&, void>(std::__1::allocator<infinity::PeerClient@peer_thrift_client> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, long&) /usr/lib/llvm-18/include/c++/v1/__memory/shared_ptr.h:822:46
    #7 0x5af155929c8c in std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client> std::__1::make_shared[abi:ne180100]<infinity::PeerClient@peer_thrift_client, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, long&, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, long&) /usr/lib/llvm-18/include/c++/v1/__memory/shared_ptr.h:831:10
    #8 0x5af155908d4f in std::__1::shared_ptr<infinity::PeerClient@peer_thrift_client> infinity::MakeShared@stl<infinity::PeerClient@peer_thrift_client, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, long&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, long&) /home/infiniflow/Documents/development/infinity/src/common/stl.cppm:541:16
    #9 0x5af1558f50df in infinity::ClusterManager@cluster_manager::ConnectToServerNoLock(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, long) /home/infiniflow/Documents/development/infinity/src/main/cluster_manager.cpp:326:36
    #10 0x5af1558fc5a5 in infinity::ClusterManager@cluster_manager::AddNodeInfo(std::__1::shared_ptr<infinity::NodeInfo@peer_task> const&) /home/infiniflow/Documents/development/infinity/src/main/cluster_manager.cpp:398:25
    #11 0x5af158bcdf08 in infinity::PeerServerThriftService@peer_server_thrift_service::Register(infinity_peer_server::RegisterResponse&, infinity_peer_server::RegisterRequest const&) /home/infiniflow/Documents/development/infinity/src/network/peer_server_thrift_service.cpp:62:72
    #12 0x5af158bb6ac2 in infinity_peer_server::PeerServiceProcessor::process_Register(int, apache::thrift::protocol::TProtocol*, apache::thrift::protocol::TProtocol*, void*) /home/infiniflow/Documents/development/infinity/src/network/peer_server_thrift/PeerService.cpp:1523:13
    #13 0x5af158bb61dd in infinity_peer_server::PeerServiceProcessor::dispatchCall(apache::thrift::protocol::TProtocol*, apache::thrift::protocol::TProtocol*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, int, void*) /home/infiniflow/Documents/development/infinity/src/network/peer_server_thrift/PeerService.cpp:1496:3
    #14 0x5af156449057 in apache::thrift::TDispatchProcessor::process(std::__1::shared_ptr<apache::thrift::protocol::TProtocol>, std::__1::shared_ptr<apache::thrift::protocol::TProtocol>, void*) /home/infiniflow/Documents/development/infinity/third_party/thrift/lib/cpp/src/thrift/TDispatchProcessor.h:121:12
    #15 0x5af15ae7be91 in apache::thrift::server::TConnectedClient::run() /home/infiniflow/Documents/development/infinity/third_party/thrift/lib/cpp/src/thrift/server/TConnectedClient.cpp:61:24
    #16 0x5af15ae346f0 in apache::thrift::concurrency::ThreadManager::Task::run() /home/infiniflow/Documents/development/infinity/third_party/thrift/lib/cpp/src/thrift/concurrency/ThreadManager.cpp:195:18
    #17 0x5af15ae2c85f in apache::thrift::concurrency::ThreadManager::Worker::run() /home/infiniflow/Documents/development/infinity/third_party/thrift/lib/cpp/src/thrift/concurrency/ThreadManager.cpp:310:19
    #18 0x5af15ae6f779 in apache::thrift::concurrency::Thread::threadMain(std::__1::shared_ptr<apache::thrift::concurrency::Thread>) /home/infiniflow/Documents/development/infinity/third_party/thrift/lib/cpp/src/thrift/concurrency/Thread.cpp:28:23
    #19 0x5af15ae6ec37 in decltype(std::declval<void (*)(std::__1::shared_ptr<apache::thrift::concurrency::Thread>)>()(std::declval<std::__1::shared_ptr<apache::thrift::concurrency::Thread>>())) std::__1::__invoke[abi:ne180100]<void (*)(std::__1::shared_ptr<apache::thrift::concurrency::Thread>), std::__1::shared_ptr<apache::thrift::concurrency::Thread>>(void (*&&)(std::__1::shared_ptr<apache::thrift::concurrency::Thread>), std::__1::shared_ptr<apache::thrift::concurrency::Thread>&&) /usr/lib/llvm-18/include/c++/v1/__type_traits/invoke.h:344:25
    #20 0x5af15ae6eb1d in void std::__1::__thread_execute[abi:ne180100]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(std::__1::shared_ptr<apache::thrift::concurrency::Thread>), std::__1::shared_ptr<apache::thrift::concurrency::Thread>, 2ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(std::__1::shared_ptr<apache::thrift::concurrency::Thread>), std::__1::shared_ptr<apache::thrift::concurrency::Thread>>&, std::__1::__tuple_indices<2ul>) /usr/lib/llvm-18/include/c++/v1/__thread/thread.h:193:3
    #21 0x5af15ae6e735 in void* std::__1::__thread_proxy[abi:ne180100]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(std::__1::shared_ptr<apache::thrift::concurrency::Thread>), std::__1::shared_ptr<apache::thrift::concurrency::Thread>>>(void*) /usr/lib/llvm-18/include/c++/v1/__thread/thread.h:202:3
    #22 0x5af15572ef4c in asan_thread_start(void*) asan_interceptors.cpp.o

Thread T246 created by T203 here:
    #0 0x5af155716dd5 in pthread_create (/home/infiniflow/Documents/development/infinity/cmake-build-debug/src/infinity+0xc1edd5) (BuildId: 14e05823b63d3f39eed632ca5e4da0abda6cb920)
    #1 0x5af1558d0a58 in std::__1::__libcpp_thread_create[abi:ne180100](unsigned long*, void* (*)(void*), void*) /usr/lib/llvm-18/include/c++/v1/__threading_support:317:10
    #2 0x5af1563eab77 in std::__1::thread::thread<infinity::PeerClient@peer_thrift_client::Init()::$_0, void>(infinity::PeerClient@peer_thrift_client::Init()::$_0&&) /usr/lib/llvm-18/include/c++/v1/__thread/thread.h:212:14
    #3 0x5af1563ea9e8 in std::__1::thread* std::__1::construct_at[abi:ne180100]<std::__1::thread, infinity::PeerClient@peer_thrift_client::Init()::$_0, std::__1::thread*>(std::__1::thread*, infinity::PeerClient@peer_thrift_client::Init()::$_0&&) /usr/lib/llvm-18/include/c++/v1/__memory/construct_at.h:41:46
    #4 0x5af1563ea9ac in std::__1::thread* std::__1::__construct_at[abi:ne180100]<std::__1::thread, infinity::PeerClient@peer_thrift_client::Init()::$_0, std::__1::thread*>(std::__1::thread*, infinity::PeerClient@peer_thrift_client::Init()::$_0&&) /usr/lib/llvm-18/include/c++/v1/__memory/construct_at.h:49:10
    #5 0x5af1563ea980 in void std::__1::allocator_traits<std::__1::allocator<std::__1::thread>>::construct[abi:ne180100]<std::__1::thread, infinity::PeerClient@peer_thrift_client::Init()::$_0, void, void>(std::__1::allocator<std::__1::thread>&, std::__1::thread*, infinity::PeerClient@peer_thrift_client::Init()::$_0&&) /usr/lib/llvm-18/include/c++/v1/__memory/allocator_traits.h:305:5
    #6 0x5af1563ea86f in std::__1::__shared_ptr_emplace<std::__1::thread, std::__1::allocator<std::__1::thread>>::__shared_ptr_emplace[abi:ne180100]<infinity::PeerClient@peer_thrift_client::Init()::$_0, std::__1::allocator<std::__1::thread>, 0>(std::__1::allocator<std::__1::thread>, infinity::PeerClient@peer_thrift_client::Init()::$_0&&) /usr/lib/llvm-18/include/c++/v1/__memory/shared_ptr.h:265:5
    #7 0x5af1563ea5e4 in std::__1::shared_ptr<std::__1::thread> std::__1::allocate_shared[abi:ne180100]<std::__1::thread, std::__1::allocator<std::__1::thread>, infinity::PeerClient@peer_thrift_client::Init()::$_0, void>(std::__1::allocator<std::__1::thread> const&, infinity::PeerClient@peer_thrift_client::Init()::$_0&&) /usr/lib/llvm-18/include/c++/v1/__memory/shared_ptr.h:823:51
    #8 0x5af1563ea46c in std::__1::shared_ptr<std::__1::thread> std::__1::make_shared[abi:ne180100]<std::__1::thread, infinity::PeerClient@peer_thrift_client::Init()::$_0, void>(infinity::PeerClient@peer_thrift_client::Init()::$_0&&) /usr/lib/llvm-18/include/c++/v1/__memory/shared_ptr.h:831:10
    #9 0x5af1563e321f in std::__1::shared_ptr<std::__1::thread> infinity::MakeShared@stl<std::__1::thread, infinity::PeerClient@peer_thrift_client::Init()::$_0>(infinity::PeerClient@peer_thrift_client::Init()::$_0&&) /home/infiniflow/Documents/development/infinity/src/common/stl.cppm:541:16
    #10 0x5af1563e286b in infinity::PeerClient@peer_thrift_client::Init() /home/infiniflow/Documents/development/infinity/src/network/peer_thrift_client.cpp:44:29
    #11 0x5af1558f5101 in infinity::ClusterManager@cluster_manager::ConnectToServerNoLock(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, long) /home/infiniflow/Documents/development/infinity/src/main/cluster_manager.cpp:327:36
    #12 0x5af1558fc5a5 in infinity::ClusterManager@cluster_manager::AddNodeInfo(std::__1::shared_ptr<infinity::NodeInfo@peer_task> const&) /home/infiniflow/Documents/development/infinity/src/main/cluster_manager.cpp:398:25
    #13 0x5af158bcdf08 in infinity::PeerServerThriftService@peer_server_thrift_service::Register(infinity_peer_server::RegisterResponse&, infinity_peer_server::RegisterRequest const&) /home/infiniflow/Documents/development/infinity/src/network/peer_server_thrift_service.cpp:62:72
    #14 0x5af158bb6ac2 in infinity_peer_server::PeerServiceProcessor::process_Register(int, apache::thrift::protocol::TProtocol*, apache::thrift::protocol::TProtocol*, void*) /home/infiniflow/Documents/development/infinity/src/network/peer_server_thrift/PeerService.cpp:1523:13
    #15 0x5af158bb61dd in infinity_peer_server::PeerServiceProcessor::dispatchCall(apache::thrift::protocol::TProtocol*, apache::thrift::protocol::TProtocol*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, int, void*) /home/infiniflow/Documents/development/infinity/src/network/peer_server_thrift/PeerService.cpp:1496:3
    #16 0x5af156449057 in apache::thrift::TDispatchProcessor::process(std::__1::shared_ptr<apache::thrift::protocol::TProtocol>, std::__1::shared_ptr<apache::thrift::protocol::TProtocol>, void*) /home/infiniflow/Documents/development/infinity/third_party/thrift/lib/cpp/src/thrift/TDispatchProcessor.h:121:12
    #17 0x5af15ae7be91 in apache::thrift::server::TConnectedClient::run() /home/infiniflow/Documents/development/infinity/third_party/thrift/lib/cpp/src/thrift/server/TConnectedClient.cpp:61:24
    #18 0x5af15ae346f0 in apache::thrift::concurrency::ThreadManager::Task::run() /home/infiniflow/Documents/development/infinity/third_party/thrift/lib/cpp/src/thrift/concurrency/ThreadManager.cpp:195:18
    #19 0x5af15ae2c85f in apache::thrift::concurrency::ThreadManager::Worker::run() /home/infiniflow/Documents/development/infinity/third_party/thrift/lib/cpp/src/thrift/concurrency/ThreadManager.cpp:310:19
    #20 0x5af15ae6f779 in apache::thrift::concurrency::Thread::threadMain(std::__1::shared_ptr<apache::thrift::concurrency::Thread>) /home/infiniflow/Documents/development/infinity/third_party/thrift/lib/cpp/src/thrift/concurrency/Thread.cpp:28:23
    #21 0x5af15ae6ec37 in decltype(std::declval<void (*)(std::__1::shared_ptr<apache::thrift::concurrency::Thread>)>()(std::declval<std::__1::shared_ptr<apache::thrift::concurrency::Thread>>())) std::__1::__invoke[abi:ne180100]<void (*)(std::__1::shared_ptr<apache::thrift::concurrency::Thread>), std::__1::shared_ptr<apache::thrift::concurrency::Thread>>(void (*&&)(std::__1::shared_ptr<apache::thrift::concurrency::Thread>), std::__1::shared_ptr<apache::thrift::concurrency::Thread>&&) /usr/lib/llvm-18/include/c++/v1/__type_traits/invoke.h:344:25
    #22 0x5af15ae6eb1d in void std::__1::__thread_execute[abi:ne180100]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(std::__1::shared_ptr<apache::thrift::concurrency::Thread>), std::__1::shared_ptr<apache::thrift::concurrency::Thread>, 2ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(std::__1::shared_ptr<apache::thrift::concurrency::Thread>), std::__1::shared_ptr<apache::thrift::concurrency::Thread>>&, std::__1::__tuple_indices<2ul>) /usr/lib/llvm-18/include/c++/v1/__thread/thread.h:193:3
    #23 0x5af15ae6e735 in void* std::__1::__thread_proxy[abi:ne180100]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(std::__1::shared_ptr<apache::thrift::concurrency::Thread>), std::__1::shared_ptr<apache::thrift::concurrency::Thread>>>(void*) /usr/lib/llvm-18/include/c++/v1/__thread/thread.h:202:3
    #24 0x5af15572ef4c in asan_thread_start(void*) asan_interceptors.cpp.o

Thread T203 created by T0 here:
    #0 0x5af155716dd5 in pthread_create (/home/infiniflow/Documents/development/infinity/cmake-build-debug/src/infinity+0xc1edd5) (BuildId: 14e05823b63d3f39eed632ca5e4da0abda6cb920)
    #1 0x5af1558d0a58 in std::__1::__libcpp_thread_create[abi:ne180100](unsigned long*, void* (*)(void*), void*) /usr/lib/llvm-18/include/c++/v1/__threading_support:317:10
    #2 0x5af15ae6e125 in std::__1::thread::thread<void (*)(std::__1::shared_ptr<apache::thrift::concurrency::Thread>), std::__1::shared_ptr<apache::thrift::concurrency::Thread>&, void>(void (*&&)(std::__1::shared_ptr<apache::thrift::concurrency::Thread>), std::__1::shared_ptr<apache::thrift::concurrency::Thread>&) /usr/lib/llvm-18/include/c++/v1/__thread/thread.h:212:14
    #3 0x5af15ae6d6c9 in apache::thrift::concurrency::Thread::start() /home/infiniflow/Documents/development/infinity/third_party/thrift/lib/cpp/src/thrift/concurrency/Thread.h:130:48
    #4 0x5af15ae1dd38 in apache::thrift::concurrency::ThreadManager::Impl::addWorker(unsigned long) /home/infiniflow/Documents/development/infinity/third_party/thrift/lib/cpp/src/thrift/concurrency/ThreadManager.cpp:361:16
    #5 0x5af15ae28208 in apache::thrift::concurrency::SimpleThreadManager::start() /home/infiniflow/Documents/development/infinity/third_party/thrift/lib/cpp/src/thrift/concurrency/ThreadManager.cpp:567:5
    #6 0x5af156409c82 in infinity::PoolPeerThriftServer@peer_thrift_server::Init(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, int, int) /home/infiniflow/Documents/development/infinity/src/network/peer_thrift_server.cpp:66:20
    #7 0x5af155776eb3 in main::$_0::operator()() const /home/infiniflow/Documents/development/infinity/src/bin/infinity_main.cpp:208:33
    #8 0x5af155776c14 in decltype(std::declval<main::$_0&>()()) std::__1::__invoke[abi:ne180100]<main::$_0&>(main::$_0&) /usr/lib/llvm-18/include/c++/v1/__type_traits/invoke.h:344:25
    #9 0x5af155776bd4 in void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:ne180100]<main::$_0&>(main::$_0&) /usr/lib/llvm-18/include/c++/v1/__type_traits/invoke.h:419:5
    #10 0x5af155776bac in std::__1::__function::__alloc_func<main::$_0, std::__1::allocator<main::$_0>, void ()>::operator()[abi:ne180100]() /usr/lib/llvm-18/include/c++/v1/__functional/function.h:169:12
    #11 0x5af1557753c8 in std::__1::__function::__func<main::$_0, std::__1::allocator<main::$_0>, void ()>::operator()() /usr/lib/llvm-18/include/c++/v1/__functional/function.h:311:10
    #12 0x5af1558c2aab in std::__1::__function::__value_func<void ()>::operator()[abi:ne180100]() const /usr/lib/llvm-18/include/c++/v1/__functional/function.h:428:12
    #13 0x5af1558c29d4 in std::__1::function<void ()>::operator()() const /usr/lib/llvm-18/include/c++/v1/__functional/function.h:981:10
    #14 0x5af1559ff6c9 in infinity::InfinityContext@infinity_context::StartThriftServers() /home/infiniflow/Documents/development/infinity/src/main/infinity_context.cpp:425:9
    #15 0x5af155772eec in main /home/infiniflow/Documents/development/infinity/src/bin/infinity_main.cpp:243:33
    #16 0x76b3d342a1c9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #17 0x76b3d342a28a in __libc_start_main csu/../csu/libc-start.c:360:3
    #18 0x5af155696614 in _start (/home/infiniflow/Documents/development/infinity/cmake-build-debug/src/infinity+0xb9e614) (BuildId: 14e05823b63d3f39eed632ca5e4da0abda6cb920)

Thread T208 created by T205 here:
    #0 0x5af155716dd5 in pthread_create (/home/infiniflow/Documents/development/infinity/cmake-build-debug/src/infinity+0xc1edd5) (BuildId: 14e05823b63d3f39eed632ca5e4da0abda6cb920)
    #1 0x5af1558d0a58 in std::__1::__libcpp_thread_create[abi:ne180100](unsigned long*, void* (*)(void*), void*) /usr/lib/llvm-18/include/c++/v1/__threading_support:317:10
    #2 0x5af156418007 in std::__1::thread::thread<infinity::PGServer@pg_server::StartConnection(std::__1::shared_ptr<infinity::Connection@connection>&)::$_0, void>(infinity::PGServer@pg_server::StartConnection(std::__1::shared_ptr<infinity::Connection@connection>&)::$_0&&) /usr/lib/llvm-18/include/c++/v1/__thread/thread.h:212:14
    #3 0x5af156417d36 in infinity::PGServer@pg_server::StartConnection(std::__1::shared_ptr<infinity::Connection@connection>&) /home/infiniflow/Documents/development/infinity/src/network/pg_server.cpp:79:12
    #4 0x5af156423a06 in boost::_mfi::mf1<void, infinity::PGServer@pg_server, std::__1::shared_ptr<infinity::Connection@connection>&>::operator()(infinity::PGServer@pg_server*, std::__1::shared_ptr<infinity::Connection@connection>&) const /usr/include/boost/bind/mem_fn_template.hpp:165:29
    #5 0x5af156423926 in void boost::_bi::list2<boost::_bi::value<infinity::PGServer@pg_server*>, boost::_bi::value<std::__1::shared_ptr<infinity::Connection@connection>>>::operator()<boost::_mfi::mf1<void, infinity::PGServer@pg_server, std::__1::shared_ptr<infinity::Connection@connection>&>, boost::_bi::rrlist1<boost::system::error_code const&>>(boost::_bi::type<void>, boost::_mfi::mf1<void, infinity::PGServer@pg_server, std::__1::shared_ptr<infinity::Connection@connection>&>&, boost::_bi::rrlist1<boost::system::error_code const&>&, int) /usr/include/boost/bind/bind.hpp:299:9
    #6 0x5af1564237ee in void boost::_bi::bind_t<void, boost::_mfi::mf1<void, infinity::PGServer@pg_server, std::__1::shared_ptr<infinity::Connection@connection>&>, boost::_bi::list2<boost::_bi::value<infinity::PGServer@pg_server*>, boost::_bi::value<std::__1::shared_ptr<infinity::Connection@connection>>>>::operator()<boost::system::error_code const&>(boost::system::error_code const&) /usr/include/boost/bind/bind.hpp:1286:16
    #7 0x5af1564236eb in boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, infinity::PGServer@pg_server, std::__1::shared_ptr<infinity::Connection@connection>&>, boost::_bi::list2<boost::_bi::value<infinity::PGServer@pg_server*>, boost::_bi::value<std::__1::shared_ptr<infinity::Connection@connection>>>>, boost::system::error_code>::operator()() /usr/include/boost/asio/detail/bind_handler.hpp:171:5
    #8 0x5af1564236c4 in void boost::asio::asio_handler_invoke<boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, infinity::PGServer@pg_server, std::__1::shared_ptr<infinity::Connection@connection>&>, boost::_bi::list2<boost::_bi::value<infinity::PGServer@pg_server*>, boost::_bi::value<std::__1::shared_ptr<infinity::Connection@connection>>>>, boost::system::error_code>>(boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, infinity::PGServer@pg_server, std::__1::shared_ptr<infinity::Connection@connection>&>, boost::_bi::list2<boost::_bi::value<infinity::PGServer@pg_server*>, boost::_bi::value<std::__1::shared_ptr<infinity::Connection@connection>>>>, boost::system::error_code>&, ...) /usr/include/boost/asio/handler_invoke_hook.hpp:88:3
    #9 0x5af15642366e in void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, infinity::PGServer@pg_server, std::__1::shared_ptr<infinity::Connection@connection>&>, boost::_bi::list2<boost::_bi::value<infinity::PGServer@pg_server*>, boost::_bi::value<std::__1::shared_ptr<infinity::Connection@connection>>>>, boost::system::error_code>, boost::_bi::bind_t<void, boost::_mfi::mf1<void, infinity::PGServer@pg_server, std::__1::shared_ptr<infinity::Connection@connection>&>, boost::_bi::list2<boost::_bi::value<infinity::PGServer@pg_server*>, boost::_bi::value<std::__1::shared_ptr<infinity::Connection@connection>>>>>(boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, infinity::PGServer@pg_server, std::__1::shared_ptr<infinity::Connection@connection>&>, boost::_bi::list2<boost::_bi::value<infinity::PGServer@pg_server*>, boost::_bi::value<std::__1::shared_ptr<infinity::Connection@connection>>>>, boost::system::error_code>&, boost::_bi::bind_t<void, boost::_mfi::mf1<void, infinity::PGServer@pg_server, std::__1::shared_ptr<infinity::Connection@connection>&>, boost::_bi::list2<boost::_bi::value<infinity::PGServer@pg_server*>, boost::_bi::value<std::__1::shared_ptr<infinity::Connection@connection>>>>&) /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:54:3
    #10 0x5af15641db65 in void boost::asio::detail::handler_work<boost::_bi::bind_t<void, boost::_mfi::mf1<void, infinity::PGServer@pg_server, std::__1::shared_ptr<infinity::Connection@connection>&>, boost::_bi::list2<boost::_bi::value<infinity::PGServer@pg_server*>, boost::_bi::value<std::__1::shared_ptr<infinity::Connection@connection>>>>, boost::asio::any_io_executor, void>::complete<boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, infinity::PGServer@pg_server, std::__1::shared_ptr<infinity::Connection@connection>&>, boost::_bi::list2<boost::_bi::value<infinity::PGServer@pg_server*>, boost::_bi::value<std::__1::shared_ptr<infinity::Connection@connection>>>>, boost::system::error_code>>(boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, infinity::PGServer@pg_server, std::__1::shared_ptr<infinity::Connection@connection>&>, boost::_bi::list2<boost::_bi::value<infinity::PGServer@pg_server*>, boost::_bi::value<std::__1::shared_ptr<infinity::Connection@connection>>>>, boost::system::error_code>&, boost::_bi::bind_t<void, boost::_mfi::mf1<void, infinity::PGServer@pg_server, std::__1::shared_ptr<infinity::Connection@connection>&>, boost::_bi::list2<boost::_bi::value<infinity::PGServer@pg_server*>, boost::_bi::value<std::__1::shared_ptr<infinity::Connection@connection>>>>&) /usr/include/boost/asio/detail/handler_work.hpp:524:7
    #11 0x5af15641ce85 in boost::asio::detail::reactive_socket_accept_op<boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::any_io_executor>, boost::asio::ip::tcp, boost::_bi::bind_t<void, boost::_mfi::mf1<void, infinity::PGServer@pg_server, std::__1::shared_ptr<infinity::Connection@connection>&>, boost::_bi::list2<boost::_bi::value<infinity::PGServer@pg_server*>, boost::_bi::value<std::__1::shared_ptr<infinity::Connection@connection>>>>, boost::asio::any_io_executor>::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) /usr/include/boost/asio/detail/reactive_socket_accept_op.hpp:155:9
    #12 0x5af1557fcb0a in boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned long) /usr/include/boost/asio/detail/scheduler_operation.hpp:40:5
    #13 0x5af15641fd81 in boost::asio::detail::epoll_reactor::descriptor_state::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) /usr/include/boost/asio/detail/impl/epoll_reactor.ipp:815:11
    #14 0x5af1557fcb0a in boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned long) /usr/include/boost/asio/detail/scheduler_operation.hpp:40:5
    #15 0x5af1557fb893 in boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/include/boost/asio/detail/impl/scheduler.ipp:493:12
    #16 0x5af1557fad52 in boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/include/boost/asio/detail/impl/scheduler.ipp:210:10
    #17 0x5af1564192ff in boost::asio::io_context::run() /usr/include/boost/asio/impl/io_context.ipp:64:24
    #18 0x5af156417596 in infinity::PGServer@pg_server::Run() /home/infiniflow/Documents/development/infinity/src/network/pg_server.cpp:57:17
    #19 0x5af15577b367 in main::$_2::operator()() const /home/infiniflow/Documents/development/infinity/src/bin/infinity_main.cpp:245:52
    #20 0x5af15577b324 in decltype(std::declval<main::$_2>()()) std::__1::__invoke[abi:ne180100]<main::$_2>(main::$_2&&) /usr/lib/llvm-18/include/c++/v1/__type_traits/invoke.h:344:25
    #21 0x5af15577b2fc in void std::__1::__thread_execute[abi:ne180100]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, main::$_2>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, main::$_2>&, std::__1::__tuple_indices<...>) /usr/lib/llvm-18/include/c++/v1/__thread/thread.h:193:3
    #22 0x5af15577afe5 in void* std::__1::__thread_proxy[abi:ne180100]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, main::$_2>>(void*) /usr/lib/llvm-18/include/c++/v1/__thread/thread.h:202:3
    #23 0x5af15572ef4c in asan_thread_start(void*) asan_interceptors.cpp.o

Thread T205 created by T0 here:
    #0 0x5af155716dd5 in pthread_create (/home/infiniflow/Documents/development/infinity/cmake-build-debug/src/infinity+0xc1edd5) (BuildId: 14e05823b63d3f39eed632ca5e4da0abda6cb920)
    #1 0x5af1558d0a58 in std::__1::__libcpp_thread_create[abi:ne180100](unsigned long*, void* (*)(void*), void*) /usr/lib/llvm-18/include/c++/v1/__threading_support:317:10
    #2 0x5af1557739a7 in std::__1::thread::thread<main::$_2, void>(main::$_2&&) /usr/lib/llvm-18/include/c++/v1/__thread/thread.h:212:14
    #3 0x5af155772f19 in main /home/infiniflow/Documents/development/infinity/src/bin/infinity_main.cpp:245:17
    #4 0x76b3d342a1c9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #5 0x76b3d342a28a in __libc_start_main csu/../csu/libc-start.c:360:3
    #6 0x5af155696614 in _start (/home/infiniflow/Documents/development/infinity/cmake-build-debug/src/infinity+0xb9e614) (BuildId: 14e05823b63d3f39eed632ca5e4da0abda6cb920)

SUMMARY: AddressSanitizer: heap-use-after-free /home/infiniflow/Documents/development/infinity/src/network/peer_thrift_client.cpp:126:30 in infinity::PeerClient@peer_thrift_client::Process()
Shadow bytes around the buggy address:
  0x51300003fe00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x51300003fe80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x51300003ff00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x51300003ff80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x513000040000: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
=>0x513000040080: fd[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x513000040100: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fa fa
  0x513000040180: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x513000040200: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x513000040280: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x513000040300: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==261821==ABORTING

@JinHai-CN JinHai-CN added the bug Something isn't working label Oct 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant