jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2023-12-05T21:03:14Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/926Crash in OpenSSL (JAMS deletion) - heap use after free2023-12-05T21:03:14ZSébastien BlinCrash in OpenSSL (JAMS deletion) - heap use after free```
#0 0x7f00b503a396 in __interceptor_memcpy ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:827
#1 0x7f00a10e1361 (/lib/x86_64-linux-gnu/libcrypto.so.3+0xe1361)
#2 0x7f00a10d234a (/lib/x86_...```
#0 0x7f00b503a396 in __interceptor_memcpy ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:827
#1 0x7f00a10e1361 (/lib/x86_64-linux-gnu/libcrypto.so.3+0xe1361)
#2 0x7f00a10d234a (/lib/x86_64-linux-gnu/libcrypto.so.3+0xd234a)
#3 0x7f00a10d5344 (/lib/x86_64-linux-gnu/libcrypto.so.3+0xd5344)
#4 0x7f00a10d5b3c in BIO_read_ex (/lib/x86_64-linux-gnu/libcrypto.so.3+0xd5b3c)
#5 0x7f00a10d5344 (/lib/x86_64-linux-gnu/libcrypto.so.3+0xd5344)
#6 0x7f00a10d54c6 in BIO_read (/lib/x86_64-linux-gnu/libcrypto.so.3+0xd54c6)
#7 0x7f00a10bc059 in asn1_d2i_read_bio (/lib/x86_64-linux-gnu/libcrypto.so.3+0xbc059)
#8 0x7f00a1268716 (/lib/x86_64-linux-gnu/libcrypto.so.3+0x268716)
#9 0x7f00a125aa62 (/lib/x86_64-linux-gnu/libcrypto.so.3+0x25aa62)
#10 0x7f00a11697ba (/lib/x86_64-linux-gnu/libcrypto.so.3+0x1697ba)
#11 0x7f00a1169a90 in OSSL_DECODER_from_bio (/lib/x86_64-linux-gnu/libcrypto.so.3+0x169a90)
#12 0x7f00a1169dbd in OSSL_DECODER_from_data (/lib/x86_64-linux-gnu/libcrypto.so.3+0x169dbd)
#13 0x7f00a123fae3 (/lib/x86_64-linux-gnu/libcrypto.so.3+0x23fae3)
#14 0x7f00a10ceb9a (/lib/x86_64-linux-gnu/libcrypto.so.3+0xceb9a)
#15 0x7f00a10d03e7 (/lib/x86_64-linux-gnu/libcrypto.so.3+0xd03e7)
#16 0x7f00a10ced18 (/lib/x86_64-linux-gnu/libcrypto.so.3+0xced18)
#17 0x7f00a10d03e7 (/lib/x86_64-linux-gnu/libcrypto.so.3+0xd03e7)
#18 0x7f00a10ced18 (/lib/x86_64-linux-gnu/libcrypto.so.3+0xced18)
#19 0x7f00a10cf492 in ASN1_item_d2i_ex (/lib/x86_64-linux-gnu/libcrypto.so.3+0xcf492)
#20 0x7f00a15e8132 (/lib/x86_64-linux-gnu/libssl.so.3+0x67132)
#21 0x7f00a15e4a04 (/lib/x86_64-linux-gnu/libssl.so.3+0x63a04)
#22 0x7f00a15e6607 (/lib/x86_64-linux-gnu/libssl.so.3+0x65607)
#23 0x7f00a5176230 in asio::ssl::detail::engine::perform(int (asio::ssl::detail::engine::*)(void*, unsigned long), void*, unsigned long, std::error_code&, unsigned long*) (/home/sblin/Projects/jami-project/client-qt/daemon/src/.libs/libjami.so.0+0x1d76230)
#24 0x7f00a5135430 in asio::ssl::detail::io_op<asio::basic_stream_socket<asio::ip::tcp, asio::any_io_executor>, asio::ssl::detail::handshake_op, dht::http::Connection::async_handshake(std::function<void (std::error_code const&)>)::{lambda(std::error_code const&)#1}>::operator()(std::error_code, unsigned long, int) (/home/sblin/Projects/jami-project/client-qt/daemon/src/.libs/libjami.so.0+0x1d35430)
#25 0x7f00a514062b in asio::detail::reactive_socket_recv_op<asio::mutable_buffers_1, asio::ssl::detail::io_op<asio::basic_stream_socket<asio::ip::tcp, asio::any_io_executor>, asio::ssl::detail::handshake_op, dht::http::Connection::async_handshake(std::function<void (std::error_code const&)>)::{lambda(std::error_code const&)#1}>, asio::any_io_executor>::do_complete(void*, asio::detail::scheduler_operation*, std::error_code const&, unsigned long) (/home/sblin/Projects/jami-project/client-qt/daemon/src/.libs/libjami.so.0+0x1d4062b)
#26 0x7f00a501e62b in asio::detail::epoll_reactor::descriptor_state::do_complete(void*, asio::detail::scheduler_operation*, std::error_code const&, unsigned long) (/home/sblin/Projects/jami-project/client-qt/daemon/src/.libs/libjami.so.0+0x1c1e62b)
#27 0x7f00a3e7ebb8 in asio::detail::scheduler_operation::complete(void*, std::error_code const&, unsigned long) /home/sblin/Projects/jami-project/client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/detail/scheduler_operation.hpp:39
#28 0x7f00a3e85aa6 in asio::detail::scheduler::do_run_one(asio::detail::conditionally_enabled_mutex::scoped_lock&, asio::detail::scheduler_thread_info&, std::error_code const&) /home/sblin/Projects/jami-project/client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/detail/impl/scheduler.ipp:492
#29 0x7f00a3e84ed9 in asio::detail::scheduler::run(std::error_code&) /home/sblin/Projects/jami-project/client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/detail/impl/scheduler.ipp:209
#30 0x7f00a3e86298 in asio::io_context::run() (/home/sblin/Projects/jami-project/client-qt/daemon/src/.libs/libjami.so.0+0xa86298)
#31 0x7f00a3e3aaef in operator() /home/sblin/Projects/jami-project/client-qt/daemon/src/manager.cpp:464
#32 0x7f00a3e73fb3 in __invoke_impl<void, jami::Manager::ManagerPimpl::ManagerPimpl(jami::Manager&)::<lambda()> > /usr/include/c++/11/bits/invoke.h:61
#33 0x7f00a3e73f76 in __invoke<jami::Manager::ManagerPimpl::ManagerPimpl(jami::Manager&)::<lambda()> > /usr/include/c++/11/bits/invoke.h:96
#34 0x7f00a3e73f23 in _M_invoke<0> /usr/include/c++/11/bits/std_thread.h:259
#35 0x7f00a3e73ef7 in operator() /usr/include/c++/11/bits/std_thread.h:266
#36 0x7f00a3e73edb in _M_run /usr/include/c++/11/bits/std_thread.h:211
#37 0x7f00a30dc252 (/lib/x86_64-linux-gnu/libstdc++.so.6+0xdc252)
#38 0x7f00a2c94ac2 in start_thread nptl/pthread_create.c:442
#39 0x7f00a2d26a3f (/lib/x86_64-linux-gnu/libc.so.6+0x126a3f)
0x62a0001c90e7 is located 3815 bytes inside of 21848-byte region [0x62a0001c8200,0x62a0001cd758)
freed by thread T0 here:
#0 0x7f00b50b4537 in __interceptor_free ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:127
#1 0x7f00a10f5174 in BUF_MEM_free (/lib/x86_64-linux-gnu/libcrypto.so.3+0xf5174)
previously allocated by thread T24 here:
#0 0x7f00b50b4887 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
#1 0x7f00a10f6ca5 in BUF_MEM_grow (/lib/x86_64-linux-gnu/libcrypto.so.3+0xf6ca5)
Thread T24 created by T0 here:
#0 0x7f00b5058685 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:216
#1 0x7f00a30dc328 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/lib/x86_64-linux-gnu/libstdc++.so.6+0xdc328)
#2 0x7f00a3e3b424 in jami::Manager::ManagerPimpl::ManagerPimpl(jami::Manager&) /home/sblin/Projects/jami-project/client-qt/daemon/src/manager.cpp:461
#3 0x7f00a3e90a5e in std::_MakeUniq<jami::Manager::ManagerPimpl>::__single_object std::make_unique<jami::Manager::ManagerPimpl, jami::Manager&>(jami::Manager&) /usr/include/c++/11/bits/unique_ptr.h:962
#4 0x7f00a3e3fbfe in jami::Manager::Manager() /home/sblin/Projects/jami-project/client-qt/daemon/src/manager.cpp:755
#5 0x7f00a3e3f94b in jami::Manager::instance() /home/sblin/Projects/jami-project/client-qt/daemon/src/manager.cpp:728
#6 0x7f00a3f83bee in libjami::init(libjami::InitFlag) /home/sblin/Projects/jami-project/client-qt/daemon/src/ring_api.cpp:69
#7 0x5637e3d41766 in InstanceManagerInterface::InstanceManagerInterface(bool) /home/sblin/Projects/jami-project/client-qt/src/libclient/qtwrapper/instancemanager.cpp:54
#8 0x5637e4e588c7 (/home/sblin/Projects/jami-project/client-qt/build/jami+0x1d568c7)
SUMMARY: AddressSanitizer: heap-use-after-free ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:827 in __interceptor_memcpy
Shadow bytes around the buggy address:
0x0c54800311c0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c54800311d0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c54800311e0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c54800311f0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c5480031200: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
=>0x0c5480031210: fd fd fd fd fd fd fd fd fd fd fd fd[fd]fd fd fd
0x0c5480031220: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c5480031230: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c5480031240: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c5480031250: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c5480031260: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==596032==ABORTING
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/911Change network during call will quit the call2024-02-27T18:43:10ZElysChange network during call will quit the callSteps to reproduce:
1. Make a call Android - Desktop; Android is using a WiFi network
1. Now switch to Mobile Data Networks
1. The call will end
Just tried another app (video call - Threema app): If you switch between Wi-Fi and Mobile ...Steps to reproduce:
1. Make a call Android - Desktop; Android is using a WiFi network
1. Now switch to Mobile Data Networks
1. The call will end
Just tried another app (video call - Threema app): If you switch between Wi-Fi and Mobile Data Networks the video of one peer will be shortly interrupted but the call goes on.
Maybe you try out the following scenarios (during a call):
- switch between Wi-Fi and Mobile Data Networks
- switch between local network (without internet) and same/different WiFi (with internet) and/or mobile data networks (one SIM; Changing from SIM 1 to SIM 2; or 4G to 5G)
If necessary / What happens during the switch
- if one / mutliple peer(s) add(s) video and/or remove the video
- during a file transfer (and if you block/remove a contact while changing the network)?
- if a call is searching / connecting (your own or another contact tries to call you)
- Will this affect Jami-Accounts AND SIP-Accounts?https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/909Record: flickering video if inputs have different fps2023-10-20T11:12:08ZAline Gondim SantosRecord: flickering video if inputs have different fpsHow to reproduce: share a file that is 60fps and have another stream with 30 fps
With https://review.jami.net/c/jami-daemon/+/26036 the fps are fixed to 30, but we should support the bigger one.How to reproduce: share a file that is 60fps and have another stream with 30 fps
With https://review.jami.net/c/jami-daemon/+/26036 the fps are fixed to 30, but we should support the bigger one.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/906PACKAGE_VERSION of win is inconsistent with PACKAGE_VERSION of linux2024-01-09T19:32:29ZLanius-collarisPACKAGE_VERSION of win is inconsistent with PACKAGE_VERSION of linux[CMakeLists.txt L4](https://git.jami.net/savoirfairelinux/jami-daemon/-/blob/master/CMakeLists.txt?ref_type=heads#L4) \
[compat/msvc/config.h L164](https://git.jami.net/savoirfairelinux/jami-daemon/-/blob/master/compat/msvc/config.h?ref_...[CMakeLists.txt L4](https://git.jami.net/savoirfairelinux/jami-daemon/-/blob/master/CMakeLists.txt?ref_type=heads#L4) \
[compat/msvc/config.h L164](https://git.jami.net/savoirfairelinux/jami-daemon/-/blob/master/compat/msvc/config.h?ref_type=heads#L164)Andreas TraczykAndreas Traczykhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/904(Android -> Desktop) Calls don't work / quit call does not work during a file...2023-10-04T12:39:58ZElys(Android -> Desktop) Calls don't work / quit call does not work during a file transfer?Maybe related to https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/903 (after unblock)
1. You've previously tried to send a few files Android -\> desktop but you cancled this
2. Exit all apps (desktop and Android)
3. Now after ...Maybe related to https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/903 (after unblock)
1. You've previously tried to send a few files Android -\> desktop but you cancled this
2. Exit all apps (desktop and Android)
3. Now after a few minutes open all apps again
4. Jami will try to download the file (Android -\> Desktop) again
If you try to make a call during the download progress (or before?)
* calls Android -\> Desktop will stuck / don't work (not even showing "Searching" and/or "Connecting")
* the call Android -\> Desktop will work but if you quit the call on desktop the call will proceed on Android
* everything will work? didn't always reproducehttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/895windows: UT: make and run unit tests in windows2023-11-17T16:34:28ZAline Gondim Santoswindows: UT: make and run unit tests in windowshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/892When kicked out of a Swarm, conversations still appears and make it like you ...2024-01-26T12:42:50ZThomas BallasiWhen kicked out of a Swarm, conversations still appears and make it like you can still discussThis would probably require the daemon to be able to put Swarm into an "archive" state that is read-only.
This behaviour has been observed in both client-qt and client-android:
![image](/uploads/55e741ab8b9a35d575822785560b8e22/image.p...This would probably require the daemon to be able to put Swarm into an "archive" state that is read-only.
This behaviour has been observed in both client-qt and client-android:
![image](/uploads/55e741ab8b9a35d575822785560b8e22/image.png) ![image](/uploads/043cf50d9609dbb57808e4d6e7b3a065/image.png)
(for some reason my name doesn't appear in client-qt)
Sending a message returns the following error:
```
[1693497329.637|56019|conversationrepository.cpp:1715] Invalid parent path (not in members or admins
[1693497329.637|56019|conversation_module.cpp :1077] Failed to send message to conversation 9d864ebe6712f18d1790b70d8ba7b605f78e63ac
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/891build fails on armhf, aarch64 and i686 for version 20230619.1 due to "to_guil...2024-02-14T14:03:59ZMaxim Cournoyerbuild fails on armhf, aarch64 and i686 for version 20230619.1 due to "to_guile(long int&)" ambiguous callHi,
The native armhf-linux build of libjami has broken since the upgrade to 20230619.1:
```plaintext
libtool: compile: g++ -std=gnu++17 -DHAVE_CONFIG_H -I. -I../.. -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fvisibility=hidden -DLIBJA...Hi,
The native armhf-linux build of libjami has broken since the upgrade to 20230619.1:
```plaintext
libtool: compile: g++ -std=gnu++17 -DHAVE_CONFIG_H -I. -I../.. -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fvisibility=hidden -DLIBJAMI_BUILD -Djami_EXPORTS -DASIO_STANDALONE -DMSGPACK_NO_BOOST -I/tmp/guix-build-libjami-20230619.1.drv-0/jami-20230619.1/daemon/src -I/tmp/guix-build-libjami-20230619.1.drv-0/jami-20230619.1/daemon/src/config -I/tmp/guix-build-libjami-20230619.1.drv-0/jami-20230619.1/daemon/src/media -I/tmp/guix-build-libjami-20230619.1.drv-0/jami-20230619.1/daemon/test -I/tmp/guix-build-libjami-20230619.1.drv-0/jami-20230619.1/daemon/src/jami -DPREFIX=\"/gnu/store/snhlmq7k9lgmjx5h24rzz69phlfxc0zy-libjami-20230619.1\" -DJAMI_DATADIR=\"/gnu/store/snhlmq7k9lgmjx5h24rzz69phlfxc0zy-libjami-20230619.1/share/jami\" -DENABLE_TRACE -DJAMI_REVISION=\"\" -DJAMI_DIRTY_REPO=\"dirty\" -DPJSIP_MAX_PKT_LEN=8000 -DPJ_AUTOCONF=1 -g -fno-omit-frame-pointer -Wall -Wextra -Wnon-virtual-dtor -Wno-deprecated -Wno-deprecated-declarations -Wno-unknown-pragmas -Wformat=2 -O0 -I../../src -I./src -I/gnu/store/da6ikq281d235hvb1cil2ls3iq80ni2m-guile-3.0.9/include/guile/3.0 -MT src/bindings/bindings.lo -MD -MP -MF src/bindings/.deps/bindings.Tpo -c src/bindings/bindings.cpp -o src/bindings/bindings.o >/dev/null 2>&1
In file included from ./src/bindings/bindings.h:27,
from src/bindings/signal.cpp:42:
./src/utils.h: In instantiation of ‘scm_unused_struct* pack_to_guile(Args ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<unsigned char, std::allocator<unsigned char> >, long int}; SCM = scm_unused_struct*]’:
./src/utils.h:147:31: required from ‘scm_unused_struct* apply_to_guile(SCM, Args ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<unsigned char, std::allocator<unsigned char> >, long int}; SCM = scm_unused_struct*]’
src/bindings/signal.cpp:83:37: required from ‘void Handler<Args>::doExecuteInGuile(Args ...) [with Args = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::vector<unsigned char, std::allocator<unsigned char> >&, long int}]’
src/bindings/signal.cpp:103:37: required from ‘static void* Handler<Args>::executeInGuile(void*) [with Args = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::vector<unsigned char, std::allocator<unsigned char> >&, long int}]’
src/bindings/signal.cpp:117:23: required from ‘void Handler<Args>::execute(Args ...) [with Args = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::vector<unsigned char, std::allocator<unsigned char> >&, long int}]’
src/bindings/signal.cpp:159:24: required from ‘void add_handler(std::map<std::__cxx11::basic_string<char>, std::shared_ptr<libjami::CallbackWrapperBase> >&, const char*) [with T = libjami::ConfigurationSignal::IncomingTrustRequest; Args = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::vector<unsigned char, std::allocator<unsigned char> >&, long int}]’
src/bindings/signal.cpp:317:24: required from here
./src/utils.h:129:40: error: call of overloaded ‘to_guile(long int&)’ is ambiguous
129 | std::vector<SCM> values = {to_guile(args)...};
| ~~~~~~~~^~~~~~
./src/utils.h:28:1: note: candidate: ‘scm_unused_struct* to_guile(bool)’
28 | to_guile(bool b)
| ^~~~~~~~
./src/utils.h:40:1: note: candidate: ‘scm_unused_struct* to_guile(uint8_t)’
40 | to_guile(uint8_t x)
| ^~~~~~~~
./src/utils.h:46:1: note: candidate: ‘scm_unused_struct* to_guile(uint16_t)’
46 | to_guile(uint16_t x)
| ^~~~~~~~
./src/utils.h:52:1: note: candidate: ‘scm_unused_struct* to_guile(uint32_t)’
52 | to_guile(uint32_t x)
| ^~~~~~~~
./src/utils.h:58:1: note: candidate: ‘scm_unused_struct* to_guile(uint64_t)’
58 | to_guile(uint64_t x)
| ^~~~~~~~
./src/utils.h:64:1: note: candidate: ‘scm_unused_struct* to_guile(int8_t)’
64 | to_guile(int8_t x)
| ^~~~~~~~
./src/utils.h:70:1: note: candidate: ‘scm_unused_struct* to_guile(int16_t)’
70 | to_guile(int16_t x)
| ^~~~~~~~
./src/utils.h:76:1: note: candidate: ‘scm_unused_struct* to_guile(int32_t)’
76 | to_guile(int32_t x)
| ^~~~~~~~
./src/utils.h:82:1: note: candidate: ‘scm_unused_struct* to_guile(int64_t)’
82 | to_guile(int64_t x)
| ^~~~~~~~
./src/utils.h:88:1: note: candidate: ‘scm_unused_struct* to_guile(double)’
88 | to_guile(double x)
| ^~~~~~~~
./src/utils.h:129:22: error: could not convert ‘{<expression error>}’ from ‘<brace-enclosed initializer list>’ to ‘std::vector<scm_unused_struct*>’
129 | std::vector<SCM> values = {to_guile(args)...};
| ^~~~~~
| |
| <brace-enclosed initializer list>
make[3]: *** [Makefile:652: src/bindings/signal.lo] Error 1
make[3]: Leaving directory '/tmp/guix-build-libjami-20230619.1.drv-0/jami-20230619.1/daemon/test/agent'
make[2]: *** [Makefile:458: all-recursive] Error 1
make[2]: Leaving directory '/tmp/guix-build-libjami-20230619.1.drv-0/jami-20230619.1/daemon/test'
make[1]: *** [Makefile:593: all-recursive] Error 1
make[1]: Leaving directory '/tmp/guix-build-libjami-20230619.1.drv-0/jami-20230619.1/daemon'
make: *** [Makefile:499: all] Error 2
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("-j" "8" "V=1") exit-status: 2 term-signal: #f stop-signal: #f>
phase `build' failed after 576.2 seconds
command "make" "-j" "8" "V=1" failed with status 2
```
The full build log can be seen at: https://bordeaux.guix.gnu.org/build/1b4804ec-87df-4a7c-bd37-aab493e3bca7/loghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/887no video and audio in android - iOS call2023-12-27T17:50:47ZKateryna Kostiukno video and audio in android - iOS callWhen android and iOS are on LTE, there is no media in the call when the client that receives the call has TURN disabled.When android and iOS are on LTE, there is no media in the call when the client that receives the call has TURN disabled.Kateryna KostiukKateryna Kostiukhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/886Blocking contact does not work if you re-enable your own account after changi...2024-01-29T21:44:28ZElysBlocking contact does not work if you re-enable your own account after changing "allow calls from unknown contacts"Steps to reproduce (always using Jami accounts):
You have two contacts: Person A (uses desktop and useraccount1); Person B (uses Android and useraccount2)
* Person A has Person B in the contact list (and the other direction: Person B h...Steps to reproduce (always using Jami accounts):
You have two contacts: Person A (uses desktop and useraccount1); Person B (uses Android and useraccount2)
* Person A has Person B in the contact list (and the other direction: Person B has Person A in the contact list)
* Now Person A blocks Person B (settings "allow calls from unknown contacts" enabled)
* Person B can't make a call (B -\> A) anymore
HOWEVER:
* Now Person A disables "allow calls from unknown contacts" and after a few seconds also disables her own account
* Now Person A enables her own account and after a few second ENABLES "allow calls from unknown contacts"
* Now Person B makes a call (B -\> A)
* Suddenly Person A will receive the call and the blocked Person A is shown many times under "blocked contacts"
* Person A will view the chatview but Person B will never be shown in the contact list
* Person B can make a call anytime and Person A will receive it - receiving text messages doesn't work? - However the other direction is not possible: If Person A wants to make a video or audio call nothing will happen - the option for sending text messages isn't even shown.
---
If now Person A goes to settings and wants to DISABLE "allow calls from unknown contacts" Jami will crash ((also/only) after a sucessful call?)
* Jami on desktop crashes
* open Jami on desktop again
* Make a call Android -\> Desktop
* Android will show "ringing" although you'll never receive any call?Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/883complete C ABI for plugins (then Python/JS)2023-11-20T14:09:49ZLéo Banno-Cloutiercomplete C ABI for plugins (then Python/JS)I tried writing a Jami plugin in Rust, and so far, the plugin starts as expected, however I have a hard time invoking services such as `getPluginPreferences` and `getPluginAccPreferences`.
`invokeService` takes `(const JAMI_PluginAPI* a...I tried writing a Jami plugin in Rust, and so far, the plugin starts as expected, however I have a hard time invoking services such as `getPluginPreferences` and `getPluginAccPreferences`.
`invokeService` takes `(const JAMI_PluginAPI* api, const char* name, void* data)` as parameters, and the `void *` data variable gets casted to c++ types, such as `std::string` and `std::map`, which makes the ABI not completely C compatible. I was able to make `getPluginDataPath` work by changing `static_cast<std::string>` to `static_cast<char*>`, and I'll see how far I can go without too much hassle.Léo Banno-CloutierLéo Banno-Cloutierhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/879Crash (desktop client) if two peers make a call at the same time2023-07-26T18:58:38ZElysCrash (desktop client) if two peers make a call at the same timeusing the newest beta version of Jami
Windows 10 (device 1, username 1) <-> Android (device 2, username 2)
always possible to reproduce
Steps to reproduce:
- Launch Jami (all devices)
- Now make a video call Android -> Windows 10
- (B...using the newest beta version of Jami
Windows 10 (device 1, username 1) <-> Android (device 2, username 2)
always possible to reproduce
Steps to reproduce:
- Launch Jami (all devices)
- Now make a video call Android -> Windows 10
- (BEFORE the Windows 10 user will receive the call) After that immediately make a video call Windows 10 -> Android
- Jami on Android will receive the call
- After that - the desktop client crashes
Not sure what will happen if you try to reproduce the other directionhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/874Unit test - mock camera to allow to use video in unit tests2023-07-17T12:11:22ZSébastien BlinUnit test - mock camera to allow to use video in unit testsFor now we don't check the video from the unit tests as there is generally no camera on the build machinesFor now we don't check the video from the unit tests as there is generally no camera on the build machineshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/872[SIP-Account] (Audio-)Call recording doesn't work2024-01-26T17:09:13ZElys[SIP-Account] (Audio-)Call recording doesn't workusing Jami (Beta): 202401121257 on Windows
- Make a call (SIM-call -\> SIP-Account (Jami))
- Now record the call
- After the call you view the recordings: However if you want to listen to the audio recording - even if the file should ha...using Jami (Beta): 202401121257 on Windows
- Make a call (SIM-call -\> SIP-Account (Jami))
- Now record the call
- After the call you view the recordings: However if you want to listen to the audio recording - even if the file should have a duration of 20 seconds - every music player can only "play" the file 0:00 seconds.
Note:
- NO Issues if I recorded a Jami call (Jami account 1 (Android) -\> Jami account 2(Windows 10)) - and it does NOT matter if I record an audio call or a video call
EDIT: Not sure if SIP-video call recording works (with / without sound) or combined with Jami accounts.
Maybe if you or other peers enable / disable your/their camera and/or enable/disable your/their own microphones during the call you also get recording issues? https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/872#note_44414https://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/828Multiple host video is broken2023-03-28T14:54:49ZSébastien BlinMultiple host video is broken# Scenario
+ Alice got a conference with Bob and Carla
+ Carla adds David to the conference (Alice and Carla are now a host)
# Current result
+ Video & maximize is broken
# Expected
We should be able to maximize and see the 4 videos# Scenario
+ Alice got a conference with Bob and Carla
+ Carla adds David to the conference (Alice and Carla are now a host)
# Current result
+ Video & maximize is broken
# Expected
We should be able to maximize and see the 4 videoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/827Segv when stopping screen-sharing in a video conference2023-04-14T15:06:21ZSébastien BlinSegv when stopping screen-sharing in a video conference# Scenario
+ Call a rdv
+ Start screen sharing
+ Stop screen sharing
# Bug 1
+ Crash from sender
```
(gdb) bt
#0 0x00007fffe84c63f4 in std::_Rb_tree_increment(std::_Rb_tree_node_base const*) () at /lib64/libstdc++.so.6
#1 0x00007fff...# Scenario
+ Call a rdv
+ Start screen sharing
+ Stop screen sharing
# Bug 1
+ Crash from sender
```
(gdb) bt
#0 0x00007fffe84c63f4 in std::_Rb_tree_increment(std::_Rb_tree_node_base const*) () at /lib64/libstdc++.so.6
#1 0x00007fffe90f4ce3 in std::_Rb_tree_const_iterator<jami::Observable<std::shared_ptr<libjami::MediaFrame> >*>::operator++() (this=0x7fffffff6c98) at /usr/include/c++/12/bits/stl_tree.h:368
#2 0x00007fffe90f3f7c in jami::MediaRecorder::StreamObserver::~StreamObserver() (this=0x7ffec8cb8660, __in_chrg=<optimized out>) at media/media_recorder.cpp:74
#3 0x00007fffe90f3ffc in jami::MediaRecorder::StreamObserver::~StreamObserver() (this=0x7ffec8cb8660, __in_chrg=<optimized out>) at media/media_recorder.cpp:77
#4 0x00007fffe90f67f0 in std::default_delete<jami::MediaRecorder::StreamObserver>::operator()(jami::MediaRecorder::StreamObserver*) const (this=0x7ffec8cbbf30, __ptr=0x7ffec8cb8660) at /usr/include/c++/12/bits/unique_ptr.h:95
#5 0x00007fffe90f5584 in std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> >::~unique_ptr() (this=0x7ffec8cbbf30, __in_chrg=<optimized out>)
at /usr/include/c++/12/bits/unique_ptr.h:396
#6 0x00007fffe90f98f2 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >::~pair() (this=0x7ffec8cbbf10, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/stl_pair.h:185
#7 0x00007fffe90f991e in std::__new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >*) (this=0x5410250, __p=0x7ffec8cbbf10) at /usr/include/c++/12/bits/new_allocator.h:181
#8 0x00007fffe90f938f in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >*) (__a=..., __p=0x7ffec8cbbf10) at /usr/include/c++/12/bits/alloc_traits.h:535
#9 0x00007fffe90f8b7d in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::_M_destroy_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >*) (this=0x5410250, __p=0x7ffec8cbbef0)
at /usr/include/c++/12/bits/stl_tree.h:623
#10 0x00007fffe90f771d in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::_M_drop_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >*) (this=0x5410250, __p=0x7ffec8cbbef0)
at /usr/include/c++/12/bits/stl_tree.h:631
#11 0x00007fffe90f805c in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::_M_erase_aux(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >)
(this=0x5410250, __position={first = "v:remote", second = std::unique_ptr<jami::MediaRecorder::StreamObserver> = {get() = 0x7ffec8cb8660}}) at /usr/include/c++/12/bits/stl_tree.h:2495
#12 0x00007fffe90f6aab in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >)
(this=0x5410250, __position={first = "v:remote", second = std::unique_ptr<jami::MediaRecorder::StreamObserver> = {get() = 0x7ffec8cb8660}}) at /usr/include/c++/12/bits/stl_tree.h:1209
#13 0x00007fffe90f57a7 in std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >) (this=0x5410250, __position={first = "v:remote", second = std::unique_ptr<jami::MediaRecorder::StreamObserver> = {get() = 0x7ffec8cb8660}})
at /usr/include/c++/12/bits/stl_map.h:1086
#14 0x00007fffe90ee5e1 in jami::MediaRecorder::removeStream(jami::MediaStream const&) (this=0x54101a0, ms=...) at media/media_recorder.cpp:294
#15 0x00007fffe917c30b in jami::video::VideoRtpSession::deinitRecorder() (this=0xa2b12e0) at ./media/video/video_rtp_session.cpp:779
#16 0x00007fffe917844e in jami::video::VideoRtpSession::~VideoRtpSession() (this=0xa2b12e0, __in_chrg=<optimized out>) at ./media/video/video_rtp_session.cpp:80
#17 0x00007fffe9219a18 in std::_Destroy<jami::video::VideoRtpSession>(jami::video::VideoRtpSession*) (__pointer=0xa2b12e0) at /usr/include/c++/12/bits/stl_construct.h:151
#18 0x00007fffe92199bc in std::allocator_traits<std::allocator<void> >::destroy<jami::video::VideoRtpSession>(std::allocator<void>&, jami::video::VideoRtpSession*) (__p=0xa2b12e0) at /usr/include/c++/12/bits/alloc_traits.h:648
#19 0x00007fffe9219715 in std::_Sp_counted_ptr_inplace<jami::video::VideoRtpSession, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() (this=0xa2b12d0) at /usr/include/c++/12/bits/shared_ptr_base.h:613
#20 0x00007fffe8ca8f87 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() (this=0xa2b12d0) at /usr/include/c++/12/bits/shared_ptr_base.h:346
#21 0x00007fffe8cac3e5 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() (this=0x88f1b38, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/shared_ptr_base.h:1071
--Type <RET> for more, q to quit, c to continue without paging--
#22 0x00007fffe91be4b2 in std::__shared_ptr<jami::RtpSession, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() (this=0x88f1b30, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/shared_ptr_base.h:1524
#23 0x00007fffe91c3f4c in std::shared_ptr<jami::RtpSession>::~shared_ptr() (this=0x88f1b30, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/shared_ptr.h:175
#24 0x00007fffe920e3d6 in jami::SIPCall::RtpStream::~RtpStream() (this=0x88f1b30, __in_chrg=<optimized out>) at ./sip/sipcall.h:88
#25 0x00007fffe9216931 in std::_Destroy<jami::SIPCall::RtpStream>(jami::SIPCall::RtpStream*) (__pointer=0x88f1b30) at /usr/include/c++/12/bits/stl_construct.h:151
#26 0x00007fffe921597c in std::_Destroy_aux<false>::__destroy<jami::SIPCall::RtpStream*>(jami::SIPCall::RtpStream*, jami::SIPCall::RtpStream*) (__first=0x88f1b30, __last=0x88f1b70) at /usr/include/c++/12/bits/stl_construct.h:163
#27 0x00007fffe9213d02 in std::_Destroy<jami::SIPCall::RtpStream*>(jami::SIPCall::RtpStream*, jami::SIPCall::RtpStream*) (__first=0x88f1b30, __last=0x88f1b70) at /usr/include/c++/12/bits/stl_construct.h:196
#28 0x00007fffe9211533 in std::_Destroy<jami::SIPCall::RtpStream*, jami::SIPCall::RtpStream>(jami::SIPCall::RtpStream*, jami::SIPCall::RtpStream*, std::allocator<jami::SIPCall::RtpStream>&) (__first=0x88f1b30, __last=0x88f1b70)
at /usr/include/c++/12/bits/alloc_traits.h:850
#29 0x00007fffe92122d1 in std::vector<jami::SIPCall::RtpStream, std::allocator<jami::SIPCall::RtpStream> >::_M_erase_at_end(jami::SIPCall::RtpStream*) (this=0x5612378, __pos=0x88f1b30) at /usr/include/c++/12/bits/stl_vector.h:1932
#30 0x00007fffe920fc31 in std::vector<jami::SIPCall::RtpStream, std::allocator<jami::SIPCall::RtpStream> >::resize(unsigned long) (this=0x5612378, __new_size=2) at /usr/include/c++/12/bits/stl_vector.h:1013
#31 0x00007fffe91fca76 in jami::SIPCall::updateAllMediaStreams(std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> > const&, bool)
(this=0x5611fa0, mediaAttrList=std::vector of length 2, capacity 2 = {...}, isRemote=false) at ./sip/sipcall.cpp:2446
#32 0x00007fffe91fd4fc in jami::SIPCall::requestMediaChange(std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&) (this=0x5611fa0, mediaList=std::vector of length 2, capacity 2 = {...}) at ./sip/sipcall.cpp:2591
#33 0x00007fffe8dad0e8 in libjami::requestMediaChange(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&) (accountId="8205d13d4d847ca4", callId="5271111606844474", mediaList=std::vector of length 2, capacity 2 = {...}) at client/callmanager.cpp:77
#34 0x000000000055f78f in CallManagerInterface::requestMediaChange(QString const&, QString const&, QList<QMap<QString, QString> > const&) (accountId=..., callId=..., mediaList=<optimized out>, this=<optimized out>)
at /home/amarok/Projects/jami/client-qt/src/libclient/dbus/../qtwrapper/callmanager_wrap.h:426
#35 0x0000000000569a12 in lrc::api::CallModel::removeMedia(QString const&, QString const&, QString const&, bool) (this=this@entry=0x247e070, callId=..., mediaType=..., type=..., muteCamera=muteCamera@entry=false)
at /home/amarok/Projects/jami/client-qt/src/libclient/callmodel.cpp:658
#36 0x00000000004bda4a in AvAdapter::stopSharing(QString const&) (this=<optimized out>, source=<optimized out>) at /home/amarok/Projects/jami/client-qt/src/app/avadapter.cpp:299
#37 0x0000000000469bc0 in AvAdapter::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=_o@entry=0x24fc8e0, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=25, _a=_a@entry=0x7fffffff7d48)
at /home/amarok/Projects/jami/client-qt/build/jami_autogen/ISMKEKEPX5/moc_avadapter.cpp:268
#38 0x0000000000472c60 in AvAdapter::qt_metacall(QMetaObject::Call, int, void**) (this=0x24fc8e0, _c=QMetaObject::InvokeMetaMethod, _id=25, _a=0x7fffffff7d48)
at /home/amarok/Projects/jami/client-qt/build/jami_autogen/ISMKEKEPX5/moc_avadapter.cpp:395
#39 0x00007fffec538fc3 in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#40 0x00007fffec42404c in CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#41 0x00007fffec42506d in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#42 0x00007fffec478bbc in QV4::Moth::VME::interpret(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*, char const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#43 0x00007fffec47ebbf in QV4::Moth::VME::exec(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#44 0x00007fffec3d5fda in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#45 0x00007fffec3d61b1 in QV4::Function::call(QV4::Value const*, void**, QMetaType const*, int, QV4::ExecutionContext const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#46 0x00007fffec500933 in QQmlJavaScriptExpression::evaluate(void**, QMetaType const*, int) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#47 0x00007fffec4b9587 in QQmlBoundSignalExpression::evaluate(void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#48 0x00007fffec4ba028 in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#49 0x00007fffec52468a in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#50 0x00007fffea9c1074 in void doActivate<false>(QObject*, int, void**) () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#51 0x00007fffec5c91f6 in QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#52 0x00007fffec538fc3 in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#53 0x00007fffec422b31 in CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#54 0x00007fffec42506d in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#55 0x00007fffec478bbc in QV4::Moth::VME::interpret(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*, char const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#56 0x00007fffec47ebbf in QV4::Moth::VME::exec(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#57 0x00007fffec3d5fda in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#58 0x00007fffec3d61b1 in QV4::Function::call(QV4::Value const*, void**, QMetaType const*, int, QV4::ExecutionContext const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#59 0x00007fffec500933 in QQmlJavaScriptExpression::evaluate(void**, QMetaType const*, int) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#60 0x00007fffec4b9587 in QQmlBoundSignalExpression::evaluate(void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#61 0x00007fffec4ba028 in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
```
# Bug 2
+ Conference show 2 rdv-***
# Observation
https://review.jami.net/c/jami-daemon/+/23689 seems to be a regression fromKateryna KostiukKateryna Kostiukhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/826problem connecting tio SIP account on startup2023-11-12T14:17:59Ztomo90problem connecting tio SIP account on startupI have configured a simple SIP account. The application does not automatically log in to the account when it starts. However, all I need to do to connect is go into the settings and click in the name settings field, for example, and then...I have configured a simple SIP account. The application does not automatically log in to the account when it starts. However, all I need to do to connect is go into the settings and click in the name settings field, for example, and then exit the settings and the application will connect to the account immediately. It doesn't make any sense to me.
Generally speaking, it will connect to the account after editing any unrelated settings.
Furthermore, the application does not seem to save some of the settings i make. After quitting, the switches and settings are at their original values. This is not a problem with, for example, write permissions to the configuration file, because some of the settings made are preserved and some are not when the application is restarted.
You can see for yourself that on the attached video.
![vid](/uploads/e0e18d538065a0cffa977629dbfcf594/vid.mp4)Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/824test suite fails2024-01-08T00:45:49ZMaxim Cournoyertest suite failsHello,
The test suite is not currently usable:
1. Some tests fail non-deterministically (or always).
2. It takes about 1 h to run, which is too long.
Reproducer:
1. Run `make check`
Without the above patch applied:
```
make check-TE...Hello,
The test suite is not currently usable:
1. Some tests fail non-deterministically (or always).
2. It takes about 1 h to run, which is too long.
Reproducer:
1. Run `make check`
Without the above patch applied:
```
make check-TESTS
make[3]: Entering directory '/tmp/guix-build-libjami-20230221.0.drv-0/jami-20230221.0/daemon/test/unitTest.s ' re
make[4]: Entering directory '/tmp/guix-build-libjami-20230221.0.drv-0/jami-20230221.0/daemon/test/unitTest/g ' ag
RUNNING: ut_certstore
RUNNING: ut_account_factory
RUNNING: ut_account_archive mi
RUNNING: ut_migration
RUNNING: ut_string_utils fl
RUNNING: ut_scheduler
RUNNING: ut_map_utils
RUNNING: ut_fileutils .s
RUNNING: ut_base64 re
RUNNING: ut_video_input /g
RUNNING: ut_media_encoder xt
RUNNING: ut_media_filter
RUNNING: ut_utf8_utils
RUNNING: ut_media_decoder
RUNNING: ut_media_player
RUNNING: ut_resampler
RUNNING: ut_video_scaler -2
RUNNING: ut_media_frame
RUNNING: ut_audio_frame_resizer
RUNNING: ut_recorder
RUNNING: ut_conference
RUNNING: ut_connectionManager
RUNNING: ut_fileTransfer l:
RUNNING: ut_call
PASS: ut_utf8_utils
PASS: ut_map_utils
PASS: ut_audio_frame_resizer
PASS: ut_string_utils
PASS: ut_fileutils
PASS: ut_base64 i-
RUNNING: ut_conversationRepository
RUNNING: ut_media_negotiation fl
RUNNING: ut_conversation
RUNNING: ut_auto_answer
RUNNING: ut_hold_resume .s
RUNNING: ut_conversation_call re
PASS: ut_media_frame /g
PASS: ut_resampler xt
PASS: ut_video_scaler mi
PASS: ut_media_filter
PASS: ut_media_decoder
RUNNING: ut_conversationRequest
RUNNING: ut_conversationMembersEvent fl
RUNNING: ut_ice
RUNNING: ut_syncHistory
RUNNING: ut_revoke .s
PASS: ut_video_input re
RUNNING: ut_ice_sdp_parser /g
PASS: ut_media_player ag
RUNNING: ut_ice_media_cand_exchange sc
FAIL: ut_scheduler ):
FAIL: ut_ice_sdp_parser -2
RUNNING: ut_sip_srtp fl
RUNNING: ut_sip_basic_calls
FAIL: ut_sip_srtp
PASS: ut_media_encoder .s
RUNNING: ut_plugins re
PASS: ut_certstore /g
FAIL: ut_sip_basic_calls ag
FAIL: ut_ice
FAIL: ut_account_factory
FAIL: ut_hold_resume mi
FAIL: ut_ice_media_cand_exchange
FAIL: ut_auto_answer fl
FAIL: ut_revoke
FAIL: ut_migration
FAIL: ut_media_negotiation .s
FAIL: ut_recorder re
FAIL: ut_conversation_call /g
FAIL: ut_account_archive xt
FAIL: ut_call
FAIL: ut_plugins
FAIL: ut_fileTransfer
FAIL: ut_conversationRepository
[...] (takes a very long time)
```
The patch at https://review.jami.net/c/jami-daemon/+/22670 has the right idea: separating quick unit tests from more expensive integration tests, but its implementation should be improved, so that we have two distinct check targets (`make check` for unit tests, `make check-integration` for integration tests).