jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2024-03-06T16:25:35Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/870pupnp avoid select() for sockets2024-03-06T16:25:35ZSébastien Blinpupnp avoid select() for sockets`select()` uses FD_SET() that can lead to random crashes unrelated to the number of files authorized per process.
This is used by `pupnp`, this may result in some backtraces like:
```
*** buffer overflow detected ***: terminated
Threa...`select()` uses FD_SET() that can lead to random crashes unrelated to the number of files authorized per process.
This is used by `pupnp`, this may result in some backtraces like:
```
*** buffer overflow detected ***: terminated
Thread 242 "jami" received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffe6cf81640 (LWP 246791)]
__pthread_kill_implementation (no_tid=0, signo=6, threadid=140730726618688) at ./nptl/pthread_kill.c:44
44 ./nptl/pthread_kill.c: No such file or directory.
(gdb) bt
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=140730726618688)
at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (signo=6, threadid=140730726618688) at ./nptl/pthread_kill.c:78
#2 __GI___pthread_kill (threadid=140730726618688, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3 0x00007ffff2442476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007ffff24287f3 in __GI_abort () at ./stdlib/abort.c:79
#5 0x00007ffff24896f6 in __libc_message
(action=action@entry=do_abort, fmt=fmt@entry=0x7ffff25db943 "*** %s ***: terminated\n")
at ../sysdeps/posix/libc_fatal.c:155
#6 0x00007ffff253676a in __GI___fortify_fail
(msg=msg@entry=0x7ffff25db8e9 "buffer overflow detected") at ./debug/fortify_fail.c:26
#7 0x00007ffff25350c6 in __GI___chk_fail () at ./debug/chk_fail.c:28
#8 0x00007ffff25366ab in __fdelt_chk (d=<optimized out>) at ./debug/fdelt_chk.c:25
#9 0x00007ffff3961625 in sock_read_write
(info=info@entry=0x7ffe6cf7aa00, buffer=0x7fff854dc120 "GET /dyndev/uuid:2d27b940-da93-441d-b519-acf1fbd1d460 HTTP/1.1\r\nHOST: 192.168.1.1:5431\r\nDATE: Tue, 11 Jul 2023 16:38:42 GMT\r\nCONNECTION: close\r\nUSER-AGENT: Linux/5.19.0-46-generic, UPnP/1.0, Portable "..., bufsize=bufsize@entry=232, timeoutSecs=timeoutSecs@entry=0x7ffe6cf7a9ec, bRead=bRead@entry=0) at src/genlib/net/sock.c:187
#10 0x00007ffff396183c in sock_write
(info=info@entry=0x7ffe6cf7aa00, buffer=<optimized out>, bufsize=bufsize@entry=232, timeoutSecs=timeoutSecs@entry=0x7ffe6cf7a9ec) at src/genlib/net/sock.c:292
#11 0x00007ffff396480c in http_SendMessage
(info=info@entry=0x7ffe6cf7aa00, TimeOut=TimeOut@entry=0x7ffe6cf7a9ec, fmt=0x7ffff44dda77 "",
fmt@entry=0x7ffff44dda76 "b") at src/genlib/net/http/httpreadwrite.c:698
#12 0x00007ffff3964913 in http_RequestAndResponse
(destination=destination@entry=0x7ffe6cf7ab10, request=0x7fff854dc120 "GET /dyndev/uuid:2d27b940-da93-441d-b519-acf1fbd1d460 HTTP/1.1\r\nHOST: 192.168.1.1:5431\r\nDATE: Tue, 11 Jul 2023 16:38:42 GMT\r\nCONNECTION: close\r\nUSER-AGENT: Linux/5.19.0-46-generic, UPnP/1.0, Portable "..., request_length=232, req_method=req_method@entry=HTTPMETHOD_GET, timeout_secs=<optimized out>,
timeout_secs@entry=30, response=response@entry=0x7ffe6cf7abe0)
at src/genlib/net/http/httpreadwrite.c:788
#13 0x00007ffff3965eb0 in http_Download
(url_str=<optimized out>, timeout_secs=timeout_secs@entry=30, document=document@entry=0x7ffe6cf7ae48, doc_length=doc_length@entry=0x7ffe6cf7ae20, content_type=content_type@entry=0x7ffe6cf7ae50 "\006") at src/genlib/net/http/httpreadwrite.c:897
#14 0x00007ffff39574d0 in UpnpDownloadUrlItem
(url=<optimized out>, outBuf=outBuf@entry=0x7ffe6cf7ae48, contentType=contentType@entry=0x7ffe6cf7ae50 "\006") at src/api/upnpapi.c:3500
#15 0x00007ffff3957545 in UpnpDownloadXmlDoc (url=<optimized out>, xmlDoc=0x7ffe6cf7af48)
at src/api/upnpapi.c:3519
#16 0x00007ffff327342e in jami::upnp::PUPnP::downLoadIgdDescription(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
(this=0x7fff9c001f00, locationUrl="http://192.168.1.1:5431/dyndev/uuid:2d27b940-da93-441d-b519-acf1fbd1d460") at connectivity/upnp/protocol/pupnp/pupnp.cpp:840
#17 0x00007ffff3272ce3 in operator()() const (__closure=0x7fff9c015f50)
at connectivity/upnp/protocol/pupnp/pupnp.cpp:831
#18 0x00007ffff327cf16 in std::__invoke_impl<void, jami::upnp::PUPnP::processDiscoverySearchResult(const string&, const string&, const jami::IpAddr&)::<lambda()>&>(std::__invoke_other, struct {...} &)
(__f=...) at /usr/include/c++/11/bits/invoke.h:61
#19 0x00007ffff327b883 in std::__invoke_r<void, jami::upnp::PUPnP::processDiscoverySearchResult(const string&, const string&, const jami::IpAddr&)::<lambda()>&>(struct {...} &) (__fn=...)
at /usr/include/c++/11/bits/invoke.h:111
--Type <RET> for more, q to quit, c to continue without paging--
#20 0x00007ffff327a739 in std::_Function_handler<void(), jami::upnp::PUPnP::processDiscoverySearchResult(const string&, const string&, const jami::IpAddr&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/11/bits/std_function.h:290
#21 0x00007ffff38118a7 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
at /home/sblin/Projects/jami-project/client-qt/daemon/src/.libs/libjami.so.0
#22 0x00007ffff28dc2b3 in () at /lib/x86_64-linux-gnu/libstdc++.so.6
#23 0x00007ffff2494b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#24 0x00007ffff2526a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
(gdb)
```
Instead of this, it should use `poll()` to avoid this kind of limitation.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/869JAMS account: Blocked users can still communicate2023-10-26T17:51:49ZLéo Banno-CloutierJAMS account: Blocked users can still communicate1. User A blocks user B
2. User B sends a message to user A
Actual: User A receives a notification and a red dot of the icon in the system tray, but there isn't any new messages in the conversation list
Expected: User A blocked user B,...1. User A blocks user B
2. User B sends a message to user A
Actual: User A receives a notification and a red dot of the icon in the system tray, but there isn't any new messages in the conversation list
Expected: User A blocked user B, so it shouldn't get notified about itSébastien BlinLéo Banno-CloutierSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/868Incomplete certificate detected2023-07-03T18:13:03ZP PIncomplete certificate detected````
OS: Fedora 37 x86_64
Jami Version:
jami-libqt-6.4.3-6.fc37.x86_64
jami-daemon-20230619.1-1.fc37.x86_64
jami-20230619.1-1.fc37.x86_64
From the Fedora 37 Stable repo. I upgraded from the previous stable release jami-20230323.
## St...````
OS: Fedora 37 x86_64
Jami Version:
jami-libqt-6.4.3-6.fc37.x86_64
jami-daemon-20230619.1-1.fc37.x86_64
jami-20230619.1-1.fc37.x86_64
From the Fedora 37 Stable repo. I upgraded from the previous stable release jami-20230323.
## Steps to reproduce
1. Start Jami
Actual result:
No communication is possible with any existing contacts.
Expected result:
Communications to continue after upgrading Jami.
## Additional information
Syslog shows:
Jun 21 14:12:40 host jami[13142]: New message added with id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Jun 21 14:12:40 host jami[13142]: Incomplete certificate detected xxxxxxxxxxxxxxxxxxxxxxxxxxx
Jun 21 14:12:40 host jami[13142]: Incomplete certificate detected xxxxxxxxxxxxxxxxxxxxxxxxxx
Jun 21 14:12:40 host jami[13142]: [Account xxxxxxxxxxxxxxxxxx] Ask xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx for a new SIP channel
Jun 21 14:12:40 host jami[13142]: Incomplete certificate detected xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Jun 21 14:12:43 host jami[13142]: [Account xxxxxxxxxxxxxxxx] New response received from xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Jun 21 14:12:45 host jami[13142]: [TLS] handshake failed: Error in the certificate.
Jun 21 14:12:48 host jami[13142]: Incomplete certificate detected xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Jun 21 14:12:48 host jami[13142]: Found invalid peer device: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Jun 21 14:12:48 host jami[13142]: [Account xxxxxxxxxxxxxxxx] Rejected untrusted connection request from xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx````Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/864Deadlock/crash during account creation2023-06-26T13:33:17ZAndreas TraczykDeadlock/crash during account creationThe following pseudo backtrace depicts a possible deadlock scenario:
thread 1
```
ConversationModule::loadConversations std::lock_guard<std::recursive_mutex> lock(configurationMutex_);
JamiAccount::loadAccount
JamiAccount::loa...The following pseudo backtrace depicts a possible deadlock scenario:
thread 1
```
ConversationModule::loadConversations std::lock_guard<std::recursive_mutex> lock(configurationMutex_);
JamiAccount::loadAccount
JamiAccount::loadConfig
Account::setAccountDetails std::lock_guard<std::mutex> lk(pimpl_->conversationsRequestsMtx_);
...
Manager::setAccountDetails
...
client onAccountAdded callback
```
thread 2
```
JamiAccount::getTrustRequests std::lock_guard<std::mutex> lk(pimpl_->conversationsRequestsMtx_);
ConversationModule::loadConversations std::lock_guard<std::recursive_mutex> lock(configurationMutex_);
ArchiveAccountManager::onArchiveLoaded
ArchiveAccountManager::createAccount
...
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/861Regression sdbus-cpp: Quit client doesn't leave daemon2023-06-15T19:17:20ZSébastien BlinRegression sdbus-cpp: Quit client doesn't leave daemon# Scenario
+ Launch client
+ Launch daemon
+ Quit client via systray
# Expected
Daemon should leave
# Current result
Daemon stays up# Scenario
+ Launch client
+ Launch daemon
+ Quit client via systray
# Expected
Daemon should leave
# Current result
Daemon stays upSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/860Crash in jami::ConnectionManager::setPublishedAddress2023-06-09T15:32:54ZSébastien BlinCrash in jami::ConnectionManager::setPublishedAddress# Scenario
+ none provided
+ stack unknown
# Expected Result
No crash
# Current result
```
Previous native crash #0 at 2023-06-09T04:15:35.153Z: crash 5 2077 cx.ring
Tombstone 2128
Cause 0: null pointer dereference
#0 /data/app/~...# Scenario
+ none provided
+ stack unknown
# Expected Result
No crash
# Current result
```
Previous native crash #0 at 2023-06-09T04:15:35.153Z: crash 5 2077 cx.ring
Tombstone 2128
Cause 0: null pointer dereference
#0 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so std::__ndk1::shared_ptr<jami::ConnectionManager::Impl>::operator->() const+12
#1 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so jami::ConnectionManager::setPublishedAddress(jami::IpAddr const&)+24
#2 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so jami::JamiAccount::connectivityChanged()+272
#3 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so libjami::connectivityChanged()+364
#4 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so Java_net_jami_daemon_JamiServiceJNI_connectivityChanged+20
#5 /apex/com.android.art/lib64/libart.so art_quick_generic_jni_trampoline+148
#6 /apex/com.android.art/lib64/libart.so nterp_helper+152
#7 [anon:dalvik-classes4.dex extracted in memory from /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!classes4.dex] net.jami.daemon.JamiService.connectivityChanged+0
#8 /apex/com.android.art/lib64/libart.so nterp_helper+52
#9 [anon:dalvik-classes5.dex extracted in memory from /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!classes5.dex] net.jami.services.HardwareService.connectivityChanged$lambda$0+0
#10 /apex/com.android.art/lib64/libart.so nterp_helper+52
#11 [anon:dalvik-classes5.dex extracted in memory from /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!classes5.dex] net.jami.services.HardwareService.$r8$lambda$F_lyARd9U_n_If3MkjH062wY9Kw+0
#12 /apex/com.android.art/lib64/libart.so nterp_helper+52
#13 [anon:dalvik-classes5.dex extracted in memory from /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!classes5.dex] net.jami.services.HardwareService$$ExternalSyntheticLambda3.run+0
#14 /apex/com.android.art/lib64/libart.so nterp_helper+7540
#15 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.Executors$RunnableAdapter.call+4
#16 /apex/com.android.art/lib64/libart.so nterp_helper+7540
#17 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.FutureTask.run+56
#18 /apex/com.android.art/lib64/libart.so nterp_helper+3924
#19 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run+38
#20 /apex/com.android.art/lib64/libart.so nterp_helper+7540
#21 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.ThreadPoolExecutor.runWorker+156
#22 /apex/com.android.art/lib64/libart.so nterp_helper+3924
#23 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.ThreadPoolExecutor$Worker.run+4
#24 /apex/com.android.art/lib64/libart.so nterp_helper+7540
#25 /apex/com.android.art/javalib/core-oj.jar java.lang.Thread.run+8
#26 /apex/com.android.art/lib64/libart.so art_quick_invoke_stub+556
#27 /apex/com.android.art/lib64/libart.so art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156
#28 /apex/com.android.art/lib64/libart.so art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+400
#29 /apex/com.android.art/lib64/libart.so art::Thread::CreateCallback(void*)+1680
#30 /apex/com.android.runtime/lib64/bionic/libc.so __pthread_start(void*)+204
#31 /apex/com.android.runtime/lib64/bionic/libc.so __start_thread+64
Previous native crash #1 at 2023-06-09T04:15:24.943Z: crash 5 1329 cx.ring
Tombstone 1427
Cause 0: null pointer dereference
#0 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so std::__ndk1::shared_ptr<jami::ConnectionManager::Impl>::operator->() const+12
#1 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so jami::ConnectionManager::setPublishedAddress(jami::IpAddr const&)+24
#2 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so jami::JamiAccount::connectivityChanged()+272
#3 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so libjami::connectivityChanged()+364
#4 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so Java_net_jami_daemon_JamiServiceJNI_connectivityChanged+20
#5 /apex/com.android.art/lib64/libart.so art_quick_generic_jni_trampoline+148
#6 /apex/com.android.art/lib64/libart.so nterp_helper+152
#7 [anon:dalvik-classes4.dex extracted in memory from /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!classes4.dex] net.jami.daemon.JamiService.connectivityChanged+0
#8 /apex/com.android.art/lib64/libart.so nterp_helper+52
#9 [anon:dalvik-classes5.dex extracted in memory from /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!classes5.dex] net.jami.services.HardwareService.connectivityChanged$lambda$0+0
#10 /apex/com.android.art/lib64/libart.so nterp_helper+52
#11 [anon:dalvik-classes5.dex extracted in memory from /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!classes5.dex] net.jami.services.HardwareService.$r8$lambda$F_lyARd9U_n_If3MkjH062wY9Kw+0
#12 /apex/com.android.art/lib64/libart.so nterp_helper+52
#13 [anon:dalvik-classes5.dex extracted in memory from /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!classes5.dex] net.jami.services.HardwareService$$ExternalSyntheticLambda3.run+0
#14 /apex/com.android.art/lib64/libart.so nterp_helper+7540
#15 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.Executors$RunnableAdapter.call+4
#16 /apex/com.android.art/lib64/libart.so nterp_helper+7540
#17 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.FutureTask.run+56
#18 /apex/com.android.art/lib64/libart.so nterp_helper+3924
#19 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run+38
#20 /apex/com.android.art/lib64/libart.so nterp_helper+7540
#21 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.ThreadPoolExecutor.runWorker+156
#22 /apex/com.android.art/lib64/libart.so nterp_helper+3924
#23 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.ThreadPoolExecutor$Worker.run+4
#24 /apex/com.android.art/lib64/libart.so nterp_helper+7540
#25 /apex/com.android.art/javalib/core-oj.jar java.lang.Thread.run+8
#26 /apex/com.android.art/lib64/libart.so art_quick_invoke_stub+556
#27 /apex/com.android.art/lib64/libart.so art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156
#28 /apex/com.android.art/lib64/libart.so art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+400
#29 /apex/com.android.art/lib64/libart.so art::Thread::CreateCallback(void*)+1680
#30 /apex/com.android.runtime/lib64/bionic/libc.so __pthread_start(void*)+204
#31 /apex/com.android.runtime/lib64/bionic/libc.so __start_thread+64
Previous native crash #2 at 2023-06-09T04:15:15.311Z: crash 5 468 cx.ring
Tombstone 555
Cause 0: null pointer dereference
#0 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so std::__ndk1::shared_ptr<jami::ConnectionManager::Impl>::operator->() const+12
#1 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so jami::ConnectionManager::setPublishedAddress(jami::IpAddr const&)+24
#2 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so jami::JamiAccount::connectivityChanged()+272
#3 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so libjami::connectivityChanged()+364
#4 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so Java_net_jami_daemon_JamiServiceJNI_connectivityChanged+20
#5 /apex/com.android.art/lib64/libart.so art_quick_generic_jni_trampoline+148
#6 /apex/com.android.art/lib64/libart.so nterp_helper+152
#7 [anon:dalvik-classes4.dex extracted in memory from /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!classes4.dex] net.jami.daemon.JamiService.connectivityChanged+0
#8 /apex/com.android.art/lib64/libart.so nterp_helper+52
#9 [anon:dalvik-classes5.dex extracted in memory from /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!classes5.dex] net.jami.services.HardwareService.connectivityChanged$lambda$0+0
#10 /apex/com.android.art/lib64/libart.so nterp_helper+52
#11 [anon:dalvik-classes5.dex extracted in memory from /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!classes5.dex] net.jami.services.HardwareService.$r8$lambda$F_lyARd9U_n_If3MkjH062wY9Kw+0
#12 /apex/com.android.art/lib64/libart.so nterp_helper+52
#13 [anon:dalvik-classes5.dex extracted in memory from /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!classes5.dex] net.jami.services.HardwareService$$ExternalSyntheticLambda3.run+0
#14 /apex/com.android.art/lib64/libart.so nterp_helper+7540
#15 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.Executors$RunnableAdapter.call+4
#16 /apex/com.android.art/lib64/libart.so nterp_helper+7540
#17 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.FutureTask.run+56
#18 /apex/com.android.art/lib64/libart.so nterp_helper+3924
#19 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run+38
#20 /apex/com.android.art/lib64/libart.so nterp_helper+7540
#21 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.ThreadPoolExecutor.runWorker+156
#22 /apex/com.android.art/lib64/libart.so nterp_helper+3924
#23 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.ThreadPoolExecutor$Worker.run+4
#24 /apex/com.android.art/lib64/libart.so nterp_helper+7540
#25 /apex/com.android.art/javalib/core-oj.jar java.lang.Thread.run+8
#26 /apex/com.android.art/lib64/libart.so art_quick_invoke_stub+556
#27 /apex/com.android.art/lib64/libart.so art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156
#28 /apex/com.android.art/lib64/libart.so art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+400
#29 /apex/com.android.art/lib64/libart.so art::Thread::CreateCallback(void*)+1680
#30 /apex/com.android.runtime/lib64/bionic/libc.so __pthread_start(void*)+204
#31 /apex/com.android.runtime/lib64/bionic/libc.so __start_thread+64
Previous native crash #3 at 2023-06-09T04:15:05.040Z: crash 5 32443 cx.ring
Tombstone 32484
Cause 0: null pointer dereference
#0 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so std::__ndk1::shared_ptr<jami::ConnectionManager::Impl>::operator->() const+12
#1 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so jami::ConnectionManager::setPublishedAddress(jami::IpAddr const&)+24
#2 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so jami::JamiAccount::connectivityChanged()+272
#3 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so libjami::connectivityChanged()+364
#4 /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!libjami-jni.so Java_net_jami_daemon_JamiServiceJNI_connectivityChanged+20
#5 /apex/com.android.art/lib64/libart.so art_quick_generic_jni_trampoline+148
#6 /apex/com.android.art/lib64/libart.so nterp_helper+152
#7 [anon:dalvik-classes4.dex extracted in memory from /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!classes4.dex] net.jami.daemon.JamiService.connectivityChanged+0
#8 /apex/com.android.art/lib64/libart.so nterp_helper+52
#9 [anon:dalvik-classes5.dex extracted in memory from /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!classes5.dex] net.jami.services.HardwareService.connectivityChanged$lambda$0+0
#10 /apex/com.android.art/lib64/libart.so nterp_helper+52
#11 [anon:dalvik-classes5.dex extracted in memory from /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!classes5.dex] net.jami.services.HardwareService.$r8$lambda$F_lyARd9U_n_If3MkjH062wY9Kw+0
#12 /apex/com.android.art/lib64/libart.so nterp_helper+52
#13 [anon:dalvik-classes5.dex extracted in memory from /data/app/~~cr50t1rXPxkc7dMkdamN9w==/cx.ring-f8XAIIYSUWC3hqWsEj4BBA==/base.apk!classes5.dex] net.jami.services.HardwareService$$ExternalSyntheticLambda3.run+0
#14 /apex/com.android.art/lib64/libart.so nterp_helper+7540
#15 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.Executors$RunnableAdapter.call+4
#16 /apex/com.android.art/lib64/libart.so nterp_helper+7540
#17 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.FutureTask.run+56
#18 /apex/com.android.art/lib64/libart.so nterp_helper+3924
#19 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run+38
#20 /apex/com.android.art/lib64/libart.so nterp_helper+7540
#21 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.ThreadPoolExecutor.runWorker+156
#22 /apex/com.android.art/lib64/libart.so nterp_helper+3924
#23 /apex/com.android.art/javalib/core-oj.jar java.util.concurrent.ThreadPoolExecutor$Worker.run+4
#24 /apex/com.android.art/lib64/libart.so nterp_helper+7540
#25 /apex/com.android.art/javalib/core-oj.jar java.lang.Thread.run+8
#26 /apex/com.android.art/lib64/libart.so art_quick_invoke_stub+556
#27 /apex/com.android.art/lib64/libart.so art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156
#28 /apex/com.android.art/lib64/libart.so art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+400
#29 /apex/com.android.art/lib64/libart.so art::Thread::CreateCallback(void*)+1680
#30 /apex/com.android.runtime/lib64/bionic/libc.so __pthread_start(void*)+204
#31 /apex/com.android.runtime/lib64/bionic/libc.so __start_thread+64
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/857add unit test2023-07-30T14:34:04ZSébastien Blinadd unit testhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/856WhiteLabeling: Store incoming UI configuration in account details2023-07-18T15:10:48ZSébastien BlinWhiteLabeling: Store incoming UI configuration in account detailsduring the authentification, JAMS may push a custom UI. In this case, it should be stored in the account config so that the client can use it.during the authentification, JAMS may push a custom UI. In this case, it should be stored in the account config so that the client can use it.Mathéo JosephMathéo Josephhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/855Issue if you add an unkown contact by sending text messages - Can't decline a...2024-02-19T16:14:56ZElysIssue if you add an unkown contact by sending text messages - Can't decline a contact request (same contact multiple times in contact list?) Multi-Device issue?using newest version of Jami Windows 10 and Android
just Windows 10 (="username1"): enable "Allow calls from unknown peers" AND "Allow incoming files from unknown contacts"
Steps to reproduce:
1. Windows 10: Remove (NOT block) a contac...using newest version of Jami Windows 10 and Android
just Windows 10 (="username1"): enable "Allow calls from unknown peers" AND "Allow incoming files from unknown contacts"
Steps to reproduce:
1. Windows 10: Remove (NOT block) a contact ("username2") from your contact list; Android keep the Windows 10 user ("username1") in the contact list
1. Android: Write a text message (Android -> Windows 10)
1. Windows 10: You get an invitation
1. Windows 10: Accept the invitation
1. Windows 10: You get an error message "An error occurred while fetching this repository"
1. Windows 10: You only view an invitation but the contact ("username2") won't move to the contact list
1. Windows 10: You have to delete the contact
Now exit Jami (Windows 10) and enter Jami again
Another option: Starting from step 5 mentioned above
1. Windows 10: Now instead of a username you get the identifier of the contact; you accept the contact request
1. Windows 10: You (also) get an error message "An error occurred while fetching this repository"
1. Now exit Jami (just Windows 10)
1. Windows 10: enter Jami again; you get the message "Waiting until [identifier] connects to synchronize the conversation." but after a few seconds still "An error occurred while fetching this repository"
1. Windows 10: Now remove the contact ("username2") it does NOT work
1. Just Windows 10: Exit Jami and enter Jami again: Contact ("username2") is still in the contact list; If you try to remove the contact again it's still not possible
You have to **block** (not delete!) the contact to get rid of it in the contact list
As soon as you unblock the contact you get the **same contact twice** in the contact list: One contact will show just "Swarm created", the other (same) contact will still show "An error occurred while fetching this repository"; If you make a call Android -> Windows 10 the second same contact will receive the call
However - now you can remove the contact and it will be goneSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/854Ubuntu 22.04 - Jami crashes after upgrade. Missing device certificate file2023-05-12T17:49:24ZPierre MétrasUbuntu 22.04 - Jami crashes after upgrade. Missing device certificate fileBug report form
---------------
## Describe your environment
- OS: Ubuntu 22.04
- Jami version:
* ii jami 20230412.0~dfsg1-1 amd64 Secure and distributed voi...Bug report form
---------------
## Describe your environment
- OS: Ubuntu 22.04
- Jami version:
* ii jami 20230412.0~dfsg1-1 amd64 Secure and distributed voice, video and chat platform - desktop client
* ii jami-daemon 20230412.0~dfsg1-1 amd64 Secure and distributed voice, video and chat platform - daemon
* ii libqt-jami 6.2.3-2 amd64 Custom build of Qt framework used by the Jami Qt client.
- What build you are using: Ubuntu apt package
## Steps to reproduce
Note: Better the scenario is, better we will be able to reproduce and debug.
- Can you reproduce the bug: at will, but because I can't use Jami anymore I'm going to find a work around soon and probably that I won't be able to reproduce.
- Steps:
1. I had a Jami version from last year, 202209... if I remember correctly. I updated to 202301412.
2. Jami does not run because it can't access a file that is not present on disk and crashes.
- Actual result: Crash
- Expected result: Either run and notify the user about the missing file, or try to get or recreate the file by other means. The missing file seems to be a device certificate, so I think it could be obtained from another peer.
## Additional information
```
$ jami --file jami_debug.log
Warning: Ignoring WAYLAND_DISPLAY on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Using Qt runtime version: 6.2.3
"notify server name: gnome-shell, vendor: GNOME, version: 42.5, spec: 1.2"
qt.webenginecontext:
GLImplementation: desktop
Surface Type: OpenGL
Surface Profile: CompatibilityProfile
Surface Version: 3.3
Using Default SG Backend: yes
Using Software Dynamic GL: no
Using Angle: no
Init Parameters:
* application-name Jami
* browser-subprocess-path /usr/lib/libqt-jami/libexec/QtWebEngineProcess
* create-default-gl-context
* disable-features DnsOverHttpsUpgrade,ConsolidatedMovementXY,InstalledApp,BackgroundFetch,WebOTP,WebPayments,WebUSB,PictureInPicture
* disable-setuid-sandbox
* disable-speech-api
* disable-web-security
* enable-features NetworkServiceInProcess,TracingServiceInProcess
* enable-main-frame-before-activation
* enable-threaded-compositing
* file
* gpu-preferences UAAAAAAAAAAoAAAQAAAAAAAAAAAAAAAAAABgAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAA=
* in-process-gpu
* lang en-CA
* num-raster-threads 2
* single-process
* use-gl desktop
"Using locale: en_CA"
17:06:08.456 os_core_unix.c !pjlib 2.12.1 for POSIX initialized
Daemon is running
No migration required
terminate called after throwing an instance of 'std::runtime_error'
what(): Can't read file: /home/pierre/.local/share/jami/423fc35e007bd253/conversations/1bd85df9e8e86556...723756c909/devices/46032b09265ccb61376e089bc1aa1743c4779ec52623775a95add5466ba1c1e5.crt
Aborted (core dumped)
```
File does not exist
```
$ ls -al /home/pierre/.local/share/jami/423fc35e007bd253/conversations/1bd85df9e8e86556...723756c909/devices/
total 44
drwxr-xr-x 2 pierre pierre 4096 mai 5 03:44 .
drwxrwxr-x 6 pierre pierre 4096 mai 5 03:44 ..
-rw-r--r-- 1 pierre pierre 1830 mai 5 03:44 27d1cf739f3e9...55db5c9b407026d56216.crt
-rw-r--r-- 1 pierre pierre 1830 mai 5 03:44 2c709fae7bc65...6492d0efc53dc9b533fe.crt
-rw-r--r-- 1 pierre pierre 1830 mai 5 03:44 33f30d7099c08...01cd5c1853a9b3bd9354.crt
-rw-r--r-- 1 pierre pierre 1830 mai 5 03:44 8eaabb95f884d...99a89a7484945663ca2e.crt
-rw-r--r-- 1 pierre pierre 1830 mai 5 03:44 a5b9356bea91b...0f88475c485ec07ac599.crt
-rw-r--r-- 1 pierre pierre 1830 mai 5 03:44 b416d64e65486...809de95bfcdf628f24e9.crt
-rw-r--r-- 1 pierre pierre 1830 mai 5 03:44 da1e518d0aa94...9df40d8c03527711052d.crt
-rw-r--r-- 1 pierre pierre 1830 mai 5 03:44 ea5aa4e866c2e...0c2ddb179e0509070324.crt
-rw-r--r-- 1 pierre pierre 1830 mai 5 03:44 f142664ae8fbd...abb0b093df7518344917.crt
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/852Add unit tests code SIP reception2023-05-05T14:12:54ZSébastien BlinAdd unit tests code SIP receptionTest various shutdown conditions to check if all clean-up are correctsTest various shutdown conditions to check if all clean-up are correctshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/850build failed when folder name contains a space2023-05-15T13:27:53ZKateryna Kostiukbuild failed when folder name contains a space"Create a folder with a name that includes a space, for example, "New folder". Then, clone the jami-project and attempt to build it inside this folder. Building contribs will result in a failure.."Create a folder with a name that includes a space, for example, "New folder". Then, clone the jami-project and attempt to build it inside this folder. Building contribs will result in a failure..https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/849Discarding message from invalid peer certificate2023-12-27T18:02:22ZPierre NicolasDiscarding message from invalid peer certificate## Describe your environment
- Device model: <br>
1. Device A : Samsung SM-T720, Android 11 API 30, Master (3f87565cc46ca68a6c9c38154d09416f30c766a0)<br>
2. Device B : Ubuntu 22.04.2 LTS, Ubuntu Software v202304121408
...## Describe your environment
- Device model: <br>
1. Device A : Samsung SM-T720, Android 11 API 30, Master (3f87565cc46ca68a6c9c38154d09416f30c766a0)<br>
2. Device B : Ubuntu 22.04.2 LTS, Ubuntu Software v202304121408
## Steps to reproduce
- Can you reproduce the bug: at will
- Steps:
1. Create new account with device B
2. Quickly send friend invite to device A (if I wait like 30s I don't have the bug anymore)
- Actual result: Device A doesnt receive the friend invite. I get some logs telling it didnt work.
## Additional information
![Kazam_screencast_00004](/uploads/bce944097ec419cd2b8293d38f43b098/Kazam_screencast_00004.webm)
![device-2023-05-01-114418](/uploads/1f9a46a02f0386a9528a96f2e778b1a4/device-2023-05-01-114418.mp4)
```
2023-05-01 11:43:33.145 22549-22746 libjami cx.ring W [1682955813.145|22746|account_manager.cpp :337 ] Found invalid peer device: 89879ec18abb54e187cb34bbab78cec3d76929dc15017499bcdb5316f5e581a0
2023-05-01 11:43:33.146 22549-22746 libjami cx.ring W [1682955813.146|22746|account_manager.cpp :385 ] [Auth] Discarding message from invalid peer certificate
2023-05-01 11:43:33.152 22549-22746 libjami cx.ring W [1682955813.152|22746|account_manager.cpp :337 ] Found invalid peer device: 89879ec18abb54e187cb34bbab78cec3d76929dc15017499bcdb5316f5e581a0
2023-05-01 11:43:33.152 22549-22746 libjami cx.ring W [1682955813.152|22746|account_manager.cpp :385 ] [Auth] Discarding message from invalid peer certificate
```
### Notes
(Sébastien):
This may be due to the fact than the device key is not present on the DHT during the first seconds. So, the Android device will not find any certificate when receiving the trust request.
One possible solution would be to wait that deviceAnnounced_ is true before sending trust request or other DHT values.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/848Cmake installs nothing2023-05-05T18:58:11ZSébastien BlinCmake installs nothing```
amarok@atlas ~/Projects/jami/client-qt/daemon/build ➦ fa1a8d811 cmake --install . --prefix foo
-- Install configuration: "Debug"
amarok@atlas ~/Projects/jami/client-qt/daemon/build ➦ fa1a8d811 ls foo
``````
amarok@atlas ~/Projects/jami/client-qt/daemon/build ➦ fa1a8d811 cmake --install . --prefix foo
-- Install configuration: "Debug"
amarok@atlas ~/Projects/jami/client-qt/daemon/build ➦ fa1a8d811 ls foo
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/847ConversationRepository: segv in devices()2023-05-05T18:58:02ZSébastien BlinConversationRepository: segv in devices()```
[1681523536.151|12649|conversation.cpp :1869] [Conversation (1:1) c03e99de895c17808dceb5d77d8fdebf82dc92dd][SwarmManager 0x555555c98910] Bootstrap with 5 devices
[1681523536.151|12649|conversationrepository.cpp:88 ] Couldn't ...```
[1681523536.151|12649|conversation.cpp :1869] [Conversation (1:1) c03e99de895c17808dceb5d77d8fdebf82dc92dd][SwarmManager 0x555555c98910] Bootstrap with 5 devices
[1681523536.151|12649|conversationrepository.cpp:88 ] Couldn't open git repository: /home/cyrille/.local/share/jami/86af5cedde4a55c8/conversations/2d3cf5c7ec691af3012938217deec850e4db2318 (failed to resolve path '/home/cyrille/.local/share/jami/86af5cedde4a55c8/conversations/2d3cf5c7ec691af3012938217deec850e4db2318': No such file or directory)
[1681523536.151|12390|connectionmanager.cpp :462 ] No valid certificate found for device 78d2754e8676910d3c25ce3990a3e31e56a194a90daf377056d2cb34fb65aa86
[1681523536.152|12390|connectionmanager.cpp :542 ] Already connecting to bafb32428c0430d7c19468547ab5d977e5ca91538dd14527509a5c66e8accfb7, wait for the ICE negotiation
[1681523536.152|12456|ice_transport.cpp :333 ] [ice:0x7fff2c1a7f70] Creating IceTransport session for "86af5cedde4a55c8"
[1681523536.152|12456|ice_transport.cpp :408 ] [ice:0x7fff2c1a7f70] Initializing the session - comp count 1 - as a slave
[1681523536.152|12456|upnp_control.cpp :39 ] Controller@0x7fff2c99fd10: Created UPnP Controller session
[1681523536.152|12390|upnp_context.cpp :414 ] Successfully registered controller 0x7fff2c99fd10
[1681523536.152|12456|ice_transport.cpp :449 ] [ice:0x7fff2c1a7f70] Add host candidates
[1681523536.152|12456|ice_transport.cpp :908 ] [ice:0x7fff2c1a7f70] added host stun config for TCP transport
[1681523536.152|12456|ice_transport.cpp :908 ] [ice:0x7fff2c1a7f70] added host stun config for TCP transport
[1681523536.152|12456|upnp_context.cpp :311 ] Desired port is not set, will provide the first available port for [TCP]
[1681523536.152|12456|mapping.cpp :86 ] Changing mapping JAMI-TCP:11463 state from AVAILABLE to UNAVAILABLE
[1681523536.152|12456|ice_transport.cpp :942 ] [ice:0x7fff2c1a7f70] UPNP mapping JAMI-TCP:11463 (state=OPEN, auto-update=NO) successfully allocated
[1681523536.152|12456|ice_transport.cpp :908 ] [ice:0x7fff2c1a7f70] added host stun config for TCP transport
[1681523536.152|12390|upnp_context.cpp :650 ] Mapping status [TCP] - overall 39: 39 open (3 ready + 36 in use), 0 pending, 0 in-progress, 0 failed
[1681523536.152|12456|ice_transport.cpp :991 ] [ice:0x7fff2c1a7f70] Add srflx reflexive candidates [192.168.68.59:11463 : 74.14.172.189:11463] for comp 1
[1681523536.152|12390|upnp_context.cpp :496 ] Provision 1 new mappings of type [TCP]
[1681523536.152|12456|ice_transport.cpp :459 ] [ice:0x7fff2c1a7f70] Added UPNP srflx candidates:
[1681523536.152|12456|ice_transport.cpp :320 ] [ice (TCP)] added turn server '192.252.140.236', port 3478
[1681523536.152|12390|upnp_context.cpp :481 ] Request mapping JAMI-TCP:10331 using protocol [NAT-PMP] IGD [192.168.68.1]
[1681523536.152|12390|upnp_context.cpp :650 ] Mapping status [UDP] - overall 13: 13 open (8 ready + 5 in use), 0 pending, 0 in-progress, 0 failed
[New Thread 0x7ffc22ffd640 (LWP 407335)]
Thread 114 "jamid" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffedcff9640 (LWP 405865)]
0x00007ffff5d85764 in git_repository_workdir () from /lib/x86_64-linux-gnu/libgit2.so.1.1
(gdb) bt
#0 0x00007ffff5d85764 in git_repository_workdir () from /lib/x86_64-linux-gnu/libgit2.so.1.1
#1 0x00007ffff6a18dbc in jami::ConversationRepository::Impl::devices[abi:cxx11]() const (this=0x7fff1803a010) at jamidht/conversationrepository.cpp:194
#2 0x00007ffff6a114cf in jami::ConversationRepository::devices[abi:cxx11]() const (this=0x7fff1803a1d0) at jamidht/conversationrepository.cpp:3667
#3 0x00007ffff69c68fd in jami::Conversation::bootstrap(std::function<void ()>) (this=0x7ffd30004dd0, onBootstraped=...) at jamidht/conversation.cpp:1861
#4 0x00007ffff6a3f408 in jami::ConversationModule::bootstrap (this=0x7fff8402bd80) at jamidht/conversation_module.cpp:1275
#5 0x00007ffff68fd6b5 in operator() (__closure=0x7fff2c1439f0) at jamidht/jamiaccount.cpp:1947
#6 0x00007ffff6933526 in std::__invoke_impl<void, jami::JamiAccount::doRegister_()::<lambda(bool)>::<lambda()>::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/11/bits/invoke.h:61
#7 0x00007ffff692a206 in std::__invoke_r<void, jami::JamiAccount::doRegister_()::<lambda(bool)>::<lambda()>::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/11/bits/invoke.h:111
#8 0x00007ffff69215a8 in std::_Function_handler<void(), jami::JamiAccount::doRegister_()::<lambda(bool)>::<lambda()>::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
at /usr/include/c++/11/bits/std_function.h:290
#9 0x00007ffff6dbcfc7 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() () from /lib/libjami.so.0
#10 0x00007ffff5edc2b3 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#11 0x00007ffff5a94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#12 0x00007ffff5b26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
(gdb)
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/846SIP call on android: plain RTP session impossible (intentionally unencrypted ...2023-04-14T12:23:34ZTobias HuberSIP call on android: plain RTP session impossible (intentionally unencrypted LAN-PBX)Hi, since Android 13 doesn't offer native SIP support anymore, I thought this great Jami thing could step in...
Unfortunately, it was quiet inconvenient to get at least some idea why this doesn't work with my LAN/VPN PBX
_(Inconvenience...Hi, since Android 13 doesn't offer native SIP support anymore, I thought this great Jami thing could step in...
Unfortunately, it was quiet inconvenient to get at least some idea why this doesn't work with my LAN/VPN PBX
_(Inconvenience: LAN/VPN PBX is asterisk 1.6, which doesn't use identical string for account identification and user authentication; the user corresponding to the password for authentication is different to the name of the SIP account.
It's possible to set Jami up that way, but it's quiet hidden - besides some more not so minor UI nits on android, but that will be a different issue report.)_
I checked that all Security->Security switches are off (SRTP and TLS transport).
1.) Initiating (outgoing) call fails because:
`"Rejecting secure audio stream without encryption details: audio 19686 RTP/SAVP 104 9 2 112 111 110 8 0 101"`
> <--- SIP read from UDP:172.21.97.226:5060 ---> [115/1865]
> INVITE sip:11@pbx.example.net SIP/2.0
> Via: SIP/2.0/UDP 172.21.97.226:5060;rport;branch=z9hG4bKPjaf1c522c-6e92-4539-b899-15c2bad55ad1
> Max-Forwards: 70
> From: <sip:tobimob_line1@pbx.example.net>;tag=b2110c22-6e14-4381-8a99-cc1e40d3872f
> To: <sip:11@pbx.example.net>
> Contact: <sip:tobimob_line1@172.21.97.226:5060>
> Call-ID: 4b970369-1b13-44da-b798-3a74f51d8c39
> CSeq: 629 INVITE
> Subject: Phone call
> Allow: SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, OPTIONS, MESSAGE, PUBLISH
> Supported: replaces
> User-Agent: Jami Daemon 13.7.0 (android)
> Authorization: Digest username="tobi.huber", realm="pbx.example.net", nonce="3b54e054", uri="sip:11@pbx.example.net", response="4070f25aadda2536ee24058551dfb64
> 1", algorithm=MD5
> Content-Type: application/sdp
> Content-Length: 1047
>
> v=0
> o=localhost 3890394360 0 IN IP4 172.21.97.226
> s=Call ID 8706183892147327
> c=IN IP4 172.21.97.226
> t=0 0
> a=ice-ufrag:42a09c4e
> a=ice-pwd:04afb39763f13c7f32a67b91
> m=aud--- (15 headers 27 lines) ---
> Sending to 172.21.97.226:5060 (no NAT)
> Using INVITE request as basis request - 4b970369-1b13-44da-b798-3a74f51d8c39
> Found peer 'tobimob_line1' for 'tobimob_line1' from 172.21.97.226:5060
> Found RTP audio format 104
> Found RTP audio format 9
> Found RTP audio format 2
> Found RTP audio format 112
> Found RTP audio format 111
> Found RTP audio format 110
> Found RTP audio format 8
> Found RTP audio format 0
> Found RTP audio format 101
> Found unknown media description format opus for ID 104
> Found audio description format G722 for ID 9
> Found audio description format G726-32 for ID 2
> Found audio description format speex for ID 112
> Found audio description format speex for ID 111
> Found audio description format speex for ID 110
> Found audio description format PCMA for ID 8
> Found audio description format PCMU for ID 0
> Found audio description format telephone-event for ID 101
[Apr 13 19:05:59] ERROR[101987][C-000005d5]: chan_sip.c:33575 int setup_srtp(struct sip_srtp **): No SRTP module loaded, can't setup SRTP session.
[Apr 13 19:05:59] WARNING[101987][C-000005d5]: chan_sip.c:10417 int process_sdp(struct sip_pvt *, struct sip_request *, int): Rejecting secure audio stream witho
ut encryption details: audio 19686 RTP/SAVP 104 9 2 112 111 110 8 0 101
Why does it send RTP/SAVP although I disabled SRTP?
2.) Incoming call signalling works, but not possible to establish RTP session:
```
"Ignoring audio media offer because port number is zero" and
"Failing due to no acceptable offer found"
```
Ringing:
> <--- SIP read from UDP:172.21.97.226:5060 --->
> SIP/2.0 180 Ringing
> Via: SIP/2.0/UDP 172.21.98.12:5060;received=172.21.98.12;branch=z9hG4bK0d2bf1b6
> Call-ID: 1e4bf56a62264ba6792450e4506bed52@pbx.example.net
> From: "T. Huber (22)" <sip:thbuero@pbx.example.net>;tag=as48fb14ca
> To: <sip:tobimob_line1@172.21.97.226>;tag=6c456d21-e6ae-4c85-bf04-da0aaf56e758
> CSeq: 102 INVITE
> User-Agent: Jami Daemon 13.7.0 (android)
> Allow: SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, OPTIONS, MESSAGE, PUBLISH
> Contact: <sip:tobimob_line1@172.21.97.226:5060>
... (snipped)
Accepting call on Jami:
> <--- SIP read from UDP:172.21.97.226:5060 --->
> SIP/2.0 200 OK
> Via: SIP/2.0/UDP 172.21.98.12:5060;received=172.21.98.12;branch=z9hG4bK0d2bf1b6
> Call-ID: 1e4bf56a62264ba6792450e4506bed52@pbx.example.net
> From: "T. Huber (22)" <sip:thbuero@pbx.example.net>;tag=as48fb14ca
> To: <sip:tobimob_line1@172.21.97.226>;tag=6c456d21-e6ae-4c85-bf04-da0aaf56e758
> CSeq: 102 INVITE
> User-Agent: Jami Daemon 13.7.0 (android)
> Allow: SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, OPTIONS, MESSAGE, PUBLISH
> Supported: replaces
> Contact: <sip:tobimob_line1@172.21.97.226:5060>
> Content-Type: application/sdp
> Content-Length: 142
>
> v=0
> o=localhost 3890395686 1 IN IP4 172.21.97.226
> s=Call ID 5890041505306313
> c=IN IP4 172.21.97.226
> t=0 0
> m=audio 0 RTP/AVP 9 8 0 3 101
> <------------->
chan_sip.c:10008 int process_sdp(struct sip_pvt *, struct sip_request *, int): Ignoring audio media offer [5/1992]
port number is zero
chan_sip.c:10438 int process_sdp(struct sip_pvt *, struct sip_request *, int): Failing due to no acceptabl[3/1992]
found
**Here's a working internal call, where sipdroid is the user agent on the same phone:**
> <--- SIP read from UDP:172.21.97.226:40739 --->
> SIP/2.0 180 Ringing
> Via: SIP/2.0/UDP 172.21.98.12:5060;branch=z9hG4bK04f5274c
> To: <sip:tobimob_line1@10.26.229.169:40739;transport=udp>;tag=fb8b4ff3c7a73ee8
> From: "T. Huber (22)" <sip:thbuero@pbx.example.net>;tag=as686012bd
> Call-ID: 3547fb4e68213eb90d8295ae221e36ea@pbx.example.net
> CSeq: 102 INVITE
> Server: Sipdroid/6.3 beta/Pixel 7
> Content-Length: 198
> Content-Type: application/sdp
... (snipped)
Accepting call on SIPdroid:
> SIP/2.0 200 OK
> Via: SIP/2.0/UDP 172.21.98.12:5060;branch=z9hG4bK04f5274c
> To: <sip:tobimob_line1@10.26.229.169:40739;transport=udp>;tag=fb8b4ff3c7a73ee8
> From: "T. Huber (22)" <sip:thbuero@pbx.example.net>;tag=as686012bd
> Call-ID: 3547fb4e68213eb90d8295ae221e36ea@pbx.example.net
> CSeq: 102 INVITE
> Contact: <sip:tobimob_line1@10.26.229.169:40739;transport=udp>
> Server: Sipdroid/6.3 beta/Pixel 7
> Content-Length: 198
> Content-Type: application/sdp
>
> v=0
> o=tobimob_line1@pbx.example.net 0 0 IN IP4 10.26.229.169
> s=Session SIP/SDP
> c=IN IP4 10.26.229.169
> t=0 0
> m=audio 21000 RTP/AVP 9 101
> a=rtpmap:9 G722/8000
> a=rtpmap:101 telephone-event/8000
> <------------->
**Significant difference here is "m=audio ...." lines.**
With SIPdroid (the working incomming call), it reads
> m=audio 21000 RTP/AVP 9 101
while with jami (not working)
> m=audio 0 RTP/AVP 9 8 0 3 101
I'd very much appreciate if somebody could take care and bring back originating strenghts of Jami in that it's usable as a working SIP UA - for plain RTP too!
Especially due to dropped native SIP support in recent android versions!
The android settings UI is broken too, like already mentioned, but ther's the workaround to use it in landscape mode, which makes it possible to sroll the account-enabler switch out of overlapping tab selection area... Will tell in a different issue report.
Thanks in advance,
-Tobihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/845crash on macOS when finishing a call2023-04-18T13:15:31ZKateryna Kostiukcrash on macOS when finishing a callApp crashes every time when finishing a call when destroying MediaRecorder
```
Thread 31 Crashed:
0 Jami 0x102f267bc std::__1::__tree_node_base<void*>* std::__1::__tree_min<std::__1::__tree_node_base<vo...App crashes every time when finishing a call when destroying MediaRecorder
```
Thread 31 Crashed:
0 Jami 0x102f267bc std::__1::__tree_node_base<void*>* std::__1::__tree_min<std::__1::__tree_node_base<void*>*>(std::__1::__tree_node_base<void*>*) + 12 (__tree:149)
1 Jami 0x102f26748 std::__1::__tree_end_node<std::__1::__tree_node_base<void*>*>* std::__1::__tree_next_iter<std::__1::__tree_end_node<std::__1::__tree_node_base<void*>*>*, std::__1::__tree_node_base<void*>*>(std::__1::__tree_node_base<void*>*) + 40 (__tree:185)
2 Jami 0x102f260bc std::__1::__tree_const_iterator<jami::Observable<std::__1::shared_ptr<libjami::MediaFrame> >*, std::__1::__tree_node<jami::Observable<std::__1::shared_ptr<libjami::MediaFrame> >*, void*>*, long>::operator++() + 28 (__tree:925)
3 Jami 0x102f25f38 jami::MediaRecorder::StreamObserver::~StreamObserver() + 168 (media_recorder.cpp:74)
4 Jami 0x102f25455 jami::MediaRecorder::StreamObserver::~StreamObserver() + 21 (media_recorder.cpp:73)
5 Jami 0x102f25479 jami::MediaRecorder::StreamObserver::~StreamObserver() + 25 (media_recorder.cpp:73)
6 Jami 0x102f28f5c std::__1::default_delete<jami::MediaRecorder::StreamObserver>::operator()(jami::MediaRecorder::StreamObserver*) const + 44 (unique_ptr.h:57)
7 Jami 0x102f28f1c std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> >::reset(jami::MediaRecorder::StreamObserver*) + 92 (unique_ptr.h:318)
8 Jami 0x102f28eb9 std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> >::~unique_ptr() + 25 (unique_ptr.h:272)
9 Jami 0x102f17135 std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> >::~unique_ptr() + 21 (unique_ptr.h:272)
10 Jami 0x102f1f90d std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >::~pair() + 29 (pair.h:42)
11 Jami 0x102f1f8e5 std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >::~pair() + 21 (pair.h:42)
12 Jami 0x102f1f839 void std::__1::allocator_traits<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, void*> > >::destroy<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, void, void>(std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, void*> >&, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >*) + 25 (allocator_traits.h:319)
13 Jami 0x102f1f7ac std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > > > >::destroy(std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, void*>*) + 124 (__tree:1803)
14 Jami 0x102f1f725 std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > > > >::~__tree() + 37 (__tree:1791)
15 Jami 0x102f1f6f5 std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > > > >::~__tree() + 21 (__tree:1788)
16 Jami 0x102f1f6d5 std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > > > >::~map() + 21 (map:1117)
17 Jami 0x102f150a5 std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > > > >::~map() + 21 (map:1115)
18 Jami 0x102f14c8c jami::MediaRecorder::~MediaRecorder() + 236 (media_recorder.cpp:150)
19 Jami 0x102f150e5 jami::MediaRecorder::~MediaRecorder() + 21 (media_recorder.cpp:147)
20 Jami 0x102f2f49d std::__1::__shared_ptr_emplace<jami::MediaRecorder, std::__1::allocator<jami::MediaRecorder> >::__on_zero_shared() + 29 (shared_ptr.h:315)
21 Jami 0x102f2ec31 std::__1::__shared_count::__release_shared() + 49 (shared_ptr.h:177)
22 Jami 0x102f2ebd9 std::__1::__shared_weak_count::__release_shared() + 25 (shared_ptr.h:219)
23 Jami 0x102f2ebac std::__1::shared_ptr<jami::MediaRecorder>::~shared_ptr() + 44 (shared_ptr.h:959)
24 Jami 0x102f2cfa5 std::__1::shared_ptr<jami::MediaRecorder>::~shared_ptr() + 21 (shared_ptr.h:957)
25 Jami 0x102f2cffb jami::Recordable::~Recordable() + 43 (recordable.cpp:38)
26 Jami 0x102574ee2 jami::Call::~Call() + 322 (call.cpp:144)
27 Jami 0x10306ca84 jami::SIPCall::~SIPCall() + 500 (sipcall.cpp:160)
28 Jami 0x10306d1c5 jami::SIPCall::~SIPCall() + 21 (sipcall.cpp:155)
```Kateryna KostiukKateryna Kostiukhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/844ConnectionManager onShutdown avoid retrigger2024-02-14T14:04:25ZSébastien BlinConnectionManager onShutdown avoid retrigger```
channel->onShutdown([w = weak(), serverId]() {
// Run on main thread to avoid to be in mxSock's eventLoop
runOnMainThread([serverId, w]() {
auto shared = w.l...```
channel->onShutdown([w = weak(), serverId]() {
// Run on main thread to avoid to be in mxSock's eventLoop
runOnMainThread([serverId, w]() {
auto shared = w.lock();
if (!shared)
return;
std::lock_guard<std::mutex> lk(shared->gitServersMtx_);
shared->gitServers_.erase(serverId);
});
});
```
```
info->ice_->setOnShutdown([eraseInfo]() {
runOnMainThread([eraseInfo = std::move(eraseInfo)] { eraseInfo(); });
});
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/843SyncModule: deadlock2023-04-12T13:23:27ZSébastien BlinSyncModule: deadlock```
Thread 65 (Thread 0x7fff54ff9640 (LWP 3382598) "ut_account_arch"):
#0 0x00007ffff6489c10 in __lll_lock_wait () from /lib64/libc.so.6
#1 0x00007ffff64901c2 in pthread_mutex_lock@@GLIBC_2.2.5 () from /lib64/libc.so.6
#2 0x0000000000...```
Thread 65 (Thread 0x7fff54ff9640 (LWP 3382598) "ut_account_arch"):
#0 0x00007ffff6489c10 in __lll_lock_wait () from /lib64/libc.so.6
#1 0x00007ffff64901c2 in pthread_mutex_lock@@GLIBC_2.2.5 () from /lib64/libc.so.6
#2 0x0000000000486ed7 in __gthread_mutex_lock (__mutex=0x7fff5801e430) at /usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h:749
#3 0x000000000048ce8a in std::mutex::lock (this=0x7fff5801e430) at /usr/include/c++/12/bits/std_mutex.h:100
#4 0x00000000004bec7a in std::lock_guard<std::mutex>::lock_guard (this=0x7fff54ff5608, __m=...) at /usr/include/c++/12/bits/std_mutex.h:229
#5 0x0000000000732332 in operator() (__closure=0x7fff58005d30) at jamidht/sync_module.cpp:165
#6 0x0000000000734436 in std::__invoke_impl<void, jami::SyncModule::cacheSyncConnection(std::shared_ptr<jami::ChannelSocket>&&, const std::string&, const jami::DeviceId&)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/12/bits/invoke.h:61
#7 0x0000000000733f35 in std::__invoke_r<void, jami::SyncModule::cacheSyncConnection(std::shared_ptr<jami::ChannelSocket>&&, const std::string&, const jami::DeviceId&)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/12/bits/invoke.h:111
#8 0x0000000000733b36 in std::_Function_handler<void(), jami::SyncModule::cacheSyncConnection(std::shared_ptr<jami::ChannelSocket>&&, const std::string&, const jami::DeviceId&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/12/bits/std_function.h:290
#9 0x000000000048ef58 in std::function<void ()>::operator()() const (this=0x7fff60017720) at /usr/include/c++/12/bits/std_function.h:591
#10 0x00000000008f99fb in jami::ChannelSocket::onShutdown(std::function<void ()>&&) (this=0x7fff58000dc0, cb=...) at connectivity/multiplexed_socket.cpp:1128
#11 0x00000000007329d2 in jami::SyncModule::cacheSyncConnection (this=0x7fff5c008d20, socket=..., peerId="884ea80e4d805822aa289fe4928dae6fdbdd624e", device=...) at jamidht/sync_module.cpp:161
#12 0x00000000007307dc in jami::SyncChannelHandler::onReady (this=0x7fffd4162a20, cert=std::shared_ptr<dht::crypto::Certificate> (use count 2, weak count 0) = {...}, channel=std::shared_ptr<jami::ChannelSocket> (use count 4, weak count 0) = {...}) at jamidht/sync_channel_handler.cpp:73
#13 0x0000000000680089 in operator() (__closure=0x7fffd410a740, deviceId=..., name="sync://b69319185290dca01e37b1102ac026221e63a3aad230122e42418259fdb69aec", channel=std::shared_ptr<jami::ChannelSocket> (empty) = {...}) at jamidht/jamia--Type <RET> for more, q to quit, c to continue without paging--
ccount.cpp:2097
#14 0x00000000006b3314 in std::__invoke_impl<void, jami::JamiAccount::doRegister_()::<lambda(const jami::DeviceId&, const std::string&, std::shared_ptr<jami::ChannelSocket>)>&, const dht::Hash<32>&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::shared_ptr<jami::ChannelSocket> >(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/12/bits/invoke.h:61
#15 0x00000000006aa45b in std::__invoke_r<void, jami::JamiAccount::doRegister_()::<lambda(const jami::DeviceId&, const std::string&, std::shared_ptr<jami::ChannelSocket>)>&, const dht::Hash<32>&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::shared_ptr<jami::ChannelSocket> >(struct {...} &) (__fn=...) at /usr/include/c++/12/bits/invoke.h:111
#16 0x00000000006a1389 in std::_Function_handler<void(const dht::Hash<32>&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::shared_ptr<jami::ChannelSocket>), jami::JamiAccount::doRegister_()::<lambda(const jami::DeviceId&, const std::string&, std::shared_ptr<jami::ChannelSocket>)> >::_M_invoke(const std::_Any_data &, const dht::Hash<32> &, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, std::shared_ptr<jami::ChannelSocket> &&) (__functor=..., __args#0=..., __args#1="sync://b69319185290dca01e37b1102ac026221e63a3aad230122e42418259fdb69aec", __args#2=...) at /usr/include/c++/12/bits/std_function.h:290
#17 0x00000000008dadf2 in std::function<void (dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>)>::operator()(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>) const (this=0x7fffd410a740, __args#0=..., __args#1="sync://b69319185290dca01e37b1102ac026221e63a3aad230122e42418259fdb69aec", __args#2=std::shared_ptr<jami::ChannelSocket> (empty) = {...}) at /usr/include/c++/12/bits/std_function.h:591
#18 0x00000000008c4613 in operator() (__closure=0x7fff30006a10, deviceId=..., socket=std::shared_ptr<jami::ChannelSocket> (use count 4, weak count 0) = {...}) at connectivity/connectionmanager.cpp:1051
#19 0x00000000008d157d in std::__invoke_impl<void, jami::ConnectionManager::Impl::addNewMultiplexedSocket(const CallbackId&, const std::shared_ptr<jami::ConnectionInfo>&)::<lambda(const jami::DeviceId&, const std::shared_ptr<jami::ChannelSocket>&)>&, const dht::Hash<32>&, const std::shared_ptr<jami::ChannelSocket>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/12/bits/invoke.h:61
#20 0x00000000008cdf27 in std::__invoke_r<void, jami::ConnectionManager::Impl::addNewMultiplexedSocket(const CallbackId&, const std::shared_ptr<jami::ConnectionInfo>&)::<lambda(const jami::DeviceId&, const std::shared_ptr<jami::ChannelSocket>&)>&, const dht::Hash<32>&, const std::shared_ptr<jami::ChannelSocket>&>(struct {...} &) (__fn=...) at /usr/include/c++/12/bits/invoke.h:111
#21 0x00000000008ca49e in std::_Function_handler<void(const dht::Hash<32>&, const std::shared_ptr<jami::ChannelSocket>&), jami::ConnectionManager::Impl::addNewMultiplexedSocket(const CallbackId&, const std::shared_ptr<jami::ConnectionInfo>&)::<lambda(const jami::DeviceId&, const std::shared_ptr<jami::ChannelSocket>&)> >::_M_invoke(const std::_Any_data &, const dht::Hash<32> &, const std::shared_ptr<jami::ChannelSocket> &) (__functor=..., __args#0=..., __args#1=std::shared_ptr<jami::ChannelSocket> (use count 4, weak count 0) = {...}) at /usr/include/c++/12/bits/std_function.h:290
#22 0x00000000008feac1 in std::function<void (dht::Hash<32ul> const&, std::shared_ptr<jami::ChannelSocket> const&)>::operator()(dht::Hash<32ul> const&, std::shared_ptr<jami::ChannelSocket> const&) const (this=0x7fff3000f440, __args#0=..., __args#1=std::shared_ptr<jami::ChannelSocket> (use count 4, weak count 0) = {...}) at /usr/include/c++/12/bits/std_function.h:591
#23 0x00000000008f5ea5 in jami::MultiplexedSocket::Impl::onRequest (this=0x7fff3000f330, name="sync://b69319185290dca01e37b1102ac026221e63a3aad230122e42418259fdb69aec", channel=17281) at connectivity/multiplexed_socket.cpp:402
#24 0x00000000008f6260 in operator() (__closure=0x7fff34002c70) at connectivity/multiplexed_socket.cpp:435
#25 0x00000000008fbbba in std::__invoke_impl<void, jami::MultiplexedSocket::Impl::handleControlPacket(std::vector<unsigned char>&&)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/12/bits/invoke.h:61
#26 0x00000000008fb4a5 in std::__invoke_r<void, jami::MultiplexedSocket::Impl::handleControlPacket(std::vector<unsigned char>&&)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/12/bits/invoke.h:111
#27 0x00000000008faab5 in std::_Function_handler<void(), jami::MultiplexedSocket::Impl::handleControlPacket(std::vector<unsigned char>&&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/12/bits/std_function.h:290
#28 0x000000000137570d in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#29 0x00007ffff68dbb03 in execute_native_thread_routine () from /lib64/libstdc++.so.6
#30 0x00007ffff648cded in start_thread () from /lib64/libc.so.6
#31 0x00007ffff6512370 in clone3 () from /lib64/libc.so.6
```
Double lock on syncConnectionsMtx_Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/842FFmpeg 6.0 hevc hardware acceleration NVENC/NVDEC2023-12-29T23:49:35ZAKmatiAKFFmpeg 6.0 hevc hardware acceleration NVENC/NVDECHi, in the new ffmpeg version in order to use hevc hardware acceleration on some nvidia graphic cards -b_ref_mode disabled needs to be passed to ffmpeg. Thread here: https://bbs.archlinux.org/viewtopic.php?id=284290
Also, I suggest to a...Hi, in the new ffmpeg version in order to use hevc hardware acceleration on some nvidia graphic cards -b_ref_mode disabled needs to be passed to ffmpeg. Thread here: https://bbs.archlinux.org/viewtopic.php?id=284290
Also, I suggest to add information about enabling HW accel to get hevc working in enabled codecs settings. I figured it out by accident and for some time wondered why H265 is not listed.Adrien BéraudAdrien Béraud