savoirfairelinux issueshttps://git.jami.net/groups/savoirfairelinux/-/issues2024-02-09T17:00:37Zhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1560Some files doesn't load in chatview but are there2024-02-09T17:00:37ZSébastien BlinSome files doesn't load in chatview but are there# Scenario
+ Send files
+ Reload Jami
+ Some are not showing in the chatview, but they are showing in other panels (search or files in details)# Scenario
+ Send files
+ Reload Jami
+ Some are not showing in the chatview, but they are showing in other panels (search or files in details)https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1559AccountComboboxPopup : 2 lines are displayed in the ListView2024-03-01T02:46:01ZCapucine BerthetAccountComboboxPopup : 2 lines are displayed in the ListView![image](/uploads/a5f1987810cef11f2541f431719d8722/image.png)![image](/uploads/a5f1987810cef11f2541f431719d8722/image.png)Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/948Improve AccountStatusMessage synchronization2024-02-23T13:52:34ZSébastien BlinImprove AccountStatusMessage synchronization# Problems
On current master:
+ when you send a message, the message is marked as SENT as soon as one device got the messages
+ state is not kept after a reboot
+ if we say that a message is sent as soon as one other member get the mess...# Problems
On current master:
+ when you send a message, the message is marked as SENT as soon as one device got the messages
+ state is not kept after a reboot
+ if we say that a message is sent as soon as one other member get the message, this must take into account the fact that Jami is distributed and the contact may fetch the message from another device, so this information MUST be synced
+ status wasn't designed for swarm until nowSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1595Delete an incoming message on Android tv should not be possible2024-02-09T20:44:19ZEmma FalkiewitzDelete an incoming message on Android tv should not be possible## Describe your environment
Please specify the following:
- Jami version: 404
- Device model: Android TV
## Steps to reproduce
- Steps:
![image](/uploads/5656069db39ae0a5a8a06827e2a57610/image.png)
- Expected result: Noth...## Describe your environment
Please specify the following:
- Jami version: 404
- Device model: Android TV
## Steps to reproduce
- Steps:
![image](/uploads/5656069db39ae0a5a8a06827e2a57610/image.png)
- Expected result: Nothing happens when a long press is performed on the message.Emma FalkiewitzEmma Falkiewitzhttps://git.jami.net/savoirfairelinux/dhtnet/-/issues/21Timeout during UPnPContext shutdown2024-02-08T20:16:00ZFrançois-Simon Fauteux-ChapleauTimeout during UPnPContext shutdownThe function `PUPnP::terminate(std::condition_variable&)`, which is called when UPnP shuts down, includes the following line:
```
cvOngoing_.wait(lk, [&]() { return ongoingOps_ == 0; });
```
This line frequently (though not always) takes...The function `PUPnP::terminate(std::condition_variable&)`, which is called when UPnP shuts down, includes the following line:
```
cvOngoing_.wait(lk, [&]() { return ongoingOps_ == 0; });
```
This line frequently (though not always) takes a very long time to complete due to a timeout in `PUPnP::downLoadIgdDescription`. More specifically, `PUPnP::downLoadIgdDescription` calls `UpnpDownloadXmlDoc`, which calls `UpnpDownloadUrlItem`, which calls `http_Download`, which calls `http_RequestAndResponse`. The `http_RequestAndResponse` function returns a `UPNP_E_SOCKET_CONNECT` error code after its attempt to establish a connection (via a call to `private_connect`) fails. This can cause a delay of over two minutes when closing Jami if multiple downloads fail (which does happen - I often got four failure while testing, e.g.:
```
PUPnP: Discovered a new IGD [uuid:C084EDD9-1DE4-9E6A-DEAD-34A8C7031F76 url: http://192.168.51.82:1780/InternetGatewayDevice.xml]
PUPnP: Discovered a new IGD [uuid:0F2A137C-6FF1-C2BE-A962-0150A7DA9FA9 url: http://192.168.51.82:1780/InternetGatewayDevice.xml]
PUPnP: Discovered a new IGD [uuid:64D4257E-8CFC-3924-97C1-9183CCBFEDB1 url: http://192.168.51.82:1780/InternetGatewayDevice.xml]
PUPnP: Discovered a new IGD [uuid:08780A31-017A-6198-F7A9-0B060FA1B336 url: http://192.168.51.82:1780/InternetGatewayDevice.xml]
[...]
Error downloading device XML document from http://192.168.51.82:1780/InternetGatewayDevice.xml -> UPNP_E_SOCKET_CONNECT
Error downloading device XML document from http://192.168.51.82:1780/InternetGatewayDevice.xml -> UPNP_E_SOCKET_CONNECT
Error downloading device XML document from http://192.168.51.82:1780/InternetGatewayDevice.xml -> UPNP_E_SOCKET_CONNECT
Error downloading device XML document from http://192.168.51.82:1780/InternetGatewayDevice.xml -> UPNP_E_SOCKET_CONNECT
```
)https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1557Crash when deleting account [non-deterministic]2024-02-08T20:09:13ZAndreas TraczykCrash when deleting account [non-deterministic]- Steps to reproduce: delete an account that has at least one conversation
- Possibly related to https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1081- Steps to reproduce: delete an account that has at least one conversation
- Possibly related to https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1081https://git.jami.net/savoirfairelinux/jami-client-ios/-/issues/345start daemon to for one account and one conversation2024-03-05T13:49:27ZKateryna Kostiukstart daemon to for one account and one conversationTo improve CPU and memory usage for notifications, we should have the option to start a daemon for just one account and one conversation.
There are two possible workflows:
- In the first workflow, for every notification, the manager is...To improve CPU and memory usage for notifications, we should have the option to start a daemon for just one account and one conversation.
There are two possible workflows:
- In the first workflow, for every notification, the manager is initialized and started, the account and conversation are loaded, and then the manager is stopped. Currently, the destruction of the manager is not supported.
- In the second workflow, the manager is initialized and started only once. Then, for every notification, the account is loaded (if not already loaded), the conversation is loaded, the account is set as active, and then set as not active once the notification has been processed.Kateryna KostiukKateryna Kostiukhttps://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1587Add biometric account authentication support2024-03-01T15:44:52ZAdrien BéraudAdd biometric account authentication supportAllow to use biometric authentication to unlock the account archive instead of entering the password.Allow to use biometric authentication to unlock the account archive instead of entering the password.Adrien BéraudAdrien Béraudhttps://git.jami.net/savoirfairelinux/dhtnet/-/issues/20deadlock in ConnectionManager2024-02-06T19:27:03ZSébastien Blindeadlock in ConnectionManagerSeems triggered by ut_conversationRequest on jami-buildmachine-04.mtl.sfl
```
^C--Type <RET> for more, q to quit, c to continue without paging--
Thread 1 "ut_conversation" received signal SIGINT, Interrupt.
__pthread_clockjoin_ex (thr...Seems triggered by ut_conversationRequest on jami-buildmachine-04.mtl.sfl
```
^C--Type <RET> for more, q to quit, c to continue without paging--
Thread 1 "ut_conversation" received signal SIGINT, Interrupt.
__pthread_clockjoin_ex (threadid=140305072371456, thread_return=0x0, clockid=<optimized out>,
abstime=<optimized out>, block=<optimized out>) at pthread_join_common.c:145
145 pthread_join_common.c: No such file or directory.
(gdb) bt
#0 __pthread_clockjoin_ex (threadid=140305072371456, thread_return=0x0, clockid=<optimized out>,
abstime=<optimized out>, block=<optimized out>) at pthread_join_common.c:145
#1 0x00007f9b6a5fa057 in std::thread::join() () from /lib/x86_64-linux-gnu/libstdc++.so.6
#2 0x0000558dcd9d0e4c in dht::ThreadPool::join() ()
#3 0x0000558dccd172c9 in jami::Manager::finish (this=0x558dcf62e760 <jami::Manager::instance()::instance>)
at manager.cpp:916
#4 0x0000558dcce24aea in libjami::fini () at ring_api.cpp:105
#5 0x0000558dcccce445 in jami::test::ConversationRequestTest::~ConversationRequestTest (this=0x558dd1669150,
__in_chrg=<optimized out>) at conversation/conversationRequest.cpp:68
#6 0x0000558dcccce60a in jami::test::ConversationRequestTest::~ConversationRequestTest (this=0x558dd1669150,
__in_chrg=<optimized out>) at conversation/conversationRequest.cpp:68
#7 0x0000558dcccf6a0f in CppUnit::TestCaller<jami::test::ConversationRequestTest>::~TestCaller (
this=0x558dd1666bd0, __in_chrg=<optimized out>) at /usr/include/cppunit/TestCaller.h:170
#8 0x0000558dcccf6ac2 in CppUnit::TestCaller<jami::test::ConversationRequestTest>::~TestCaller (
this=0x558dd1666bd0, __in_chrg=<optimized out>) at /usr/include/cppunit/TestCaller.h:171
#9 0x00007f9b6b33d822 in CppUnit::TestSuite::deleteContents() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#10 0x00007f9b6b33d86b in CppUnit::TestSuite::~TestSuite() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#11 0x00007f9b6b33d89d in CppUnit::TestSuite::~TestSuite() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#12 0x00007f9b6b33d822 in CppUnit::TestSuite::deleteContents() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#13 0x00007f9b6b33d86b in CppUnit::TestSuite::~TestSuite() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#14 0x00007f9b6b33d89d in CppUnit::TestSuite::~TestSuite() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#15 0x00007f9b6b33d822 in CppUnit::TestSuite::deleteContents() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#16 0x00007f9b6b33d86b in CppUnit::TestSuite::~TestSuite() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#17 0x00007f9b6b33d4bb in CppUnit::TestRunner::WrappingSuite::~WrappingSuite() ()
from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#18 0x0000558dcccb6325 in main () at conversation/conversationRequest.cpp:1089
(gdb) t a a bt
Thread 527 (Thread 0x7f9ad0ff9700 (LWP 104514)):
#0 __lll_lock_wait (futex=futex@entry=0x7f9af4132150, private=0) at lowlevellock.c:52
#1 0x00007f9b6ad160a3 in __GI___pthread_mutex_lock (mutex=0x7f9af4132150) at ../nptl/pthread_mutex_lock.c:80
#2 0x0000558dcd879f8c in __gthread_mutex_lock (__mutex=0x7f9af4132150) at /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:749
#3 std::mutex::lock (this=0x7f9af4132150) at /usr/include/c++/9/bits/std_mutex.h:100
#4 std::lock_guard<std::mutex>::lock_guard (__m=..., this=<synthetic pointer>) at /usr/include/c++/9/bits/std_mutex.h:159
#5 dhtnet::ConnectionManager::Impl::<lambda(bool)>::operator() (accepted=<optimized out>, __closure=0x7f9b0c040ad0) at /foo/contrib/native/dhtnet/src/connectionmanager.cpp:1068
#6 std::_Function_handler<void(bool), dhtnet::ConnectionManager::Impl::sendChannelRequest(const std::weak_ptr<dhtnet::DeviceInfo>&, const std::weak_ptr<dhtnet::ConnectionInfo>&, const std::shared_ptr<dhtnet::MultiplexedSocket>&, const string&, const Id&)::<lambda(bool)> >::_M_invoke(const std::_Any_data &, bool &&) (__functor=..., __args#0=<optimized out>) at /usr/include/c++/9/bits/std_function.h:300
#7 0x0000558dcd8aab5e in std::function<void (bool)>::operator()(bool) const (__args#0=<optimized out>, this=<optimized out>) at /usr/include/c++/9/bits/std_function.h:683
#8 dhtnet::ChannelSocket::ready (accepted=true, this=<optimized out>) at /foo/contrib/native/dhtnet/src/multiplexed_socket.cpp:1099
#9 dhtnet::MultiplexedSocket::Impl::onAccept (this=0x7f9a880240a0, name=..., channel=<optimized out>) at /foo/contrib/native/dhtnet/src/multiplexed_socket.cpp:287
#10 0x0000558dcd8ae23f in dhtnet::MultiplexedSocket::Impl::handleControlPacket (this=<optimized out>, pkt=...) at /foo/contrib/native/dhtnet/src/multiplexed_socket.cpp:464
#11 0x0000558dcd8af3ab in dhtnet::MultiplexedSocket::Impl::eventLoop (this=0x7f9a880240a0) at /foo/contrib/native/dhtnet/src/multiplexed_socket.cpp:259
#12 0x0000558dcd8b35e8 in 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}::operator()() const (__closure=<optimized out>) at /foo/contrib/native/dhtnet/src/multiplexed_socket.cpp:72
#13 std::__invoke_impl<void, 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}>(std::__invoke_other, 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}&&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#14 std::__invoke<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}>(std::__invoke_result&&, (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}&&)...) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#15 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_invoke<0ul>(std::_Index_tuple<0ul>) (this=<optimized out>) at /usr/include/c++/9/thread:244
#16 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}> >::operator()() (this=<optimized out>) at /usr/include/c++/9/thread:251
#17 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() (this=0x7f--Type <RET> for more, q to quit, c to continue without paging--
9a88008db0) at /usr/include/c++/9/thread:195
#18 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#19 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#20 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 522 (Thread 0x7f9b1cff9700 (LWP 104509)):
#0 0x00007f9b6a2a423f in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7f9b1cff85d0, rem=rem@entry=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
#1 0x00007f9b6a2a9ec7 in __GI___nanosleep (requested_time=requested_time@entry=0x7f9b1cff85d0, remaining=remaining@entry=0x0) at nanosleep.c:27
#2 0x00007f9b6a2dca7f in usleep (useconds=<optimized out>) at ../sysdeps/posix/usleep.c:32
#3 0x0000558dcd984109 in pj_thread_sleep ()
#4 0x0000558dcd983cb7 in pj_ioqueue_poll ()
#5 0x0000558dcd897eb0 in dhtnet::IceTransport::Impl::handleEvents (this=0x7f9af4274ee0, max_msec=<optimized out>) at /foo/contrib/native/dhtnet/src/ice_transport.cpp:610
#6 0x0000558dcd89805e in dhtnet::IceTransport::Impl::<lambda()>::operator() (__closure=0x7f9af4270938) at /foo/contrib/native/dhtnet/src/ice_transport.cpp:545
#7 std::__invoke_impl<void, dhtnet::IceTransport::Impl::initIceInstance(const dhtnet::IceTransportOptions&)::<lambda()> > (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#8 std::__invoke<dhtnet::IceTransport::Impl::initIceInstance(const dhtnet::IceTransportOptions&)::<lambda()> > (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#9 std::thread::_Invoker<std::tuple<dhtnet::IceTransport::Impl::initIceInstance(const dhtnet::IceTransportOptions&)::<lambda()> > >::_M_invoke<0> (this=0x7f9af4270938) at /usr/include/c++/9/thread:244
#10 std::thread::_Invoker<std::tuple<dhtnet::IceTransport::Impl::initIceInstance(const dhtnet::IceTransportOptions&)::<lambda()> > >::operator() (this=0x7f9af4270938) at /usr/include/c++/9/thread:251
#11 std::thread::_State_impl<std::thread::_Invoker<std::tuple<dhtnet::IceTransport::Impl::initIceInstance(const dhtnet::IceTransportOptions&)::<lambda()> > > >::_M_run(void) (this=0x7f9af4270930) at /usr/include/c++/9/thread:195
#12 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#13 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#14 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 232 (Thread 0x7f9b01ffb700 (LWP 104219)):
#0 0x00007f9b6a2e668e in epoll_wait (epfd=159, events=0x7f9b01ffa6d0, maxevents=16, timeout=10) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
#1 0x0000558dcd98395c in pj_ioqueue_poll ()
#2 0x0000558dcd8e6abf in dhtnet::TurnTransport::Impl::ioJob (this=0x7f9a9c011700) at /foo/contrib/native/dhtnet/src/turn/turn_transport.cpp:144
#3 dhtnet::TurnTransport::Impl::start()::{lambda()#1}::operator()() const (__closure=<optimized out>) at /foo/contrib/native/dhtnet/src/turn/turn_transport.cpp:77
#4 std::__invoke_impl<void, dhtnet::TurnTransport::Impl::start()::{lambda()#1}>(std::__invoke_other, dhtnet::TurnTransport::Impl::start()::{lambda()#1}&&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#5 std::__invoke<dhtnet::TurnTransport::Impl::start()::{lambda()#1}>(std::__invoke_result&&, (dhtnet::TurnTransport::Impl::start()::{lambda()#1}&&)...) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#6 std::thread::_Invoker<std::tuple<dhtnet::TurnTransport::Impl::start()::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=<optimized out>) at /usr/include/c++/9/thread:244
#7 std::thread::_Invoker<std::tuple<dhtnet::TurnTransport::Impl::start()::{lambda()#1}> >::operator()() (this=<optimized out>) at /usr/include/c++/9/thread:251
#8 std::thread::_State_impl<std::thread::_Invoker<std::tuple<dhtnet::TurnTransport::Impl::start()::{lambda()#1}> > >::_M_run() (this=<optimized out>) at /usr/include/c++/9/thread:195
#9 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#10 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#11 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
--Type <RET> for more, q to quit, c to continue without paging--
Thread 54 (Thread 0x7f9ad27fc700 (LWP 104041)):
#0 __lll_lock_wait (futex=futex@entry=0x7f9a88024258, private=0) at lowlevellock.c:52
#1 0x00007f9b6ad160a3 in __GI___pthread_mutex_lock (mutex=0x7f9a88024258) at ../nptl/pthread_mutex_lock.c:80
#2 0x0000558dcd8a8989 in __gthread_mutex_lock (__mutex=0x7f9a88024258) at /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:749
#3 std::mutex::lock (this=0x7f9a88024258) at /usr/include/c++/9/bits/std_mutex.h:100
#4 std::lock_guard<std::mutex>::lock_guard (__m=..., this=<synthetic pointer>) at /usr/include/c++/9/bits/std_mutex.h:159
#5 dhtnet::MultiplexedSocket::eraseChannel (this=0x7f9a880012d0, channel=32769) at /foo/contrib/native/dhtnet/src/multiplexed_socket.cpp:795
#6 0x0000558dcd8afba0 in dhtnet::MultiplexedSocket::Impl::makeSocket(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned short, bool)::{lambda()#1}::operator()() const::{lambda()#1}::operator()() const (__closure=<optimized out>) at /foo/contrib/native/dhtnet/src/multiplexed_socket.cpp:140
#7 std::_Function_handler<void (), dhtnet::MultiplexedSocket::Impl::makeSocket(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned short, bool)::{lambda()#1}::operator()() const::{lambda()#1}>::_M_invoke(std::_Any_data const&) (__functor=...) at /usr/include/c++/9/bits/std_function.h:300
#8 0x0000558dcd9d1f27 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#9 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#10 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#11 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 52 (Thread 0x7f9ad37fe700 (LWP 104039)):
#0 __lll_lock_wait (futex=futex@entry=0x7f9af4132150, private=0) at lowlevellock.c:52
#1 0x00007f9b6ad160a3 in __GI___pthread_mutex_lock (mutex=0x7f9af4132150) at ../nptl/pthread_mutex_lock.c:80
#2 0x0000558dcd87bfaa in __gthread_mutex_lock (__mutex=0x7f9af4132150) at /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:749
#3 std::mutex::lock (this=0x7f9af4132150) at /usr/include/c++/9/bits/std_mutex.h:100
#4 std::lock_guard<std::mutex>::lock_guard (__m=..., this=<synthetic pointer>) at /usr/include/c++/9/bits/std_mutex.h:159
#5 dhtnet::ConnectionManager::Impl::<lambda()>::<lambda()>::operator() (__closure=0x7f9af02375b0) at /foo/contrib/native/dhtnet/src/connectionmanager.cpp:1503
#6 std::_Function_handler<void(), dhtnet::ConnectionManager::Impl::addNewMultiplexedSocket(const std::weak_ptr<dhtnet::DeviceInfo>&, const DeviceId&, const Id&, const std::shared_ptr<dhtnet::ConnectionInfo>&)::<lambda()>::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/9/bits/std_function.h:300
#7 0x0000558dcd9d1f27 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#8 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#9 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 43 (Thread 0x7f9b51ffb700 (LWP 104030)):
#0 __lll_lock_wait (futex=futex@entry=0x7f9a88024258, private=0) at lowlevellock.c:52
#1 0x00007f9b6ad160a3 in __GI___pthread_mutex_lock (mutex=0x7f9a88024258) at ../nptl/pthread_mutex_lock.c:80
#2 0x0000558dcd8b2b4d in __gthread_mutex_lock (__mutex=0x7f9a88024258) at /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:749
#3 std::mutex::lock (this=0x7f9a88024258) at /usr/include/c++/9/bits/std_mutex.h:100
#4 std::lock_guard<std::mutex>::lock_guard (__m=..., this=<synthetic pointer>) at /usr/include/c++/9/bits/std_mutex.h:159
#5 dhtnet::MultiplexedSocket::Impl::clearSockets (this=0x7f9a880240a0) at /foo/contrib/native/dhtnet/src/multiplexed_socket.cpp:101
--Type <RET> for more, q to quit, c to continue without paging--
#6 dhtnet::MultiplexedSocket::Impl::shutdown (this=0x7f9a880240a0) at /foo/contrib/native/dhtnet/src/multiplexed_socket.cpp:126
#7 0x0000558dcd8aaf6d in dhtnet::MultiplexedSocket::shutdown (this=<optimized out>) at /usr/include/c++/9/bits/unique_ptr.h:360
#8 0x0000558dcd8931d1 in dhtnet::ConnectionInfo::shutdown (this=0x7f9af4132150) at /foo/contrib/native/dhtnet/src/connectionmanager.cpp:113
#9 0x0000558dcd893f41 in dhtnet::ConnectionManager::Impl::shutdown (this=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:1020
#10 0x0000558dcd8821ca in dhtnet::ConnectionManager::~ConnectionManager (this=0x7f9b58003ab0, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:1012
#11 0x0000558dcd17b098 in std::default_delete<dhtnet::ConnectionManager>::operator() (this=0x558dd17e5cd0, __ptr=0x7f9b58003ab0) at /usr/include/c++/9/bits/unique_ptr.h:81
#12 0x0000558dcd163034 in std::unique_ptr<dhtnet::ConnectionManager, std::default_delete<dhtnet::ConnectionManager> >::~unique_ptr (this=0x558dd17e5cd0, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/unique_ptr.h:292
#13 0x0000558dcd1e0c78 in __gnu_cxx::new_allocator<std::unique_ptr<dhtnet::ConnectionManager, std::default_delete<dhtnet::ConnectionManager> > >::destroy<std::unique_ptr<dhtnet::ConnectionManager, std::default_delete<dhtnet::ConnectionManager> > > (this=0x558dd17e5cd0, __p=0x558dd17e5cd0) at /usr/include/c++/9/ext/new_allocator.h:152
#14 0x0000558dcd1e006e in std::allocator_traits<std::allocator<std::unique_ptr<dhtnet::ConnectionManager, std::default_delete<dhtnet::ConnectionManager> > > >::destroy<std::unique_ptr<dhtnet::ConnectionManager, std::default_delete<dhtnet::ConnectionManager> > > (__a=..., __p=0x558dd17e5cd0) at /usr/include/c++/9/bits/alloc_traits.h:496
#15 0x0000558dcd1def0b in std::_Sp_counted_ptr_inplace<std::unique_ptr<dhtnet::ConnectionManager, std::default_delete<dhtnet::ConnectionManager> >, std::allocator<std::unique_ptr<dhtnet::ConnectionManager, std::default_delete<dhtnet::ConnectionManager> > >, (__gnu_cxx::_Lock_policy)2>::_M_dispose (this=0x558dd17e5cc0) at /usr/include/c++/9/bits/shared_ptr_base.h:557
#16 0x0000558dcccd9dd0 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x558dd17e5cc0) at /usr/include/c++/9/bits/shared_ptr_base.h:155
#17 0x0000558dcccd3639 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x558dd17b88e8, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:730
#18 0x0000558dcd15a7ee in std::__shared_ptr<std::unique_ptr<dhtnet::ConnectionManager, std::default_delete<dhtnet::ConnectionManager> >, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0x558dd17b88e0, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:1169
#19 0x0000558dcd15a832 in std::shared_ptr<std::unique_ptr<dhtnet::ConnectionManager, std::default_delete<dhtnet::ConnectionManager> > >::~shared_ptr (this=0x558dd17b88e0, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr.h:103
#20 0x0000558dcd0b6da0 in jami::JamiAccount::<lambda()>::~<lambda>(void) (this=0x558dd17b88e0, __in_chrg=<optimized out>) at jamidht/jamiaccount.cpp:302
#21 0x0000558dcd12cb06 in std::_Function_base::_Base_manager<jami::JamiAccount::shutdownConnections()::<lambda()> >::_M_destroy(std::_Any_data &, std::false_type) (__victim=...) at /usr/include/c++/9/bits/std_function.h:191
#22 0x0000558dcd119421 in std::_Function_base::_Base_manager<jami::JamiAccount::shutdownConnections()::<lambda()> >::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation) (__dest=..., __source=..., __op=std::__destroy_functor) at /usr/include/c++/9/bits/std_function.h:215
#23 0x0000558dcd9d1f40 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#24 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#25 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#26 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 27 (Thread 0x7f9b1effd700 (LWP 104014)):
#0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x558dcfb29954 <dht::ThreadPool::computation()::pool+84>) at ../sysdeps/nptl/futex-internal.h:183
#1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>, cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>) at pthread_cond_wait.c:508
--Type <RET> for more, q to quit, c to continue without paging--
#2 __pthread_cond_wait (cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>) at pthread_cond_wait.c:647
#3 0x00007f9b6a5f3e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x0000558dcd9d213b in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#5 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 26 (Thread 0x7f9b1f7fe700 (LWP 104013)):
#0 __lll_lock_wait (futex=futex@entry=0x7f9a88024258, private=0) at lowlevellock.c:52
#1 0x00007f9b6ad160a3 in __GI___pthread_mutex_lock (mutex=0x7f9a88024258) at ../nptl/pthread_mutex_lock.c:80
#2 0x0000558dcd8aa978 in __gthread_mutex_lock (__mutex=0x7f9a88024258) at /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:749
#3 std::mutex::lock (this=0x7f9a88024258) at /usr/include/c++/9/bits/std_mutex.h:100
#4 std::lock_guard<std::mutex>::lock_guard (__m=..., this=<synthetic pointer>) at /usr/include/c++/9/bits/std_mutex.h:159
#5 dhtnet::MultiplexedSocket::addChannel (this=0x7f9a880012d0, name="data-transfer://aaee512c061fec74d050a11716b00e497832954a/profile/12e4e93984df8ef6307e91ef3037bd9a519d323c.vcf") at /foo/contrib/native/dhtnet/src/multiplexed_socket.cpp:571
#6 0x0000558dcd879574 in dhtnet::ConnectionManager::Impl::sendChannelRequest (this=0x7f9b5802ab60, dinfow=std::weak_ptr<struct dhtnet::DeviceInfo> (use count 3, weak count 13) = {...}, cinfow=std::weak_ptr<struct dhtnet::ConnectionInfo> (use count 5, weak count 9) = {...}, sock=std::shared_ptr<class dhtnet::MultiplexedSocket> (use count 4, weak count 6) = {...}, name="data-transfer://aaee512c061fec74d050a11716b00e497832954a/profile/12e4e93984df8ef6307e91ef3037bd9a519d323c.vcf", vid=@0x7f9b1f7fd668: 5719204365289556) at /usr/include/c++/9/bits/shared_ptr_base.h:1020
#7 0x0000558dcd87ea3e in dhtnet::ConnectionManager::Impl::<lambda()>::operator()(void) const (__closure=0x7f9ad4014ad0) at /usr/include/c++/9/bits/shared_ptr.h:548
#8 0x0000558dcd9d1f27 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#9 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#10 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#11 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 25 (Thread 0x7f9b1ffff700 (LWP 104012)):
#0 __lll_lock_wait (futex=futex@entry=0x7f9a88024258, private=0) at lowlevellock.c:52
#1 0x00007f9b6ad160a3 in __GI___pthread_mutex_lock (mutex=0x7f9a88024258) at ../nptl/pthread_mutex_lock.c:80
#2 0x0000558dcd8aa978 in __gthread_mutex_lock (__mutex=0x7f9a88024258) at /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h:749
#3 std::mutex::lock (this=0x7f9a88024258) at /usr/include/c++/9/bits/std_mutex.h:100
#4 std::lock_guard<std::mutex>::lock_guard (__m=..., this=<synthetic pointer>) at /usr/include/c++/9/bits/std_mutex.h:159
#5 dhtnet::MultiplexedSocket::addChannel (this=0x7f9a880012d0, name="swarm://aaee512c061fec74d050a11716b00e497832954a") at /foo/contrib/native/dhtnet/src/multiplexed_socket.cpp:571
#6 0x0000558dcd879574 in dhtnet::ConnectionManager::Impl::sendChannelRequest (this=0x7f9b5802ab60, dinfow=std::weak_ptr<struct dhtnet::DeviceInfo> (use count 3, weak count 13) = {...}, cinfow=std::weak_ptr<struct dhtnet::ConnectionInfo> (use count 5, weak count 9) = {...}, sock=std::shared_ptr<class dhtnet::MultiplexedSocket> (use count 4, weak count 6) = {...}, name="swarm://aaee512c061fec74d050a11716b00e497832954a", vid=@0x7f9b1fffe668: 3634742401369333) at /usr/include/c++/9/bits/shared_ptr_base.h:1020
#7 0x0000558dcd87ea3e in dhtnet::ConnectionManager::Impl::<lambda()>::operator()(void) const (__closure=0x7f9af4263d30) at /usr/include/c++/9/bits/shared_ptr.h:548
#8 0x0000558dcd9d1f27 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function--Type <RET> for more, q to quit, c to continue without paging--
<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#9 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#10 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#11 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 24 (Thread 0x7f9b40ff9700 (LWP 104011)):
#0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x558dcfb29950 <dht::ThreadPool::computation()::pool+80>) at ../sysdeps/nptl/futex-internal.h:183
#1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>, cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>) at pthread_cond_wait.c:508
#2 __pthread_cond_wait (cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>) at pthread_cond_wait.c:647
#3 0x00007f9b6a5f3e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x0000558dcd9d213b in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#5 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 23 (Thread 0x7f9b417fa700 (LWP 104010)):
#0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x558dcfb29954 <dht::ThreadPool::computation()::pool+84>) at ../sysdeps/nptl/futex-internal.h:183
#1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>, cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>) at pthread_cond_wait.c:508
#2 __pthread_cond_wait (cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>) at pthread_cond_wait.c:647
#3 0x00007f9b6a5f3e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x0000558dcd9d213b in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#5 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 22 (Thread 0x7f9b41ffb700 (LWP 104009)):
#0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x558dcfb29954 <dht::ThreadPool::computation()::pool+84>) at ../sysdeps/nptl/futex-internal.h:183
#1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>, cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>) at pthread_cond_wait.c:508
#2 __pthread_cond_wait (cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>) at pthread_cond_wait.c:647
#3 0x00007f9b6a5f3e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x0000558dcd9d213b in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#5 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 21 (Thread 0x7f9b427fc700 (LWP 104008)):
#0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x558dcfb29954 <dht::ThreadPool::computatio--Type <RET> for more, q to quit, c to continue without paging--
n()::pool+84>) at ../sysdeps/nptl/futex-internal.h:183
#1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>, cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>) at pthread_cond_wait.c:508
#2 __pthread_cond_wait (cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>) at pthread_cond_wait.c:647
#3 0x00007f9b6a5f3e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x0000558dcd9d213b in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#5 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 19 (Thread 0x7f9b42ffd700 (LWP 104007)):
#0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x558dcfb29954 <dht::ThreadPool::computation()::pool+84>) at ../sysdeps/nptl/futex-internal.h:183
#1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>, cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>) at pthread_cond_wait.c:508
#2 __pthread_cond_wait (cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>) at pthread_cond_wait.c:647
#3 0x00007f9b6a5f3e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x0000558dcd9d213b in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#5 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 18 (Thread 0x7f9b43fff700 (LWP 104005)):
#0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x558dcfb29954 <dht::ThreadPool::computation()::pool+84>) at ../sysdeps/nptl/futex-internal.h:183
#1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>, cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>) at pthread_cond_wait.c:508
#2 __pthread_cond_wait (cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>) at pthread_cond_wait.c:647
#3 0x00007f9b6a5f3e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x0000558dcd9d213b in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#5 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 16 (Thread 0x7f9b50ff9700 (LWP 104004)):
#0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x558dcfb29950 <dht::ThreadPool::computation()::pool+80>) at ../sysdeps/nptl/futex-internal.h:183
#1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>, cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>) at pthread_cond_wait.c:508
#2 __pthread_cond_wait (cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>) at pthread_cond_wait.c:647
#3 0x00007f9b6a5f3e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
--Type <RET> for more, q to quit, c to continue without paging--
#4 0x0000558dcd9d213b in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#5 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 14 (Thread 0x7f9b527fc700 (LWP 104001)):
#0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x558dcfb29954 <dht::ThreadPool::computation()::pool+84>) at ../sysdeps/nptl/futex-internal.h:183
#1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>, cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>) at pthread_cond_wait.c:508
#2 __pthread_cond_wait (cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>) at pthread_cond_wait.c:647
#3 0x00007f9b6a5f3e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x0000558dcd9d213b in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#5 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 10 (Thread 0x7f9b53fff700 (LWP 103998)):
#0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x558dcfb29954 <dht::ThreadPool::computation()::pool+84>) at ../sysdeps/nptl/futex-internal.h:183
#1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>, cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>) at pthread_cond_wait.c:508
#2 __pthread_cond_wait (cond=0x558dcfb29928 <dht::ThreadPool::computation()::pool+40>, mutex=0x558dcfb29900 <dht::ThreadPool::computation()::pool>) at pthread_cond_wait.c:647
#3 0x00007f9b6a5f3e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x0000558dcd9d213b in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#5 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 7 (Thread 0x7f9b627fc700 (LWP 103994)):
#0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x558dd169d538) at ../sysdeps/nptl/futex-internal.h:183
#1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x558dd169d4d8, cond=0x558dd169d510) at pthread_cond_wait.c:508
#2 __pthread_cond_wait (cond=0x558dd169d510, mutex=0x558dd169d4d8) at pthread_cond_wait.c:647
#3 0x0000558dccd5a129 in asio::detail::posix_event::wait<asio::detail::conditionally_enabled_mutex::scoped_lock> (this=0x558dd169d510, lock=...) at /foo/contrib/x86_64-linux-gnu/include/asio/detail/posix_event.hpp:118
#4 0x0000558dccd4e05a in asio::detail::conditionally_enabled_event::wait (this=0x558dd169d508, lock=...) at /foo/contrib/x86_64-linux-gnu/include/asio/detail/conditionally_enabled_event.hpp:96
#5 0x0000558dccd52590 in asio::detail::scheduler::do_run_one (this=0x558dd169d4a0, lock=..., this_thread=..., ec=Python Exception <class 'gdb.error'> Structure has no component named name.:
) at /foo/contrib/x86_64-linux-gnu/include/asio/detail/impl/scheduler.ipp:501
#6 0x0000558dccd51d95 in asio::detail::scheduler::run (this=0x558dd169d4a0, ec=Python Exception <class 'gdb.error'> Structure has no component named name.:
) at /foo/contrib/x86_64-linux-gnu/include/asio/detail/impl/scheduler.ipp:209
--Type <RET> for more, q to quit, c to continue without paging--
#7 0x0000558dcda1d279 in asio::detail::posix_thread::func<asio::detail::resolver_service_base::work_scheduler_runner>::run() ()
#8 0x0000558dccd4e407 in asio::detail::asio_detail_posix_thread_function (arg=0x558dd17a8a00) at /foo/contrib/x86_64-linux-gnu/include/asio/detail/impl/posix_thread.ipp:73
#9 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 6 (Thread 0x7f9b62ffd700 (LWP 103993)):
#0 0x00007f9b6a2e668e in epoll_wait (epfd=7, events=0x7f9b62ffc580, maxevents=16, timeout=1000) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
#1 0x0000558dcd98395c in pj_ioqueue_poll ()
#2 0x0000558dcd9328d8 in pjsip_endpt_handle_events2 ()
#3 0x0000558dcd5296ec in jami::SIPVoIPLink::handleEvents (this=0x558dd168ee40) at ./sip/sipvoiplink.cpp:813
#4 0x0000558dcd525f2a in jami::SIPVoIPLink::<lambda()>::operator()(void) const (__closure=0x558dd16393a8) at ./sip/sipvoiplink.cpp:739
#5 0x0000558dcd53720e in std::__invoke_impl<void, jami::SIPVoIPLink::SIPVoIPLink()::<lambda()> >(std::__invoke_other, jami::SIPVoIPLink::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#6 0x0000558dcd537156 in std::__invoke<jami::SIPVoIPLink::SIPVoIPLink()::<lambda()> >(jami::SIPVoIPLink::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#7 0x0000558dcd537084 in std::thread::_Invoker<std::tuple<jami::SIPVoIPLink::SIPVoIPLink()::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x558dd16393a8) at /usr/include/c++/9/thread:244
#8 0x0000558dcd537012 in std::thread::_Invoker<std::tuple<jami::SIPVoIPLink::SIPVoIPLink()::<lambda()> > >::operator()(void) (this=0x558dd16393a8) at /usr/include/c++/9/thread:251
#9 0x0000558dcd536fd2 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<jami::SIPVoIPLink::SIPVoIPLink()::<lambda()> > > >::_M_run(void) (this=0x558dd16393a0) at /usr/include/c++/9/thread:195
#10 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#11 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#12 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 5 (Thread 0x7f9b637fe700 (LWP 103992)):
#0 0x00007f9b6a2e668e in epoll_wait (epfd=12, events=0x7f9b637fd030, maxevents=128, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
#1 0x0000558dccd500ca in asio::detail::epoll_reactor::run (this=0x558dd17a8110, usec=-1, ops=...) at /foo/contrib/x86_64-linux-gnu/include/asio/detail/impl/epoll_reactor.ipp:509
#2 0x0000558dccd523d9 in asio::detail::scheduler::do_run_one (this=0x558dd1674340, lock=..., this_thread=..., ec=Python Exception <class 'gdb.error'> Structure has no component named name.:
) at /foo/contrib/x86_64-linux-gnu/include/asio/detail/impl/scheduler.ipp:476
#3 0x0000558dccd51d95 in asio::detail::scheduler::run (this=0x558dd1674340, ec=Python Exception <class 'gdb.error'> Structure has no component named name.:
) at /foo/contrib/x86_64-linux-gnu/include/asio/detail/impl/scheduler.ipp:209
#4 0x0000558dccd52c12 in asio::io_context::run (this=0x558dd1671290) at /foo/contrib/x86_64-linux-gnu/include/asio/impl/io_context.ipp:63
#5 0x0000558dccd0f785 in jami::Manager::ManagerPimpl::<lambda()>::operator()(void) const (__closure=0x558dd1646018) at manager.cpp:463
#6 0x0000558dccd446b6 in std::__invoke_impl<void, jami::Manager::ManagerPimpl::ManagerPimpl(jami::Manager&)::<lambda()> >(std::__invoke_other, jami::Manager::ManagerPimpl::<lambda()> &&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#7 0x0000558dccd445fe in std::__invoke<jami::Manager::ManagerPimpl::ManagerPimpl(jami::Manager&)::<lambda()> >(jami::Manager::ManagerPimpl::<lambda()> &&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#8 0x0000558dccd4452c in std::thread::_Invoker<std::tuple<jami::Manager::ManagerPimpl::ManagerPimpl(jami::Manager&)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x558dd1646018) at /usr/include/c++/9/thread:244
#9 0x0000558dccd444ba in std::thread::_Invoker<std::tuple<jami::Manager::ManagerPimpl::ManagerPimpl(jami::Manager&)::--Type <RET> for more, q to quit, c to continue without paging--
<lambda()> > >::operator()(void) (this=0x558dd1646018) at /usr/include/c++/9/thread:251
#10 0x0000558dccd4447a in std::thread::_State_impl<std::thread::_Invoker<std::tuple<jami::Manager::ManagerPimpl::ManagerPimpl(jami::Manager&)::<lambda()> > > >::_M_run(void) (this=0x558dd1646010) at /usr/include/c++/9/thread:195
#11 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 4 (Thread 0x7f9b63fff700 (LWP 103991)):
#0 0x00007f9b6a2dc1eb in __GI___select (nfds=7, readfds=0x7f9b63ffe790, writefds=0x0, exceptfds=0x0, timeout=0x7f9b63ffe6d0) at ../sysdeps/unix/sysv/linux/select.c:41
#1 0x0000558dcd396a77 in jami::video::VideoDeviceMonitorImpl::run (this=0x558dd1676780) at media/video/v4l2/video_device_monitor_impl.cpp:221
#2 0x0000558dcd39bb56 in std::__invoke_impl<void, void (jami::video::VideoDeviceMonitorImpl::*)(), jami::video::VideoDeviceMonitorImpl*> (__f=@0x558dd1671e50: (void (jami::video::VideoDeviceMonitorImpl::*)(class jami::video::VideoDeviceMonitorImpl * const)) 0x558dcd3968dc <jami::video::VideoDeviceMonitorImpl::run()>, __t=@0x558dd1671e48: 0x558dd1676780) at /usr/include/c++/9/bits/invoke.h:73
#3 0x0000558dcd39b9ce in std::__invoke<void (jami::video::VideoDeviceMonitorImpl::*)(), jami::video::VideoDeviceMonitorImpl*> (__fn=@0x558dd1671e50: (void (jami::video::VideoDeviceMonitorImpl::*)(class jami::video::VideoDeviceMonitorImpl * const)) 0x558dcd3968dc <jami::video::VideoDeviceMonitorImpl::run()>) at /usr/include/c++/9/bits/invoke.h:95
#4 0x0000558dcd39b865 in std::thread::_Invoker<std::tuple<void (jami::video::VideoDeviceMonitorImpl::*)(), jami::video::VideoDeviceMonitorImpl*> >::_M_invoke<0ul, 1ul> (this=0x558dd1671e48) at /usr/include/c++/9/thread:244
#5 0x0000558dcd39b7b0 in std::thread::_Invoker<std::tuple<void (jami::video::VideoDeviceMonitorImpl::*)(), jami::video::VideoDeviceMonitorImpl*> >::operator() (this=0x558dd1671e48) at /usr/include/c++/9/thread:251
#6 0x0000558dcd39b76c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (jami::video::VideoDeviceMonitorImpl::*)(), jami::video::VideoDeviceMonitorImpl*> > >::_M_run (this=0x558dd1671e40) at /usr/include/c++/9/thread:195
#7 0x00007f9b6a5f9df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#8 0x00007f9b6ad13609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9 0x00007f9b6a2e6353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 1 (Thread 0x7f9b69657d00 (LWP 103985)):
#0 __pthread_clockjoin_ex (threadid=140305072371456, thread_return=0x0, clockid=<optimized out>, abstime=<optimized out>, block=<optimized out>) at pthread_join_common.c:145
#1 0x00007f9b6a5fa057 in std::thread::join() () from /lib/x86_64-linux-gnu/libstdc++.so.6
#2 0x0000558dcd9d0e4c in dht::ThreadPool::join() ()
#3 0x0000558dccd172c9 in jami::Manager::finish (this=0x558dcf62e760 <jami::Manager::instance()::instance>) at manager.cpp:916
#4 0x0000558dcce24aea in libjami::fini () at ring_api.cpp:105
#5 0x0000558dcccce445 in jami::test::ConversationRequestTest::~ConversationRequestTest (this=0x558dd1669150, __in_chrg=<optimized out>) at conversation/conversationRequest.cpp:68
#6 0x0000558dcccce60a in jami::test::ConversationRequestTest::~ConversationRequestTest (this=0x558dd1669150, __in_chrg=<optimized out>) at conversation/conversationRequest.cpp:68
#7 0x0000558dcccf6a0f in CppUnit::TestCaller<jami::test::ConversationRequestTest>::~TestCaller (this=0x558dd1666bd0, __in_chrg=<optimized out>) at /usr/include/cppunit/TestCaller.h:170
#8 0x0000558dcccf6ac2 in CppUnit::TestCaller<jami::test::ConversationRequestTest>::~TestCaller (this=0x558dd1666bd0, __in_chrg=<optimized out>) at /usr/include/cppunit/TestCaller.h:171
#9 0x00007f9b6b33d822 in CppUnit::TestSuite::deleteContents() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#10 0x00007f9b6b33d86b in CppUnit::TestSuite::~TestSuite() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#11 0x00007f9b6b33d89d in CppUnit::TestSuite::~TestSuite() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#12 0x00007f9b6b33d822 in CppUnit::TestSuite::deleteContents() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#13 0x00007f9b6b33d86b in CppUnit::TestSuite::~TestSuite() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#14 0x00007f9b6b33d89d in CppUnit::TestSuite::~TestSuite() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
--Type <RET> for more, q to quit, c to continue without paging--
#15 0x00007f9b6b33d822 in CppUnit::TestSuite::deleteContents() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#16 0x00007f9b6b33d86b in CppUnit::TestSuite::~TestSuite() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#17 0x00007f9b6b33d4bb in CppUnit::TestRunner::WrappingSuite::~WrappingSuite() () from /lib/x86_64-linux-gnu/libcppunit-1.15.so.1
#18 0x0000558dcccb6325 in main () at conversation/conversationRequest.cpp:1089
(gdb)
(gdb)
(gdb)
```
Thread 527:
dhtnet::MultiplexedSocket::Impl::onAccept -> lock socketsMutex
ConnectionManager::Impl::sendChannelRequest onReady: -> lock cinfo->mutex_
Thread 43
dhtnet::ConnectionInfo::shutdown -> lock cinfo->mutex_
MultiplexedSocket::shutdown
MultiplexedSocket::clearSockets -> lock socketsMutexhttps://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1586Weird space between contact name and deleted message2024-02-05T21:37:45ZEmma FalkiewitzWeird space between contact name and deleted message- Jami version 400
The issue occurs when deleting a reply message.
Current result:
![Screenshot_20240130-124324_2](/uploads/8dd99d5035707e2f49c19d9ed04010e7/Screenshot_20240130-124324_2.png)- Jami version 400
The issue occurs when deleting a reply message.
Current result:
![Screenshot_20240130-124324_2](/uploads/8dd99d5035707e2f49c19d9ed04010e7/Screenshot_20240130-124324_2.png)https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1555Add the ability to hide the local video preview in a call2024-02-21T20:42:02ZAndreas TraczykAdd the ability to hide the local video preview in a callThe local video preview widget should be able to be laterally "tucked" under the edge of the call view.The local video preview widget should be able to be laterally "tucked" under the edge of the call view.Andreas TraczykAndreas Traczykhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1553Could not run Jami on Windows2024-02-10T11:03:10ZFairKingCould not run Jami on WindowsAfter installing Jami on Windows 11 on user account A, if I logout and login to user account B the Jami app is not running.
The installation folder is `C:\Program Files\Savoir-Faire Linux\Jami\Jami.exe`. Tried `jami.exe -f` or `-d` noth...After installing Jami on Windows 11 on user account A, if I logout and login to user account B the Jami app is not running.
The installation folder is `C:\Program Files\Savoir-Faire Linux\Jami\Jami.exe`. Tried `jami.exe -f` or `-d` nothing happens.
Tried to repair from the installation file `jami.release.x64.msi`.
I am wondering if I can install Jami for user only, not as `C:\Program Files`. But again even if it's a global app, it still should work fine, as I have many global apps like that and they all work.
Any help would be great.Andreas TraczykAndreas Traczykhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1552Systematic crash on openSUSE Leap 15.52024-02-06T13:48:49ZFrançois-Simon Fauteux-ChapleauSystematic crash on openSUSE Leap 15.5I first noticed this bug while doing tests for the migration to Qt 6.6.1, but in fact it also occurs with Qt 6.5.3:
- OS: openSUSE Leap 15.5 (in a VM, with GNOME/Wayland)
- Jami version: 202401241341 (from dl.jami.net/nightly)
The probl...I first noticed this bug while doing tests for the migration to Qt 6.6.1, but in fact it also occurs with Qt 6.5.3:
- OS: openSUSE Leap 15.5 (in a VM, with GNOME/Wayland)
- Jami version: 202401241341 (from dl.jami.net/nightly)
The problem seems to only occur on Leap 15.5 specifically; I also tried on 15.4 and everything seemed fine with both Qt 6.6.1 and Qt 6.5.3.
**Scenario**
1) Alice opens Jami and sends an invitation to Bob
2) She waits until Bob has received the invitation
At this point, Alice will sometimes get a crash (segmentation fault) without doing anything more:
```
Thread 86 "jami" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff07fff700 (LWP 3789)]
0x00007fffe839e63b in _int_free () from /lib64/libc.so.6
(gdb) bt
#0 0x00007fffe839e63b in _int_free () from /lib64/libc.so.6
#1 0x00007fffdde0c4d8 in asn1_delete_structure2 () from /usr/lib64/libtasn1.so.6
#2 0x00007fffe18deba9 in gnutls_x509_crt_deinit () from /usr/lib64/libgnutls.so.30
#3 0x00007fffe18e3f70 in gnutls_x509_crt_list_import () from /usr/lib64/libgnutls.so.30
#4 0x00007fffe18e438b in gnutls_x509_crt_list_import2 () from /usr/lib64/libgnutls.so.30
#5 0x00007fffe9077076 in dht::crypto::Certificate::unpack(unsigned char const*, unsigned long) () from /usr/lib64/libjami.so.0
#6 0x00007fffe9078a24 in dht::crypto::Certificate::Certificate(std::vector<unsigned char, std::allocator<unsigned char> > const&) () from /usr/lib64/libjami.so.0
#7 0x00007fffe8ce5f3e in jami::ConversationRepository::Impl::validateDevice() () from /usr/lib64/libjami.so.0
#8 0x00007fffe8cf28ad in jami::ConversationRepository::Impl::commit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) ()
from /usr/lib64/libjami.so.0
#9 0x00007fffe8cf31ff in jami::ConversationRepository::commitMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) ()
from /usr/lib64/libjami.so.0
#10 0x00007fffe8cc254d in jami::Conversation::sendMessage(Json::Value&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>&&, std::function<void (bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>&&)::{lambda()#1}::operator()() const () from /usr/lib64/libjami.so.0
#11 0x00007fffe90acd52 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
from /usr/lib64/libjami.so.0
#12 0x00007fffe872b713 in ?? () from /usr/lib64/libstdc++.so.6
#13 0x00007fffeb6626ea in start_thread () from /lib64/libpthread.so.0
#14 0x00007fffe841c50f in clone () from /lib64/libc.so.6
```
3) (assuming there was no crash at the previous step) Alice tries to send a message to Bob
As far as I can tell, this *always* leads to a crash:
```
Thread 68 "jami" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffefcff9700 (LWP 6736)]
0x00007fffdde0ac78 in ?? () from /usr/lib64/libtasn1.so.6
Missing separate debuginfos, use: zypper install jami-debuginfo-20240124.0-1.x86_64
#0 0x00007fffdde0ac78 in ?? () from /usr/lib64/libtasn1.so.6
#1 0x00007fffdde0c431 in asn1_delete_structure2 () from /usr/lib64/libtasn1.so.6
#2 0x00007fffe18deba9 in gnutls_x509_crt_deinit () from /usr/lib64/libgnutls.so.30
#3 0x00007fffe18e3f70 in gnutls_x509_crt_list_import () from /usr/lib64/libgnutls.so.30
#4 0x00007fffe18e438b in gnutls_x509_crt_list_import2 () from /usr/lib64/libgnutls.so.30
#5 0x00007fffe9077076 in dht::crypto::Certificate::unpack(unsigned char const*, unsigned long) () from /usr/lib64/libjami.so.0
#6 0x00007fffe9078a24 in dht::crypto::Certificate::Certificate(std::vector<unsigned char, std::allocator<unsigned char> > const&) () from /usr/lib64/libjami.so.0
#7 0x00007fffe8ce5f3e in jami::ConversationRepository::Impl::validateDevice() () from /usr/lib64/libjami.so.0
#8 0x00007fffe8cf28ad in jami::ConversationRepository::Impl::commit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) ()
from /usr/lib64/libjami.so.0
#9 0x00007fffe8cf31ff in jami::ConversationRepository::commitMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) ()
from /usr/lib64/libjami.so.0
#10 0x00007fffe8cc254d in jami::Conversation::sendMessage(Json::Value&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>&&, std::function<void (bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>&&)::{lambda()#1}::operator()() const () from /usr/lib64/libjami.so.0
#11 0x00007fffe90acd52 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
from /usr/lib64/libjami.so.0
#12 0x00007fffe872b713 in ?? () from /usr/lib64/libstdc++.so.6
#13 0x00007fffeb6626ea in start_thread () from /lib64/libpthread.so.0
#14 0x00007fffe841c50f in clone () from /lib64/libc.so.6
```
4) Alice reopens Jami after it crashed and clicks on the conversation with Bob
This typically leads to Jami crashing again, this time due to an exception instead of a segfault:
```
terminate called after throwing an instance of 'dht::crypto::CryptoException'
what(): Can't compute hash: An error has been detected in the library and cannot continue operations.
Thread 69 "jami" received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffef4ff9700 (LWP 4283)]
0x00007fffe834ed2b in raise () from /lib64/libc.so.6
#0 0x00007fffe834ed2b in raise () from /lib64/libc.so.6
#1 0x00007fffe83503e5 in abort () from /lib64/libc.so.6
#2 0x00007fffe86ef4a7 in ?? () from /usr/lib64/libstdc++.so.6
#3 0x00007fffe86fec1c in ?? () from /usr/lib64/libstdc++.so.6
#4 0x00007fffe86fec87 in std::terminate() () from /usr/lib64/libstdc++.so.6
#5 0x00007fffe86feee8 in __cxa_throw () from /usr/lib64/libstdc++.so.6
#6 0x00007fffe8ad4875 in dht::crypto::hash(unsigned char const*, unsigned long, unsigned char*, unsigned long) [clone .cold] () from /usr/lib64/libjami.so.0
#7 0x00007fffe8d674fc in jami::AccountManager::startSync(std::function<void (std::shared_ptr<dht::crypto::Certificate> const&)> const&, std::function<void ()> const&, bool) ()
from /usr/lib64/libjami.so.0
#8 0x00007fffe8d83f0f in jami::ArchiveAccountManager::startSync(std::function<void (std::shared_ptr<dht::crypto::Certificate> const&)> const&, std::function<void ()> const&, bool) () from /usr/lib64/libjami.so.0
#9 0x00007fffe8c3ba43 in std::_Function_handler<void (bool), jami::JamiAccount::doRegister_()::{lambda(bool)#7}>::_M_invoke(std::_Any_data const&, bool&&) ()
from /usr/lib64/libjami.so.0
#10 0x00007fffe9196629 in std::_Function_handler<void (bool), dht::SecureDht::SecureDht(std::unique_ptr<dht::DhtInterface, std::default_delete<dht::DhtInterface> >, dht::SecureDhtConfig, std::function<void (bool)>, std::shared_ptr<dht::log::Logger> const&)::{lambda()#1}::operator()() const::{lambda(bool)#1}>::_M_invoke(std::_Any_data const&, bool&&) ()
from /usr/lib64/libjami.so.0
#11 0x00007fffe908c3e0 in std::_Function_handler<void (bool, std::vector<std::shared_ptr<dht::Node>, std::allocator<std::shared_ptr<dht::Node> > > const&), std::_Bind<std::function<void (bool)> (std::_Placeholder<1>)> >::_M_invoke(std::_Any_data const&, bool&&, std::vector<std::shared_ptr<dht::Node>, std::allocator<std::shared_ptr<dht::Node> > > const&)
() from /usr/lib64/libjami.so.0
#12 0x00007fffe9139a20 in std::_Function_handler<void (bool, std::vector<std::shared_ptr<dht::Node>, std::allocator<std::shared_ptr<dht::Node> > > const&), dht::Dht::put(dht::Hash<20ul> const&, std::shared_ptr<dht::Value>, std::function<void (bool, std::vector<std::shared_ptr<dht::Node>, std::allocator<std::shared_ptr<dht::Node> > > const&)>, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >, bool)::{lambda(bool, std::vector<std::shared_ptr<dht::Node>, std::allocator<std::shared_ptr<dht::Node> > > const&)#2}>::_M_invoke(std::_Any_data const&, bool&&, std::vector<std::shared_ptr<dht::Node>, std::allocator<std::shared_ptr<dht::Node> > > const&) () from /usr/lib64/libjami.so.0
#13 0x00007fffe915f27b in dht::Dht::Search::checkAnnounced(unsigned long) () from /usr/lib64/libjami.so.0
#14 0x00007fffe914608c in dht::Dht::searchStep(std::weak_ptr<dht::Dht::Search>) () from /usr/lib64/libjami.so.0
#15 0x00007fffe915c265 in std::_Function_handler<void (), std::_Bind<void (dht::Dht::*(dht::Dht*, std::weak_ptr<dht::Dht::Search>))(std::weak_ptr<dht::Dht::Search>)> >::_M_invoke(std::_Any_data const&) () from /usr/lib64/libjami.so.0
#16 0x00007fffe91391f5 in dht::Dht::periodic(unsigned char const*, unsigned long, dht::SockAddr, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) () from /usr/lib64/libjami.so.0
#17 0x00007fffe909f455 in dht::DhtRunner::loop_() () from /usr/lib64/libjami.so.0
#18 0x00007fffe909f556 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::DhtRunner::run(dht::DhtRunner::Config const&, dht::DhtRunner::Context&&)::{lambda()#2}> > >::_M_run() () from /usr/lib64/libjami.so.0
#19 0x00007fffe872b713 in ?? () from /usr/lib64/libstdc++.so.6
#20 0x00007fffeb6626ea in start_thread () from /lib64/libpthread.so.0
#21 0x00007fffe841c50f in clone () from /lib64/libc.so.6
```
Note: The above crashes occur regardless of whether Bob accepted Alice's invitation or not. If he does accept it, then he sees a message similar to the following (even though Alice is already connected):
![invitation_from_opensuse15.5_accepted](/uploads/aadc15d7bd8a104ff6703a2ed96f3f46/invitation_from_opensuse15.5_accepted.png)https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1551chatview: long displayname in message bubble2024-02-15T19:27:57ZPierre Nicolaschatview: long displayname in message bubble## Bug report form
## Describe your environment
Please specify the following:
- Jami version: 202401241542 (ubuntu store)
## Steps to reproduce
![image.png](/uploads/146a66ba737a2c131783572f4d50cf79/image.png)## Bug report form
## Describe your environment
Please specify the following:
- Jami version: 202401241542 (ubuntu store)
## Steps to reproduce
![image.png](/uploads/146a66ba737a2c131783572f4d50cf79/image.png)https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1550chatview: long displayname in reply2024-02-21T21:00:43ZPierre Nicolaschatview: long displayname in reply## Bug report form
## Describe your environment
Please specify the following:
- Jami version: 202401241542 (ubuntu store)
## Steps to reproduce
![image.png](/uploads/00f3778576b148cd83d6f73f062b5fbd/image.png)## Bug report form
## Describe your environment
Please specify the following:
- Jami version: 202401241542 (ubuntu store)
## Steps to reproduce
![image.png](/uploads/00f3778576b148cd83d6f73f062b5fbd/image.png)https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1548Add a button "What's new?" with a pop-up2024-02-09T20:35:56ZLoic BoginoAdd a button "What's new?" with a pop-upAdd a button "What's new?" with a pop-up showing new features.
Design by Charlotte (in waiting).Add a button "What's new?" with a pop-up showing new features.
Design by Charlotte (in waiting).https://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1582Space between name and audio file2024-01-30T14:45:10ZEmma FalkiewitzSpace between name and audio file- Jami version 400
Current result :
![image](/uploads/fdd99a0a7e09710457c5337d90e228e8/image.png)
Expected result :
![image](/uploads/f28a0dbb942a49c0c354154373877840/image.png)- Jami version 400
Current result :
![image](/uploads/fdd99a0a7e09710457c5337d90e228e8/image.png)
Expected result :
![image](/uploads/f28a0dbb942a49c0c354154373877840/image.png)Emma FalkiewitzEmma Falkiewitzhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1546Typing indicator still active after member has been kicked out of swarm2024-02-22T19:01:33ZFrançois-Simon Fauteux-ChapleauTyping indicator still active after member has been kicked out of swarm**Scenario**
- Alice creates a swarm and invites Bob and Carol to join
- Bob and Carol accept the invitation and open the swarm
- Alice opens the "Details" panel, right-clicks on Bob's name and clicks on "Kick member"
- Bob starts typin...**Scenario**
- Alice creates a swarm and invites Bob and Carol to join
- Bob and Carol accept the invitation and open the swarm
- Alice opens the "Details" panel, right-clicks on Bob's name and clicks on "Kick member"
- Bob starts typing a message in the swarm he just got kicked out of
**Result**
Both Alice and Carol still see a typing indicator ("Bob is typing...").
Note: As expected, Bob no longer sees typing indicators for Alice/Carol after being kicked out. The bug only occurs in one direction (from Bob to the remaining members of the swarm).Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1545ReferenceError in emoji picker2024-02-19T18:22:37ZFrançois-Simon Fauteux-ChapleauReferenceError in emoji picker**Steps to reproduce**
Use the emoji picker to react to a message.
**Result**
The following warning is generated:
```
default [1706213340185][WRN][qrc:/webengine/emojipicker/EmojiPicker.qml:38]: qrc:/webengine/emojipicker/EmojiPicker....**Steps to reproduce**
Use the emoji picker to react to a message.
**Result**
The following warning is generated:
```
default [1706213340185][WRN][qrc:/webengine/emojipicker/EmojiPicker.qml:38]: qrc:/webengine/emojipicker/EmojiPicker.qml:38: ReferenceError: messageBar is not defined
```https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1543SettingSpinBox generates warnings in some of the settings menus2024-02-15T19:27:51ZFrançois-Simon Fauteux-ChapleauSettingSpinBox generates warnings in some of the settings menus**Steps to reproduce**
- Start Jami and open the settings
- Go to either "Advanced settings" (in the "Account" section) or "Chat" (in the "General" section)
**Result**
The following warnings are generated:
```
efault [1706024964908][W...**Steps to reproduce**
- Start Jami and open the settings
- Go to either "Advanced settings" (in the "Account" section) or "Chat" (in the "General" section)
**Result**
The following warnings are generated:
```
efault [1706024964908][WRN]: qrc:/settingsview/components/SettingSpinBox.qml:109:13: QML Rectangle: Binding loop detected for property "width"
default [1706024964908][WRN]: qrc:/settingsview/components/SettingSpinBox.qml:135:13: QML Rectangle: Binding loop detected for property "width"
default [1706024964908][WRN]: qrc:/settingsview/components/SettingSpinBox.qml:56:5: QML SpinBox: Binding loop detected for property "implicitWidth"
```