[
https://issues.apache.org/jira/browse/IGNITE-27205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18041371#comment-18041371
]
Dmitrii Zabotlin edited comment on IGNITE-27205 at 11/28/25 8:11 PM:
---------------------------------------------------------------------
Problem is located in the `handle_connection_events` method of the
`linux_async_worker_thread` class.
In case we started to process epoll events and received stop signal there may
be situation when client connects successfully and this is a current client.
In this case we will call `handle_connection_success(client)`, which should add
`m_current_client` to the pool and release shared_ptr, but it only releases the
shared_ptr because of m_stopped in linux_async_client_pool is true.
`linux_async_client_pool.add_client` will not add anything to the map in case
`m_stopped = true`, which leads to the `shared_ptr` destruction. After that we
continue to process events and we may use already destroyed client.
was (Author: JIRAUSER298949):
Problem is located in the ```handle_connection_events``` method of the
`linux_async_worker_thread` class.
In case we started to process epoll events and received stop signal there may
be situation when client connects successfully and this is a current client.
In this case we will call `handle_connection_success(client)`, which should add
`m_current_client` to the pool and release shared_ptr, but it only releases the
shared_ptr because of m_stopped in linux_async_client_pool is true.
`linux_async_client_pool.add_client` will not add anything to the map in case
`m_stopped = true`, which leads to the `shared_ptr` destruction. After that we
continue to process events and we may use already destroyed client.
> C++ 3.0: AddressSanitizer shows heap-use-after-free in ODBC tests
> ------------------------------------------------------------------
>
> Key: IGNITE-27205
> URL: https://issues.apache.org/jira/browse/IGNITE-27205
> Project: Ignite
> Issue Type: Bug
> Components: platforms ai3
> Affects Versions: 3.1
> Reporter: Dmitrii Zabotlin
> Assignee: Dmitrii Zabotlin
> Priority: Major
> Labels: ignite-3
> Fix For: 3.2
>
>
> {code:java}
> ==232010==ERROR: AddressSanitizer: heap-use-after-free on address
> 0x514000010ae8 at pc 0x5715f6a82b9e bp 0x73a4565fd910 sp 0x73a4565fd908
> READ of size 8 at 0x514000010ae8 thread T6
> #0 0x5715f6a82b9d in
> std::operator==(std::_Deque_iterator<ignite::network::data_buffer_owning,
> ignite::network::data_buffer_owning&, ignite::network::data_buffer_owning*>
> const&, std::_Deque_iterator<ignite::network::data_buffer_owning,
> ignite::network::data_buffer_owning&, ignite::network::data_buffer_owning*>
> const&)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_deque.h:273:20
> #1 0x5715f6a7f63f in std::deque<ignite::network::data_buffer_owning,
> std::allocator<ignite::network::data_buffer_owning>>::empty() const
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_deque.h:1348:40
> #2 0x5715f6a7f07f in
> ignite::network::detail::linux_async_client::process_sent()
> /ignite-3/modules/platforms/cpp/ignite/network/detail/linux/linux_async_client.cpp:158:24
> #3 0x5715f6a5794c in
> ignite::network::detail::linux_async_worker_thread::handle_connection_events()
>
> /ignite-3/modules/platforms/cpp/ignite/network/detail/linux/linux_async_worker_thread.cpp:239:31
> #4 0x5715f6a562d9 in
> ignite::network::detail::linux_async_worker_thread::run()
> /ignite-3/modules/platforms/cpp/ignite/network/detail/linux/linux_async_worker_thread.cpp:130:9
> #5 0x5715f6a5b440 in void std::__invoke_impl<void, void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>(std::__invoke_memfun_deref,
> void (ignite::network::detail::linux_async_worker_thread::*&&)(),
> ignite::network::detail::linux_async_worker_thread*&&)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/invoke.h:74:14
> #6 0x5715f6a5b32c in std::__invoke_result<void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>::type std::__invoke<void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>(void
> (ignite::network::detail::linux_async_worker_thread::*&&)(),
> ignite::network::detail::linux_async_worker_thread*&&)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/invoke.h:96:14
> #7 0x5715f6a5b301 in void std::thread::_Invoker<std::tuple<void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>>::_M_invoke<0ul,
> 1ul>(std::_Index_tuple<0ul, 1ul>)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_thread.h:292:13
> #8 0x5715f6a5b2c4 in std::thread::_Invoker<std::tuple<void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>>::operator()()
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_thread.h:299:11
> #9 0x5715f6a5b108 in
> std::thread::_State_impl<std::thread::_Invoker<std::tuple<void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>>>::_M_run()
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_thread.h:244:13
> #10 0x73a45a4ecdb3 (/lib/x86_64-linux-gnu/libstdc++.so.6+0xecdb3)
> (BuildId: ca77dae775ec87540acd7218fa990c40d1c94ab1)
> #11 0x5715f66c381a in asan_thread_start(void*) asan_interceptors.cpp.o
> #12 0x73a45a09caa3 in start_thread nptl/pthread_create.c:447:8
> #13 0x73a45a129c6b in clone3
> misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:780x514000010ae8 is located
> 168 bytes inside of 440-byte region [0x514000010a40,0x514000010bf8)
> freed by thread T6 here:
> #0 0x5715f67081a6 in operator delete(void*, unsigned long)
> (/ignite-3/modules/platforms/cpp/build/bin/ignite-odbc-test+0x1bc1a6)
> (BuildId: 5ddc1040541dcf3964718a260ef570735851f741)
> #1 0x5715f6a7d894 in
> std::__new_allocator<std::_Sp_counted_ptr_inplace<ignite::network::detail::linux_async_client,
> std::allocator<void>,
> (__gnu_cxx::_Lock_policy)2>>::deallocate(std::_Sp_counted_ptr_inplace<ignite::network::detail::linux_async_client,
> std::allocator<void>, (__gnu_cxx::_Lock_policy)2>*, unsigned long)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/new_allocator.h:172:2
> #2 0x5715f6a7cfda in
> std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<ignite::network::detail::linux_async_client,
> std::allocator<void>,
> (__gnu_cxx::_Lock_policy)2>>>::deallocate(std::allocator<std::_Sp_counted_ptr_inplace<ignite::network::detail::linux_async_client,
> std::allocator<void>, (__gnu_cxx::_Lock_policy)2>>&,
> std::_Sp_counted_ptr_inplace<ignite::network::detail::linux_async_client,
> std::allocator<void>, (__gnu_cxx::_Lock_policy)2>*, unsigned long)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/alloc_traits.h:517:13
> #3 0x5715f6a7cfda in
> std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<ignite::network::detail::linux_async_client,
> std::allocator<void>, (__gnu_cxx::_Lock_policy)2>>>::~__allocated_ptr()
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/allocated_ptr.h:74:4
> #4 0x5715f6a7d3f7 in
> std::_Sp_counted_ptr_inplace<ignite::network::detail::linux_async_client,
> std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_destroy()
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:623:7
> #5 0x5715f67415c2 in
> std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release()
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:347:8
> #6 0x5715f67413c9 in
> std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count()
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1071:11
> #7 0x5715f6a54a18 in
> std::__shared_ptr<ignite::network::detail::linux_async_client,
> (__gnu_cxx::_Lock_policy)2>::~__shared_ptr()
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1524:31
> #8 0x5715f6a50264 in
> std::shared_ptr<ignite::network::detail::linux_async_client>::~shared_ptr()
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:175:11
> #9 0x5715f6a58674 in
> ignite::network::detail::linux_async_worker_thread::handle_connection_success(ignite::network::detail::linux_async_client*)
>
> /ignite-3/modules/platforms/cpp/ignite/network/detail/linux/linux_async_worker_thread.cpp:278:5
> #10 0x5715f6a5769d in
> ignite::network::detail::linux_async_worker_thread::handle_connection_events()
>
> /ignite-3/modules/platforms/cpp/ignite/network/detail/linux/linux_async_worker_thread.cpp:220:13
> #11 0x5715f6a562d9 in
> ignite::network::detail::linux_async_worker_thread::run()
> /ignite-3/modules/platforms/cpp/ignite/network/detail/linux/linux_async_worker_thread.cpp:130:9
> #12 0x5715f6a5b440 in void std::__invoke_impl<void, void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>(std::__invoke_memfun_deref,
> void (ignite::network::detail::linux_async_worker_thread::*&&)(),
> ignite::network::detail::linux_async_worker_thread*&&)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/invoke.h:74:14
> #13 0x5715f6a5b32c in std::__invoke_result<void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>::type std::__invoke<void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>(void
> (ignite::network::detail::linux_async_worker_thread::*&&)(),
> ignite::network::detail::linux_async_worker_thread*&&)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/invoke.h:96:14
> #14 0x5715f6a5b301 in void std::thread::_Invoker<std::tuple<void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>>::_M_invoke<0ul,
> 1ul>(std::_Index_tuple<0ul, 1ul>)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_thread.h:292:13
> #15 0x5715f6a5b2c4 in std::thread::_Invoker<std::tuple<void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>>::operator()()
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_thread.h:299:11
> #16 0x5715f6a5b108 in
> std::thread::_State_impl<std::thread::_Invoker<std::tuple<void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>>>::_M_run()
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_thread.h:244:13
> #17 0x73a45a4ecdb3 (/lib/x86_64-linux-gnu/libstdc++.so.6+0xecdb3)
> (BuildId: ca77dae775ec87540acd7218fa990c40d1c94ab1)
> #18 0x5715f66c381a in asan_thread_start(void*)
> asan_interceptors.cpp.opreviously allocated by thread T6 here:
> #0 0x5715f6707521 in operator new(unsigned long)
> (/ignite-3/modules/platforms/cpp/build/bin/ignite-odbc-test+0x1bb521)
> (BuildId: 5ddc1040541dcf3964718a260ef570735851f741)
> #1 0x5715f6a7d0cf in
> std::__new_allocator<std::_Sp_counted_ptr_inplace<ignite::network::detail::linux_async_client,
> std::allocator<void>, (__gnu_cxx::_Lock_policy)2>>::allocate(unsigned long,
> void const*)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/new_allocator.h:151:27
> #2 0x5715f6a7cc53 in
> std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<ignite::network::detail::linux_async_client,
> std::allocator<void>,
> (__gnu_cxx::_Lock_policy)2>>>::allocate(std::allocator<std::_Sp_counted_ptr_inplace<ignite::network::detail::linux_async_client,
> std::allocator<void>, (__gnu_cxx::_Lock_policy)2>>&, unsigned long)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/alloc_traits.h:482:20
> #3 0x5715f6a7cc53 in
> std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<ignite::network::detail::linux_async_client,
> std::allocator<void>, (__gnu_cxx::_Lock_policy)2>>>
> std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<ignite::network::detail::linux_async_client,
> std::allocator<void>,
> (__gnu_cxx::_Lock_policy)2>>>(std::allocator<std::_Sp_counted_ptr_inplace<ignite::network::detail::linux_async_client,
> std::allocator<void>, (__gnu_cxx::_Lock_policy)2>>&)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/allocated_ptr.h:98:21
> #4 0x5715f6a7c9d1 in
> std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<ignite::network::detail::linux_async_client,
> std::allocator<void>, int&, ignite::end_point,
> ignite::network::tcp_range&>(ignite::network::detail::linux_async_client*&,
> std::_Sp_alloc_shared_tag<std::allocator<void>>, int&, ignite::end_point&&,
> ignite::network::tcp_range&)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:969:19
> #5 0x5715f6a7c7fb in
> std::__shared_ptr<ignite::network::detail::linux_async_client,
> (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, int&,
> ignite::end_point,
> ignite::network::tcp_range&>(std::_Sp_alloc_shared_tag<std::allocator<void>>,
> int&, ignite::end_point&&, ignite::network::tcp_range&)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1712:14
> #6 0x5715f6a7c76e in
> std::shared_ptr<ignite::network::detail::linux_async_client>::shared_ptr<std::allocator<void>,
> int&, ignite::end_point,
> ignite::network::tcp_range&>(std::_Sp_alloc_shared_tag<std::allocator<void>>,
> int&, ignite::end_point&&, ignite::network::tcp_range&)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:464:4
> #7 0x5715f6a7c6cc in
> std::shared_ptr<std::enable_if<!is_array<ignite::network::detail::linux_async_client>::value,
> ignite::network::detail::linux_async_client>::type>
> std::make_shared<ignite::network::detail::linux_async_client, int&,
> ignite::end_point, ignite::network::tcp_range&>(int&, ignite::end_point&&,
> ignite::network::tcp_range&)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:1009:14
> #8 0x5715f6a7c48e in
> ignite::network::detail::connecting_context::to_client(int)
> /ignite-3/modules/platforms/cpp/ignite/network/detail/linux/connecting_context.cpp:92:12
> #9 0x5715f6a56ce6 in
> ignite::network::detail::linux_async_worker_thread::handle_new_connections()
> /ignite-3/modules/platforms/cpp/ignite/network/detail/linux/linux_async_worker_thread.cpp:176:46
> #10 0x5715f6a5628f in
> ignite::network::detail::linux_async_worker_thread::run()
> /ignite-3/modules/platforms/cpp/ignite/network/detail/linux/linux_async_worker_thread.cpp:125:9
> #11 0x5715f6a5b440 in void std::__invoke_impl<void, void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>(std::__invoke_memfun_deref,
> void (ignite::network::detail::linux_async_worker_thread::*&&)(),
> ignite::network::detail::linux_async_worker_thread*&&)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/invoke.h:74:14
> #12 0x5715f6a5b32c in std::__invoke_result<void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>::type std::__invoke<void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>(void
> (ignite::network::detail::linux_async_worker_thread::*&&)(),
> ignite::network::detail::linux_async_worker_thread*&&)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/invoke.h:96:14
> #13 0x5715f6a5b301 in void std::thread::_Invoker<std::tuple<void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>>::_M_invoke<0ul,
> 1ul>(std::_Index_tuple<0ul, 1ul>)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_thread.h:292:13
> #14 0x5715f6a5b2c4 in std::thread::_Invoker<std::tuple<void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>>::operator()()
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_thread.h:299:11
> #15 0x5715f6a5b108 in
> std::thread::_State_impl<std::thread::_Invoker<std::tuple<void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*>>>::_M_run()
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_thread.h:244:13
> #16 0x73a45a4ecdb3 (/lib/x86_64-linux-gnu/libstdc++.so.6+0xecdb3)
> (BuildId: ca77dae775ec87540acd7218fa990c40d1c94ab1)
> #17 0x5715f66c381a in asan_thread_start(void*)
> asan_interceptors.cpp.oThread T6 created by T0 here:
> #0 0x5715f66ab3d5 in pthread_create
> (/ignite-3/modules/platforms/cpp/build/bin/ignite-odbc-test+0x15f3d5)
> (BuildId: 5ddc1040541dcf3964718a260ef570735851f741)
> #1 0x73a45a4eceb0 in
> std::thread::_M_start_thread(std::unique_ptr<std::thread::_State,
> std::default_delete<std::thread::_State>>, void (*)())
> (/lib/x86_64-linux-gnu/libstdc++.so.6+0xeceb0) (BuildId:
> ca77dae775ec87540acd7218fa990c40d1c94ab1)
> #2 0x5715f6a5929f in std::thread::thread<void
> (ignite::network::detail::linux_async_worker_thread::*)(),
> ignite::network::detail::linux_async_worker_thread*, void>(void
> (ignite::network::detail::linux_async_worker_thread::*&&)(),
> ignite::network::detail::linux_async_worker_thread*&&)
> /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_thread.h:164:2
> #3 0x5715f6a560ad in
> ignite::network::detail::linux_async_worker_thread::start(unsigned long,
> std::vector<ignite::network::tcp_range,
> std::allocator<ignite::network::tcp_range>>)
> /ignite-3/modules/platforms/cpp/ignite/network/detail/linux/linux_async_worker_thread.cpp:99:16
> #4 0x5715f6a4dab8 in
> ignite::network::detail::linux_async_client_pool::start(std::vector<ignite::network::tcp_range,
> std::allocator<ignite::network::tcp_range>>, unsigned int)
> /ignite-3/modules/platforms/cpp/ignite/network/detail/linux/linux_async_client_pool.cpp:48:25
> #5 0x5715f6a7586c in
> ignite::network::async_client_pool_adapter::start(std::vector<ignite::network::tcp_range,
> std::allocator<ignite::network::tcp_range>>, unsigned int)
> /ignite-3/modules/platforms/cpp/ignite/network/async_client_pool_adapter.cpp:37:13
> #6 0x5715f690cafc in
> ignite::detail::cluster_connection::start_async(std::function<void
> (ignite::ignite_result<void>)>)
> /ignite-3/modules/platforms/cpp/ignite/client/detail/cluster_connection.cpp:83:13
> #7 0x5715f68d2cc3 in
> ignite::detail::ignite_client_impl::start(std::function<void
> (ignite::ignite_result<void>)>)
> /ignite-3/modules/platforms/cpp/ignite/client/detail/ignite_client_impl.h:68:83
> #8 0x5715f68cbc73 in
> ignite::ignite_client::start(ignite::ignite_client_configuration,
> std::chrono::duration<long, std::ratio<1l, 1000l>>)
> /ignite-3/modules/platforms/cpp/ignite/client/ignite_client.cpp:44:11
> #9 0x5715f673a200 in
> basic_auth_test_suite::set_authentication_enabled(bool)
> /ignite-3/modules/platforms/cpp/tests/test-common/basic_auth_test_suite.h:97:27
> #10 0x5715f67369e9 in auth_test_username_Test::TestBody()
> /ignite-3/modules/platforms/cpp/tests/odbc-test/auth_test.cpp:132:5
> #11 0x5715f6af4023 in void
> testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test,
> void>(testing::Test*, void (testing::Test::*)(), char const*)
> /ignite-3/modules/platforms/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:2612:10
> #12 0x5715f6adbea5 in void
> testing::internal::HandleExceptionsInMethodIfSupported<testing::Test,
> void>(testing::Test*, void (testing::Test::*)(), char const*)
> /ignite-3/modules/platforms/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:2648:14
> #13 0x5715f6abbbb6 in testing::Test::Run()
> /ignite-3/modules/platforms/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:2687:5
> #14 0x5715f6abc77b in testing::TestInfo::Run()
> /ignite-3/modules/platforms/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:2836:11
> #15 0x5715f6abcf9c in testing::TestSuite::Run()
> /ignite-3/modules/platforms/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:3015:30
> #16 0x5715f6ace838 in testing::internal::UnitTestImpl::RunAllTests()
> /ignite-3/modules/platforms/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:5920:44
> #17 0x5715f6af7f53 in bool
> testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
> bool>(testing::internal::UnitTestImpl*, bool
> (testing::internal::UnitTestImpl::*)(), char const*)
> /ignite-3/modules/platforms/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:2612:10
> #18 0x5715f6ade275 in bool
> testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
> bool>(testing::internal::UnitTestImpl*, bool
> (testing::internal::UnitTestImpl::*)(), char const*)
> /ignite-3/modules/platforms/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:2648:14
> #19 0x5715f6ace3ba in testing::UnitTest::Run()
> /ignite-3/modules/platforms/cpp/build/_deps/googletest-src/googletest/src/gtest.cc:5484:10
> #20 0x5715f67d7d20 in RUN_ALL_TESTS()
> /ignite-3/modules/platforms/cpp/build/_deps/googletest-src/googletest/include/gtest/gtest.h:2317:73
> #21 0x5715f67d7266 in main
> /ignite-3/modules/platforms/cpp/tests/odbc-test/main.cpp:82:40
> #22 0x73a45a02a1c9 in __libc_start_call_main
> csu/../sysdeps/nptl/libc_start_call_main.h:58:16
> #23 0x73a45a02a28a in __libc_start_main csu/../csu/libc-start.c:360:3
> #24 0x5715f6626094 in _start
> (/ignite-3/modules/platforms/cpp/build/bin/ignite-odbc-test+0xda094)
> (BuildId: 5ddc1040541dcf3964718a260ef570735851f741)SUMMARY: AddressSanitizer:
> heap-use-after-free
> /ignite-3/modules/platforms/cpp/ignite/network/detail/linux/linux_async_client.cpp:158:24
> in ignite::network::detail::linux_async_client::process_sent() {code}
> Test to reproduce: auth_test.username
> Looks like some kind of race condition, because reproduces rarely
--
This message was sent by Atlassian Jira
(v8.20.10#820010)