Unit tests - current failures
ut_conversation
Buffer overflow
buffer overflow when conversation.cpp:2116, testConversationPreferencesMultiDevices
arrives
Deadlock
Thread 2 (Thread 0x7ffff6036640 (LWP 99138) "ut_conversation"):
#0 0x00007ffff6718bcf in __GI___poll (fds=fds@entry=0x7ffff6035238, nfds=nfds@entry=1, timeout=-300) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x0000555555e144be in poll (__timeout=<optimized out>, __nfds=1, __fds=0x7ffff6035238) at /usr/include/x86_64-linux-gnu/bits/poll2.h:39
#2 dhtnet::upnp::NatPmp::readResponse(natpmp_t&, natpmpresp_t&) (this=this@entry=0x7ffff0000b80, handle=..., response=...) at /home/sblin/Projects/jami-client-qt/daemon/contrib/native/dhtnet/src/upnp/protocol/natpmp/nat_pmp.cpp:357
#3 0x0000555555e15810 in dhtnet::upnp::NatPmp::getIgdPublicAddress() (this=0x7ffff0000b80) at /home/sblin/Projects/jami-client-qt/daemon/contrib/native/dhtnet/src/upnp/protocol/natpmp/nat_pmp.cpp:522
#4 0x0000555555e16064 in dhtnet::upnp::NatPmp::initNatPmp() (this=0x7ffff0000b80) at /home/sblin/Projects/jami-client-qt/daemon/contrib/native/dhtnet/src/upnp/protocol/natpmp/nat_pmp.cpp:113
#5 0x0000555555e1a015 in dhtnet::upnp::NatPmp::searchForIgd() (this=0x7ffff0000b80) at /home/sblin/Projects/jami-client-qt/daemon/contrib/native/dhtnet/src/upnp/protocol/natpmp/nat_pmp.cpp:192
#6 0x0000555555df4710 in operator() (__closure=0x7ffff6035610) at /home/sblin/Projects/jami-client-qt/daemon/contrib/native/dhtnet/src/upnp/upnp_context.cpp:166
#7 asio::asio_handler_invoke<dhtnet::upnp::UPnPContext::startUpnp()::<lambda()> > (function=...) at /home/sblin/Projects/jami-client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/handler_invoke_hook.hpp:87
#8 asio_handler_invoke_helpers::invoke<dhtnet::upnp::UPnPContext::startUpnp()::<lambda()>, dhtnet::upnp::UPnPContext::startUpnp()::<lambda()> > (context=..., function=...) at /home/sblin/Projects/jami-client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/detail/handler_invoke_helpers.hpp:54
#9 asio::io_context::initiate_dispatch::operator()<dhtnet::upnp::UPnPContext::startUpnp()::<lambda()> > (this=<optimized out>, self=0x555558699ee0, handler=...) at /home/sblin/Projects/jami-client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/impl/io_context.hpp:135
#10 asio::detail::completion_handler_async_result<dhtnet::upnp::UPnPContext::startUpnp()::<lambda()>, void()>::initiate<asio::io_context::initiate_dispatch, dhtnet::upnp::UPnPContext::startUpnp()::<lambda()>, asio::io_context*> (token=..., initiation=<optimized out>) at /home/sblin/Projects/jami-client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/async_result.hpp:481
#11 asio::async_initiate<dhtnet::upnp::UPnPContext::startUpnp()::<lambda()>, void(), asio::io_context::initiate_dispatch, asio::io_context*> (token=..., initiation=<optimized out>) at /home/sblin/Projects/jami-client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/async_result.hpp:895
#12 asio::io_context::dispatch<dhtnet::upnp::UPnPContext::startUpnp()::<lambda()> > (handler=..., this=0x555558699ee0) at /home/sblin/Projects/jami-client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/impl/io_context.hpp:163
#13 dhtnet::upnp::UPnPContext::startUpnp() (this=0x55555869d150) at /home/sblin/Projects/jami-client-qt/daemon/contrib/native/dhtnet/src/upnp/upnp_context.cpp:166
#14 0x0000555555df6fa0 in dhtnet::upnp::UPnPContext::registerController(void*) (this=this@entry=0x55555869d150, controller=<optimized out>, controller@entry=0x555558722290) at /home/sblin/Projects/jami-client-qt/daemon/contrib/native/dhtnet/src/upnp/upnp_context.cpp:441
#15 0x0000555555e01b05 in operator() (__closure=0x7ffff6035770) at /home/sblin/Projects/jami-client-qt/daemon/contrib/native/dhtnet/src/upnp/upnp_control.cpp:27
#16 asio::asio_handler_invoke<dhtnet::upnp::Controller::Controller(const std::shared_ptr<dhtnet::upnp::UPnPContext>&)::<lambda()> > (function=...) at /home/sblin/Projects/jami-client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/handler_invoke_hook.hpp:87
#17 asio_handler_invoke_helpers::invoke<dhtnet::upnp::Controller::Controller(const std::shared_ptr<dhtnet::upnp::UPnPContext>&)::<lambda()>, dhtnet::upnp::Controller::Controller(const std::shared_ptr<dhtnet::upnp::UPnPContext>&)::<lambda()> > (context=..., function=...) at /home/sblin/Projects/jami-client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/detail/handler_invoke_helpers.hpp:54
#18 asio::detail::handler_work<dhtnet::upnp::Controller::Controller(const std::shared_ptr<dhtnet::upnp::UPnPContext>&)::<lambda()>, asio::io_context::basic_executor_type<std::allocator<void>, 0>, void>::complete<dhtnet::upnp::Controller::Controller(const std::shared_ptr<dhtnet::upnp::UPnPContext>&)::<lambda()> > (handler=..., function=..., this=<synthetic pointer>) at /home/sblin/Projects/jami-client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/detail/handler_work.hpp:523
#19 asio::detail::completion_handler<dhtnet::upnp::Controller::Controller(const std::shared_ptr<dhtnet::upnp::UPnPContext>&)::<lambda()>, asio::io_context::basic_executor_type<std::allocator<void>, 0> >::do_complete(void *, asio::detail::operation *, const asio::error_code &, std::size_t) (owner=0x555558661080, base=<optimized out>) at /home/sblin/Projects/jami-client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/detail/completion_handler.hpp:73
#20 0x0000555555df25ac in asio::detail::scheduler_operation::complete(void*, std::error_code const&, unsigned long) (bytes_transferred=0, ec=std::error_code = {std::_V2::error_category: 0}, owner=0x555558661080, this=0x555558722070) at /home/sblin/Projects/jami-client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/detail/scheduler_operation.hpp:39
#21 asio::detail::scheduler::do_run_one(asio::detail::conditionally_enabled_mutex::scoped_lock&, asio::detail::scheduler_thread_info&, std::error_code const&) (ec=std::error_code = {std::_V2::error_category: 0}, this_thread=..., lock=..., this=0x555558661080) at /home/sblin/Projects/jami-client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/detail/impl/scheduler.ipp:492
#22 asio::detail::scheduler::run(std::error_code&) (this=0x555558661080, ec=<optimized out>) at /home/sblin/Projects/jami-client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/detail/impl/scheduler.ipp:2--Type <RET> for more, q to quit, c to continue without paging--
09
#23 0x0000555555df297f in asio::io_context::run() (this=<optimized out>, this=<optimized out>) at /home/sblin/Projects/jami-client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/impl/io_context.ipp:63
#24 operator() (__closure=0x55555869a548) at /home/sblin/Projects/jami-client-qt/daemon/contrib/native/dhtnet/src/upnp/upnp_context.cpp:71
#25 std::__invoke_impl<void, dhtnet::upnp::UPnPContext::createIoContext(const std::shared_ptr<asio::io_context>&, const std::shared_ptr<dht::log::Logger>&)::<lambda()> > (__f=...) at /usr/include/c++/11/bits/invoke.h:61
#26 std::__invoke<dhtnet::upnp::UPnPContext::createIoContext(const std::shared_ptr<asio::io_context>&, const std::shared_ptr<dht::log::Logger>&)::<lambda()> > (__fn=...) at /usr/include/c++/11/bits/invoke.h:96
#27 std::thread::_Invoker<std::tuple<dhtnet::upnp::UPnPContext::createIoContext(const std::shared_ptr<asio::io_context>&, const std::shared_ptr<dht::log::Logger>&)::<lambda()> > >::_M_invoke<0> (this=0x55555869a548) at /usr/include/c++/11/bits/std_thread.h:259
#28 std::thread::_Invoker<std::tuple<dhtnet::upnp::UPnPContext::createIoContext(const std::shared_ptr<asio::io_context>&, const std::shared_ptr<dht::log::Logger>&)::<lambda()> > >::operator() (this=0x55555869a548) at /usr/include/c++/11/bits/std_thread.h:266
#29 std::thread::_State_impl<std::thread::_Invoker<std::tuple<dhtnet::upnp::UPnPContext::createIoContext(const std::shared_ptr<asio::io_context>&, const std::shared_ptr<dht::log::Logger>&)::<lambda()> > > >::_M_run(void) (this=0x55555869a540) at /usr/include/c++/11/bits/std_thread.h:211
#30 0x00007ffff6adc253 in () at /lib/x86_64-linux-gnu/libstdc++.so.6
#31 0x00007ffff6694ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#32 0x00007ffff6726850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 1 (Thread 0x7ffff6039c00 (LWP 99123) "ut_conversation"):
#0 __futex_abstimed_wait_common64 (private=-10032, cancel=true, abstime=0x7fffffffd860, op=137, expected=0, futex_word=0x7fffffffd918) at ./nptl/futex-internal.c:57
#1 __futex_abstimed_wait_common (cancel=true, private=-10032, abstime=0x7fffffffd860, clockid=0, expected=0, futex_word=0x7fffffffd918) at ./nptl/futex-internal.c:87
#2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7fffffffd918, expected=expected@entry=0, clockid=clockid@entry=1, abstime=abstime@entry=0x7fffffffd860, private=private@entry=0) at ./nptl/futex-internal.c:139
#3 0x00007ffff66942dd in __pthread_cond_wait_common (abstime=0x7fffffffd860, clockid=1, mutex=0x55555869d368, cond=0x7fffffffd8f0) at ./nptl/pthread_cond_wait.c:503
#4 ___pthread_cond_clockwait64 (abstime=0x7fffffffd860, clockid=1, mutex=0x55555869d368, cond=0x7fffffffd8f0) at ./nptl/pthread_cond_wait.c:691
#5 ___pthread_cond_clockwait64 (cond=0x7fffffffd8f0, mutex=0x55555869d368, clockid=1, abstime=0x7fffffffd860) at ./nptl/pthread_cond_wait.c:679
#6 0x0000555555df2c65 in std::__condvar::wait_until(std::mutex&, int, timespec&) (__abs_time=..., __clock=1, __m=..., this=0x7fffffffd8f0) at /usr/include/c++/11/bits/std_mutex.h:169
#7 std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__lock=<optimized out>, __lock=..., __atime=<optimized out>, this=0x7fffffffd8f0) at /usr/include/c++/11/condition_variable:201
#8 std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__atime=<optimized out>, __lock=..., this=0x7fffffffd8f0) at /usr/include/c++/11/condition_variable:111
#9 std::condition_variable::wait_until<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> >, dhtnet::upnp::UPnPContext::shutdown()::<lambda()> > (__p=..., __atime=<optimized out>, __lock=..., this=0x7fffffffd8f0) at /usr/include/c++/11/condition_variable:152
#10 std::condition_variable::wait_for<long int, std::ratio<1>, dhtnet::upnp::UPnPContext::shutdown()::<lambda()> > (__rtime=<optimized out>, __rtime=<optimized out>, __p=..., __lock=..., this=0x7fffffffd8f0) at /usr/include/c++/11/condition_variable:175
#11 dhtnet::upnp::UPnPContext::shutdown() (this=0x55555869d150) at /home/sblin/Projects/jami-client-qt/daemon/contrib/native/dhtnet/src/upnp/upnp_context.cpp:116
#12 0x000055555574c7cd in jami::Manager::finish() (this=0x555557346520 <jami::Manager::instance()::instance>) at manager.cpp:900
#13 0x00005555557dc3ce in libjami::fini() () at ring_api.cpp:105
#14 0x00005555557129af in jami::test::ConversationMembersEventTest::~ConversationMembersEventTest() (this=0x555558697320, __in_chrg=<optimized out>) at conversation/conversationMembersEvent.cpp:68
#15 0x0000555555712a8a in jami::test::ConversationMembersEventTest::~ConversationMembersEventTest() (this=0x555558697320, __in_chrg=<optimized out>) at conversation/conversationMembersEvent.cpp:68
#16 0x000055555572b403 in CppUnit::TestCaller<jami::test::ConversationMembersEventTest>::~TestCaller() (this=0x5555586976e0, __in_chrg=<optimized out>) at /usr/include/cppunit/TestCaller.h:170
#17 0x000055555572b448 in CppUnit::TestCaller<jami::test::ConversationMembersEventTest>::~TestCaller() (this=0x5555586976e0, __in_chrg=<optimized out>) at /usr/include/cppunit/TestCaller.h:171
#18 0x00007ffff7f7983d in CppUnit::TestSuite::deleteContents() () at /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#19 0x00007ffff7f814cb in CppUnit::TestSuite::~TestSuite() () at /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#20 0x00007ffff7f814fd in CppUnit::TestSuite::~TestSuite() () at /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#21 0x00007ffff7f7983d in CppUnit::TestSuite::deleteContents() () at /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#22 0x00007ffff7f814cb in CppUnit::TestSuite::~TestSuite() () at /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#23 0x00007ffff7f814fd in CppUnit::TestSuite::~TestSuite() () at /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#24 0x00007ffff7f7983d in CppUnit::TestSuite::deleteContents() () at /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#25 0x00007ffff7f814cb in CppUnit::TestSuite::~TestSuite() () at /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#26 0x00007ffff7f8154b in () at /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#27 0x00005555557029fa in main() () at conversation/conversationMembersEvent.cpp:1720
ut_conversation_call
Thread 263 (Thread 0x7fffc8568640 (LWP 179020) "ut_conversation"):
#0 futex_wait (private=0, expected=2, futex_word=0x611000b3f510) at ../sysdeps/nptl/futex-internal.h:146
#1 __GI___lll_lock_wait (futex=futex@entry=0x611000b3f510, private=0) at ./nptl/lowlevellock.c:49
#2 0x00007ffff5a98002 in lll_mutex_lock_optimized (mutex=0x611000b3f510) at ./nptl/pthread_mutex_lock.c:48
#3 ___pthread_mutex_lock (mutex=0x611000b3f510) at ./nptl/pthread_mutex_lock.c:93
#4 0x0000555555b3526f in __gthread_mutex_lock(__gthread_mutex_t*) (__mutex=0x611000b3f510) at /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:749
--Type <RET> for more, q to quit, c to continue without paging--
#5 0x0000555555c16684 in std::mutex::lock() (this=0x611000b3f510) at /usr/include/c++/11/bits/std_mutex.h:100
#6 0x0000555555cf2bd9 in std::lock_guard<std::mutex>::lock_guard(std::mutex&) (this=0x7fffc85673c0, __m=...) at /usr/include/c++/11/bits/std_mutex.h:229
#7 0x0000555555f4fcbc in jami::ConversationModule::Impl::withConversation<std::basic_string_view<char>, jami::ConversationModule::removeGitSocket(std::string_view, std::string_view)::<lambda(auto:31&)> >(const std::basic_string_view<char, std::char_traits<char> > &, struct {...} &&) (this=0x618000053080, convId="14e0e7b36da2d947cb3b6d4989f716069074f265", cb=...) at jamidht/conversation_module.cpp:140
#8 0x0000555555f50022 in jami::ConversationModule::removeGitSocket(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >) (this=0x602000063690, deviceId="fb2a095c093039c956ee08f9b98c8eb7268be6a2b65af7df4b1497595beeb042", convId="14e0e7b36da2d947cb3b6d4989f716069074f265") at jamidht/conversation_module.cpp:3172
#9 0x00005555561ab503 in operator()() const (__closure=0x607000035700) at jamidht/jamiaccount.cpp:2213
#10 0x00005555561eaa54 in std::__invoke_impl<void, jami::JamiAccount::convModule(bool)::<lambda(const auto:37&, const auto:38&, auto:39, const auto:40&)>::<lambda()>::<lambda(std::shared_ptr<dhtnet::ChannelSocket>, const DeviceId&)>::<lambda()>::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
#11 0x00005555561e1c9c in std::__invoke_r<void, jami::JamiAccount::convModule(bool)::<lambda(const auto:37&, const auto:38&, auto:39, const auto:40&)>::<lambda()>::<lambda(std::shared_ptr<dhtnet::ChannelSocket>, const DeviceId&)>::<lambda()>::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/11/bits/invoke.h:111
#12 0x00005555561d31cf in std::_Function_handler<void(), jami::JamiAccount::convModule(bool)::<lambda(const auto:37&, const auto:38&, auto:39, const auto:40&)>::<lambda()>::<lambda(std::shared_ptr<dhtnet::ChannelSocket>, const DeviceId&)>::<lambda()>::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/11/bits/std_function.h:290
#13 0x0000555556acadaa in dhtnet::ChannelSocket::stop() ()
#14 0x0000555556acbe25 in dhtnet::MultiplexedSocket::Impl::handleChannelPacket(unsigned short, std::vector<unsigned char, std::allocator<unsigned char> >&&) ()
#15 0x0000555556ad3175 in dhtnet::MultiplexedSocket::Impl::eventLoop() ()
#16 0x0000555556ad5818 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dhtnet::MultiplexedSocket::Impl::Impl(dhtnet::MultiplexedSocket&, std::shared_ptr<asio::io_context>, dht::Hash<32ul> const&, std::unique_ptr<dhtnet::TlsSocketEndpoint, std::default_delete<dhtnet::TlsSocketEndpoint> >, std::shared_ptr<dht::log::Logger>)::{lambda()#1}> > >::_M_run() ()
#17 0x00007ffff5edc253 in () at /lib/x86_64-linux-gnu/libstdc++.so.6
#18 0x00007ffff5a94ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#19 0x00007ffff5b26850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 133 (Thread 0x7fffd17ab640 (LWP 178853) "ut_conversation"):
#0 futex_wait (private=0, expected=2, futex_word=0x61b0000b2210) at ../sysdeps/nptl/futex-internal.h:146
#1 __GI___lll_lock_wait (futex=futex@entry=0x61b0000b2210, private=0) at ./nptl/lowlevellock.c:49
#2 0x00007ffff5a98002 in lll_mutex_lock_optimized (mutex=0x61b0000b2210) at ./nptl/pthread_mutex_lock.c:48
#3 ___pthread_mutex_lock (mutex=0x61b0000b2210) at ./nptl/pthread_mutex_lock.c:93
#4 0x0000555555b3526f in __gthread_mutex_lock(__gthread_mutex_t*) (__mutex=0x61b0000b2210) at /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:749
#5 0x0000555555c16684 in std::mutex::lock() (this=0x61b0000b2210) at /usr/include/c++/11/bits/std_mutex.h:100
#6 0x0000555555cf2bd9 in std::lock_guard<std::mutex>::lock_guard(std::mutex&) (this=0x7fffd17a9bc0, __m=...) at /usr/include/c++/11/bits/std_mutex.h:229
#7 0x000055555687d65f in jami::Conversation::lastCommitId[abi:cxx11]() const (this=0x6040000a6d20) at jamidht/conversation.cpp:1612
#8 0x0000555555f154a4 in jami::ConversationModule::Impl::fetchNewCommits(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (this=0x618000053080, peer="9302578652397e5786f9c5ee55b884e1f738ea95", deviceId="fb2a095c093039c956ee08f9b98c8eb7268be6a2b65af7df4b1497595beeb042", conversationId="14e0e7b36da2d947cb3b6d4989f716069074f265", commitId="b6034cd39e60ce3f8885235ecd211de327671f85") at jamidht/conversation_module.cpp:590
#9 0x0000555555f3f21a in jami::ConversationModule::fetchNewCommits(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (this=0x602000063690, peer="9302578652397e5786f9c5ee55b884e1f738ea95", deviceId="fb2a095c093039c956ee08f9b98c8eb7268be6a2b65af7df4b1497595beeb042", conversationId="14e0e7b36da2d947cb3b6d4989f716069074f265", commitId="b6034cd39e60ce3f8885235ecd211de327671f85") at jamidht/conversation_module.cpp:2491
#10 0x0000555556184230 in operator()() const (__closure=0x60d0006459e0) at jamidht/jamiaccount.cpp:3332
#11 0x00005555561e4dd4 in std::__invoke_impl<void, jami::JamiAccount::handleMessage(const string&, const std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >&)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
#12 0x00005555561d6ec5 in std::__invoke_r<void, jami::JamiAccount::handleMessage(const string&, const std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >&)::<lambda()>&>(struct --Type <RET> for more, q to quit, c to continue without paging--
{...} &) (__fn=...) at /usr/include/c++/11/bits/invoke.h:111
#13 0x00005555561c592d in std::_Function_handler<void(), jami::JamiAccount::handleMessage(const string&, const std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/11/bits/std_function.h:290
#14 0x0000555556bf456c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#15 0x00007ffff5edc253 in () at /lib/x86_64-linux-gnu/libstdc++.so.6
#16 0x00007ffff5a94ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#17 0x00007ffff5b26850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 32 (Thread 0x7fffd3148640 (LWP 178710) "ut_conversation"):
#0 futex_wait (private=0, expected=2, futex_word=0x611000b3f510) at ../sysdeps/nptl/futex-internal.h:146
#1 __GI___lll_lock_wait (futex=futex@entry=0x611000b3f510, private=0) at ./nptl/lowlevellock.c:49
#2 0x00007ffff5a98002 in lll_mutex_lock_optimized (mutex=0x611000b3f510) at ./nptl/pthread_mutex_lock.c:48
#3 ___pthread_mutex_lock (mutex=0x611000b3f510) at ./nptl/pthread_mutex_lock.c:93
#4 0x0000555555b3526f in __gthread_mutex_lock(__gthread_mutex_t*) (__mutex=0x611000b3f510) at /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:749
#5 0x0000555555c16684 in std::mutex::lock() (this=0x611000b3f510) at /usr/include/c++/11/bits/std_mutex.h:100
#6 0x0000555555cf2bd9 in std::lock_guard<std::mutex>::lock_guard(std::mutex&) (this=0x7fffd3146460, __m=...) at /usr/include/c++/11/bits/std_mutex.h:229
#7 0x0000555555f4ed35 in jami::ConversationModule::Impl::setConversationMembers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) (this=0x618000053080, convId="14e0e7b36da2d947cb3b6d4989f716069074f265", members=std::set with 3 elements = {...}) at jamidht/conversation_module.cpp:3128
#8 0x0000555555f167e9 in operator()<std::set<std::__cxx11::basic_string<char> > >(std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) const (__closure=0x6040001eee10, members=std::set with 3 elements = {...}) at jamidht/conversation_module.cpp:718
#9 0x0000555555f78d17 in std::__invoke_impl<void, jami::ConversationModule::Impl::handlePendingConversation(const string&, const string&)::<lambda(const auto:5&)>&, const std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
#10 0x0000555555f6f206 in std::__invoke_r<void, jami::ConversationModule::Impl::handlePendingConversation(const string&, const string&)::<lambda(const auto:5&)>&, const std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&>(struct {...} &) (__fn=...) at /usr/include/c++/11/bits/invoke.h:111
#11 0x0000555555f6a5b1 in std::_Function_handler<void(const std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&), jami::ConversationModule::Impl::handlePendingConversation(const string&, const string&)::<lambda(const auto:5&)> >::_M_invoke(const std::_Any_data &, const std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > &) (__functor=..., __args#0=std::set with 3 elements = {...}) at /usr/include/c++/11/bits/std_function.h:290
#12 0x00005555568cc325 in std::function<void (std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)>::operator()(std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) const (this=0x61b0000b23e0, __args#0=std::set with 3 elements = {...}) at /usr/include/c++/11/bits/std_function.h:590
#13 0x00005555568c1be6 in jami::Conversation::Impl::announce(std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&, bool) const (this=0x61b0000b2180, commits=std::vector of length 3, capacity 3 = {...}, commitFromSelf=false) at jamidht/conversation.cpp:453
#14 0x00005555568808f9 in jami::Conversation::Impl::pull() (this=0x61b0000b2180) at jamidht/conversation.cpp:1757
#15 0x000055555687ed66 in operator()() const (__closure=0x6020000bc7f0) at jamidht/conversation.cpp:1684
#16 0x00005555568af684 in std::__invoke_impl<void, jami::Conversation::pull(const string&, jami::OnPullCb&&, std::string)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
#17 0x00005555568a9f80 in std::__invoke_r<void, jami::Conversation::pull(const string&, jami::OnPullCb&&, std::string)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/11/bits/invoke.h:111
#18 0x00005555568a526d in std::_Function_handler<void(), jami::Conversation::pull(const string&, jami::OnPullCb&&, std::string)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/11/bits/std_function.h:290
#19 0x0000555556bf456c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
--Type <RET> for more, q to quit, c to continue without paging--
#20 0x00007ffff5edc253 in () at /lib/x86_64-linux-gnu/libstdc++.so.6
#21 0x00007ffff5a94ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#22 0x00007ffff5b26850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Sporadic deadlock: Review: https://review.jami.net/c/jami-daemon/+/28214
ut_conversationMemberEvents
2) test: jami::test::ConversationMembersEventTest::testAddAcceptOfflineThenConnects (F) line: 614 conversation/conversationMembersEvent.cpp
assertion failed
- Expression: cv.wait_for(lk, 60s, [&]() { return !bobData.conversationId.empty(); })
Since https://review.jami.net/c/jami-daemon/+/27974 Review: https://review.jami.net/c/jami-daemon/+/28195
Weird log
Review: https://review.jami.net/c/jami-daemon/+/28197
[1715209754.628|43219|message_engine.cpp :150 ] [message 521346667940871] Message sent: success
[1715209754.628|43219|message_engine.cpp :156 ] onMessageSent: Peer not found: id:xxxxxx device:0000000000000000000000000000000000000000000000000000000000000000
[1715209754.629|43515|channeled_transport.cpp :186 ] [SIPS] process disconnect event