jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2023-11-23T19:59:28Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/922Accepting stuck in syncing for a long time2023-11-23T19:59:28ZSébastien BlinAccepting stuck in syncing for a long time# Scenario
+ Alice adds Bob
+ Bob receives the request
+ Alice goes offline
+ Bob accepts (syncing)
+ After 1 min Alice goes online
# Current result
Stuck in syncing
# Expected
Conversation must sync# Scenario
+ Alice adds Bob
+ Bob receives the request
+ Alice goes offline
+ Bob accepts (syncing)
+ After 1 min Alice goes online
# Current result
Stuck in syncing
# Expected
Conversation must syncSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/917Swarm-call: bugguy state if join call in audio-only2023-11-17T16:28:47ZSébastien BlinSwarm-call: bugguy state if join call in audio-only# Scenario
+ Host a video call in a swarm
+ With another device join in audio
# Current result
+ Stuck in calling, media not negotiated
# Expected
+ Call should work with muted video# Scenario
+ Host a video call in a swarm
+ With another device join in audio
# Current result
+ Stuck in calling, media not negotiated
# Expected
+ Call should work with muted videoSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/916Swarm-call: sometimes doesn't answer2023-11-17T16:28:52ZSébastien BlinSwarm-call: sometimes doesn't answer# Scenario
none identified
# Current result
Sometimes, caller stays in calling (but a swarm-call should be automatically answered by the host)# Scenario
none identified
# Current result
Sometimes, caller stays in calling (but a swarm-call should be automatically answered by the host)Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/915conference deadlock when media changed2023-11-17T16:29:00ZKateryna Kostiukconference deadlock when media changed```
* thread #10
frame #0: 0x00000001c5fa3f3c libsystem_kernel.dylib`__psynch_mutexwait + 8
frame #1: 0x00000001d5538620 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_wait + 80
frame #2: 0x00000001d552f304 libsystem_p...```
* thread #10
frame #0: 0x00000001c5fa3f3c libsystem_kernel.dylib`__psynch_mutexwait + 8
frame #1: 0x00000001d5538620 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_wait + 80
frame #2: 0x00000001d552f304 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_slow$VARIANT$armv81 + 244
frame #3: 0x00000001020cfc4c Ring`pj_mutex_lock + 32
frame #4: 0x00000001020d7154 Ring`pj_grp_lock_acquire + 60
frame #5: 0x0000000101d41b28 Ring`pjsip_dlg_create_request + 80
* frame #6: 0x000000010164dd54 Ring`jami::SIPCall::sendSIPInfo(this=0x0000000109ed3618, body="<?xml version=\"1.0\" encoding=\"utf-8\" ?><media_control><vc_primitive> <stream_id>1</stream_id><to_encoder><picture_fast_update/></to_encoder></vc_primitive></media_control>", subtype="media_control+xml") at sipcall.cpp:631:9
frame #7: 0x000000010164e3ec Ring`jami::SIPCall::requestKeyframe(this=0x0000000109ed3618, streamIdx=1) at sipcall.cpp:687:9
frame #8: 0x0000000101659bbc Ring`jami::SIPCall::updateRemoteMedia(this=0x0000000109ed3618) at sipcall.cpp:2297:17
frame #9: 0x00000001016979b0 Ring`jami::SIPCall::onMediaNegotiationComplete(this=0x0000000282b3a408)::$_40::operator()() const at sipcall.cpp:2712:24
frame #10: 0x0000000101697780 Ring`void jami::runOnMainThread<jami::SIPCall::onMediaNegotiationComplete()::$_40>(this=0x0000000282b3a408)::$_40&&, char const*, unsigned int)::'lambda'()::operator()() at manager.h:909:87
frame #11: 0x000000010169775c Ring`decltype(__f=0x0000000282b3a408)::$_40>()()) std::__1::__invoke[abi:v15006]<void jami::runOnMainThread<jami::SIPCall::onMediaNegotiationComplete()::$_40>(jami::SIPCall::onMediaNegotiationComplete()::$_40&&, char const*, unsigned int)::'lambda'()&>(jami::SIPCall::onMediaNegotiationComplete()::$_40&&) at invoke.h:394:23
frame #12: 0x0000000101697714 Ring`void std::__1::__invoke_void_return_wrapper<void, true>::__call<void jami::runOnMainThread<jami::SIPCall::onMediaNegotiationComplete(__args=0x0000000282b3a408)::$_40>(jami::SIPCall::onMediaNegotiationComplete()::$_40&&, char const*, unsigned int)::'lambda'()&>(void jami::runOnMainThread<jami::SIPCall::onMediaNegotiationComplete()::$_40>(jami::SIPCall::onMediaNegotiationComplete()::$_40&&, char const*, unsigned int)::'lambda'()&) at invoke.h:479:9
frame #13: 0x00000001016976f0 Ring`std::__1::__function::__alloc_func<void jami::runOnMainThread<jami::SIPCall::onMediaNegotiationComplete()::$_40>(jami::SIPCall::onMediaNegotiationComplete()::$_40&&, char const*, unsigned int)::'lambda'(), std::__1::allocator<void jami::runOnMainThread<jami::SIPCall::onMediaNegotiationComplete()::$_40>(jami::SIPCall::onMediaNegotiationComplete()::$_40&&, char const*, unsigned int)::'lambda'()>, void ()>::operator(this=0x0000000282b3a408)[abi:v15006]() at function.h:185:16
frame #14: 0x00000001016962c4 Ring`std::__1::__function::__func<void jami::runOnMainThread<jami::SIPCall::onMediaNegotiationComplete()::$_40>(jami::SIPCall::onMediaNegotiationComplete()::$_40&&, char const*, unsigned int)::'lambda'(), std::__1::allocator<void jami::runOnMainThread<jami::SIPCall::onMediaNegotiationComplete()::$_40>(jami::SIPCall::onMediaNegotiationComplete()::$_40&&, char const*, unsigned int)::'lambda'()>, void ()>::operator(this=0x0000000282b3a400)() at function.h:359:12
frame #15: 0x0000000101030b98 Ring`std::__1::__function::__value_func<void ()>::operator(this=0x0000000282b3a400)[abi:v15006]() const at function.h:512:16
frame #16: 0x0000000101030b48 Ring`std::__1::function<void ()>::operator(this= Lambda in File manager.h at Line 909)() const at function.h:1197:12
frame #17: 0x000000010105a05c Ring`jami::ScheduledExecutor::loop(this=0x0000000108a4dc20) at scheduled_executor.cpp:145:13
frame #18: 0x000000010105bd78 Ring`jami::ScheduledExecutor::ScheduledExecutor(this=0x000000028242ede8)::$_0::operator()() const at scheduled_executor.cpp:35:13
frame #19: 0x000000010105bd00 Ring`decltype(__f=0x000000028242ede8)::$_0>()()) std::__1::__invoke[abi:v15006]<jami::ScheduledExecutor::ScheduledExecutor(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(jami::ScheduledExecutor::ScheduledExecutor(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&&) at invoke.h:394:23
frame #20: 0x000000010105bc9c Ring`void std::__1::__thread_execute[abi:v15006]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, jami::ScheduledExecutor::ScheduledExecutor(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(__t=size=2, (null)=__tuple_indices<> @ 0x000000016fbd6f7f)::$_0>&, std::__1::__tuple_indices<>) at thread:290:5
frame #21: 0x000000010105b4fc Ring`void* std::__1::__thread_proxy[abi:v15006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, jami::ScheduledExecutor::ScheduledExecutor(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(__vp=0x000000028242ede0) at thread:301:5
frame #22: 0x00000001d552f0ec libsystem_pthread.dylib`_pthread_start + 116
(lldb) bt
* thread #80
frame #0: 0x00000001c5fa3f3c libsystem_kernel.dylib`__psynch_mutexwait + 8
frame #1: 0x00000001d5538620 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_wait + 80
frame #2: 0x00000001d552f304 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_slow$VARIANT$armv81 + 244
frame #3: 0x0000000198df832c libc++.1.dylib`std::__1::recursive_mutex::lock() + 12
frame #4: 0x0000000101078be0 Ring`std::__1::lock_guard<std::__1::recursive_mutex>::lock_guard[abi:v15006](this=0x00000001722a9c08, __m=0x0000000109ed3700) at __mutex_base:94:27
frame #5: 0x00000001010789a8 Ring`std::__1::lock_guard<std::__1::recursive_mutex>::lock_guard[abi:v15006](this=0x00000001722a9c08, __m=0x0000000109ed3700) at __mutex_base:94:21
* frame #6: 0x000000010165c650 Ring`jami::SIPCall::getMediaAttributeList(this=0x0000000109ed3618) const at sipcall.cpp:2652:43
frame #7: 0x000000010165c8f4 Ring`jami::SIPCall::getAudioStreams(this=0x0000000109ed3618) const at sipcall.cpp:2664:19
frame #8: 0x0000000100f524a8 Ring`jami::Conference::bindParticipant(this=0x0000000110c8b218, participant_id="8812619413191767") at conference.cpp:1000:52
frame #9: 0x000000010165f5b0 Ring`jami::SIPCall::enterConference(this=0x0000000109ed3618, conference=std::__1::shared_ptr<jami::Conference>::element_type @ 0x0000000110c8b218 strong=3 weak=7) at sipcall.cpp:3161:17
frame #10: 0x0000000100f4d104 Ring`jami::Conference::handleMediaChangeRequest(this=0x0000000110c8b218, call=std::__1::shared_ptr<jami::Call>::element_type @ 0x0000000109ed3618 strong=9 weak=19, remoteMediaList=size=2) at conference.cpp:706:11
frame #11: 0x000000010165e1d0 Ring`jami::SIPCall::onReceiveReinvite(this=0x0000000109ed3618, offer=0x0000000110ce4c28, rdata=0x0000000110965fe8) at sipcall.cpp:2953:15
frame #12: 0x00000001016c203c Ring`jami::reinvite_received_cb(inv=0x000000010989fc28, offer=0x0000000110ce4c28, rdata=0x0000000110965fe8) at sipvoiplink.cpp:1002:26
frame #13: 0x0000000101dfba24 Ring`inv_on_state_confirmed + 1572
frame #14: 0x0000000101df9b84 Ring`mod_inv_on_tsx_state + 80
frame #15: 0x0000000101d43534 Ring`pjsip_dlg_on_tsx_state + 172
frame #16: 0x0000000101d3d750 Ring`tsx_set_state + 488
frame #17: 0x0000000101d3ce78 Ring`tsx_on_state_null + 56
frame #18: 0x0000000101d3db5c Ring`pjsip_tsx_recv_msg + 144
frame #19: 0x0000000101d42bf0 Ring`pjsip_dlg_on_rx_request + 796
frame #20: 0x0000000101d446fc Ring`mod_ua_on_rx_request + 540
frame #21: 0x0000000101d2d08c Ring`pjsip_endpt_process_rx_data + 452
frame #22: 0x0000000101d2c8ec Ring`endpt_on_rx_msg + 336
frame #23: 0x0000000101d33f70 Ring`pjsip_tpmgr_receive_packet + 1008
frame #24: 0x00000001011518e8 Ring`jami::tls::ChanneledSIPTransport::start(this=0x000000010f484808, buf="\xeba\x9e\v\xd8M\xb7\x87^\x9cҟ\x8b\U0000001f\x9f\U00000010\x9c\xb1\x83^\x99邛\xd0\xe4\xfe?\xebB\x9bi\xf6\b*'\xf7\xe7\U00000014\U000000116_\xee\xa2\U0000001d\xed\x91\xc2\xd8\U00000012\xf9=\xf5/\x96\U0000001a\xe70\xf3B\x82C\xd7\xcaV;ߖ\xfa\U0000001c\x8d\xfa\x80\xf3$\x888\xf8\xc2\xef\U00000005\xe5\xd4\xcbԟ\xd1W\xc3D!\x9f\x98\U00000013\xcf=9\xfe\x8d\x9f\x88VI\U0000001b/\x8b\x85d\xb5\x97", len=1390)::$_3::operator()(unsigned char const*, unsigned long) const at channeled_transport.cpp:172:26
frame #25: 0x000000010115180c Ring`decltype(__f=0x000000010f484808, __args=0x00000001722aad58, __args=0x00000001722aad50)::$_3&>()(std::declval<unsigned char const*>(), std::declval<unsigned long>())) std::__1::__invoke[abi:v15006]<jami::tls::ChanneledSIPTransport::start()::$_3&, unsigned char const*, unsigned long>(jami::tls::ChanneledSIPTransport::start()::$_3&, unsigned char const*&&, unsigned long&&) at invoke.h:394:23
frame #26: 0x00000001011517ac Ring`long std::__1::__invoke_void_return_wrapper<long, false>::__call<jami::tls::ChanneledSIPTransport::start(__args=0x000000010f484808, __args=0x00000001722aad58, __args=0x00000001722aad50)::$_3&, unsigned char const*, unsigned long>(jami::tls::ChanneledSIPTransport::start()::$_3&, unsigned char const*&&, unsigned long&&) at invoke.h:470:16
frame #27: 0x0000000101151778 Ring`std::__1::__function::__alloc_func<jami::tls::ChanneledSIPTransport::start()::$_3, std::__1::allocator<jami::tls::ChanneledSIPTransport::start()::$_3>, long (unsigned char const*, unsigned long)>::operator(this=0x000000010f484808, __arg=0x00000001722aad58, __arg=0x00000001722aad50)[abi:v15006](unsigned char const*&&, unsigned long&&) at function.h:185:16
frame #28: 0x00000001011505dc Ring`std::__1::__function::__func<jami::tls::ChanneledSIPTransport::start()::$_3, std::__1::allocator<jami::tls::ChanneledSIPTransport::start()::$_3>, long (unsigned char const*, unsigned long)>::operator(this=0x000000010f484800, __arg=0x00000001722aad58, __arg=0x00000001722aad50)(unsigned char const*&&, unsigned long&&) at function.h:359:12
frame #29: 0x0000000101c49bec Ring`dhtnet::ChannelSocket::onRecv(std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >&&) + 88
frame #30: 0x0000000101c4510c Ring`dhtnet::MultiplexedSocket::Impl::handleChannelPacket(unsigned short, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >&&) + 268
frame #31: 0x0000000101c44348 Ring`dhtnet::MultiplexedSocket::Impl::eventLoop() + 532
frame #32: 0x0000000101c4e2a4 Ring`dhtnet::MultiplexedSocket::Impl::Impl(dhtnet::MultiplexedSocket&, std::__1::shared_ptr<asio::io_context>, dht::Hash<32ul> const&, std::__1::unique_ptr<dhtnet::TlsSocketEndpoint, std::__1::default_delete<dhtnet::TlsSocketEndpoint> >, std::__1::shared_ptr<dht::log::Logger>)::'lambda'()::operator()() const + 44
frame #33: 0x0000000101c4e1ec Ring`void* std::__1::__thread_proxy[abi:v15006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, dhtnet::MultiplexedSocket::Impl::Impl(dhtnet::MultiplexedSocket&, std::__1::shared_ptr<asio::io_context>, dht::Hash<32ul> const&, std::__1::unique_ptr<dhtnet::TlsSocketEndpoint, std::__1::default_delete<dhtnet::TlsSocketEndpoint> >, std::__1::shared_ptr<dht::log::Logger>)::'lambda'()> >(void*) + 52
frame #34: 0x00000001d552f0ec libsystem_pthread.dylib`_pthread_start + 116
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/913heap-use-after free2024-02-09T19:57:02ZSébastien Blinheap-use-after free```
=================================================================
==41866==ERROR: AddressSanitizer: heap-use-after-free on address 0x0002a5258a88 at pc 0x000105383380 bp 0x0003157867b0 sp 0x0003157867a8
READ of size 4 at 0x0002a5258a...```
=================================================================
==41866==ERROR: AddressSanitizer: heap-use-after-free on address 0x0002a5258a88 at pc 0x000105383380 bp 0x0003157867b0 sp 0x0003157867a8
READ of size 4 at 0x0002a5258a88 thread T17074
#0 0x10538337c in stun_on_request_complete+0xc54 (Jami:arm64+0x102a9b37c)
#1 0x10537859c in stun_tsx_on_complete+0x2a8 (Jami:arm64+0x102a9059c)
#2 0x105380240 in retransmit_timer_callback+0x12c (Jami:arm64+0x102a98240)
#3 0x105313d94 in pj_timer_heap_poll+0x468 (Jami:arm64+0x102a2bd94)
#4 0x1046db30c in dhtnet::IceTransport::Impl::handleEvents(unsigned int)+0x110 (Jami:arm64+0x101df330c)
#5 0x1046f6128 in void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, dhtnet::IceTransport::Impl::initIceInstance(dhtnet::IceTransportOptions const&)::$_6>>(void*)+0x154 (Jami:arm64+0x101e0e128)
#6 0x186caf030 in _pthread_start+0x84 (libsystem_pthread.dylib:arm64e+0x7030)
#7 0x186ca9e38 in thread_start+0x4 (libsystem_pthread.dylib:arm64e+0x1e38)
0x0002a5258a88 is located 200 bytes inside of 256-byte region [0x0002a52589c0,0x0002a5258ac0)
freed by thread T17074 here:
#0 0x11162ace0 in wrap_free+0x98 (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x52ce0)
#1 0x10530167c in pj_pool_destroy_int+0xbc (Jami:arm64+0x102a1967c)
#2 0x105302530 in cpool_release_pool+0xec (Jami:arm64+0x102a1a530)
#3 0x105391e58 in dataconn_on_data_read+0x13c (Jami:arm64+0x102aa9e58)
#4 0x1052f18f0 in ioqueue_on_read_complete+0x39c (Jami:arm64+0x102a098f0)
#5 0x1052e154c in ioqueue_dispatch_read_event+0x700 (Jami:arm64+0x1029f954c)
#6 0x1052e6564 in pj_ioqueue_poll+0x900 (Jami:arm64+0x1029fe564)
#7 0x1046db3ec in dhtnet::IceTransport::Impl::handleEvents(unsigned int)+0x1f0 (Jami:arm64+0x101df33ec)
#8 0x1046f6128 in void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, dhtnet::IceTransport::Impl::initIceInstance(dhtnet::IceTransportOptions const&)::$_6>>(void*)+0x154 (Jami:arm64+0x101e0e128)
#9 0x186caf030 in _pthread_start+0x84 (libsystem_pthread.dylib:arm64e+0x7030)
#10 0x186ca9e38 in thread_start+0x4 (libsystem_pthread.dylib:arm64e+0x1e38)
```
[use_after_free.log](/uploads/9f8d90ce3d2e0ac87d6359747d8173a9/use_after_free.log)https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/912Crash when open TroubleshootSetting2023-11-02T14:00:48ZLanius-collarisCrash when open TroubleshootSettingBug report form
---------------
## Describe your environment
Please specify the following:
- OS: linux
- Jami version:
- What build you are using: [your own stable/20231030.0]
## Steps to reproduce
Note: Better the scenario is, bett...Bug report form
---------------
## Describe your environment
Please specify the following:
- OS: linux
- Jami version:
- What build you are using: [your own stable/20231030.0]
## Steps to reproduce
Note: Better the scenario is, better we will be able to reproduce and debug.
- Can you reproduce the bug: [at will]
- Steps:
1. disable all accounts
\
2. open TroubleshootSetting
- Actual result: crash
- Expected result:Sébastien BlinSébastien Blinhttps://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/910Wrong UDP ICE candidates (UPnP Enabled/TURN disabled)2023-10-30T13:47:56ZSébastien BlinWrong UDP ICE candidates (UPnP Enabled/TURN disabled)# Scenario
+ Connect to JamiLabs
+ Disable TURN for the account, Enable UPnP
+ Start a call
# Expected result
UDP ICE candidates should show public ip in srflx candidates
# Current result
+ UDP candidates doesn't have the public ip ...# Scenario
+ Connect to JamiLabs
+ Disable TURN for the account, Enable UPnP
+ Start a call
# Expected result
UDP ICE candidates should show public ip in srflx candidates
# Current result
+ UDP candidates doesn't have the public ip in the srflx list
+ However, TCP candidates are correct
Meaning that depending the configuration, you can have a TCP negotiation success and media failure (causing the call to stop)
```
[1698335554.247|23970|sdp.cpp :498 ] [SDP OFFER] Remote active session:
v=0
o=localhost 3907324354 1 IN IP4 192.168.0.147
s=Call ID 1888667388261686
c=IN IP4 192.168.0.147
t=0 0
a=ice-ufrag:124cdb6c
a=ice-pwd:621c04a84d50cacf2ef374ff
m=audio 27538 RTP/SAVP 104 101
a=rtpmap:104 opus/48000/2
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=rtcp:27539 IN IP4 192.168.0.147
a=sendrecv
a=candidate:Hc0a80093 1 UDP 2130706431 192.168.0.147 42590 typ host
a=candidate:Ha0989db2 1 UDP 2130706431 fe80::7c8d:d8ff:fed4:ac16 42915 typ host
a=candidate:Sc0a80093 1 UDP 1694498303 192.168.0.147 21296 typ srflx
a=candidate:Hc0a80093 1 UDP 2130706431 192.168.0.147 21296 typ host
a=candidate:Hc0a80093 2 UDP 2130706430 192.168.0.147 38712 typ host
a=candidate:Ha0989db2 2 UDP 2130706430 fe80::7c8d:d8ff:fed4:ac16 37073 typ host
a=candidate:Sc0a80093 2 UDP 1694498302 192.168.0.147 23972 typ srflx
a=candidate:Hc0a80093 2 UDP 2130706430 192.168.0.147 23972 typ host
m=video 57832 RTP/SAVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=428029
a=rtcp:57833 IN IP4 192.168.0.147
a=sendrecv
a=candidate:Hc0a80093 3 UDP 2130706429 192.168.0.147 42826 typ host
a=candidate:Ha0989db2 3 UDP 2130706429 fe80::7c8d:d8ff:fed4:ac16 48183 typ host
a=candidate:Sc0a80093 3 UDP 1694498301 192.168.0.147 22465 typ srflx
a=candidate:Hc0a80093 3 UDP 2130706429 192.168.0.147 22465 typ host
a=candidate:Hc0a80093 4 UDP 2130706428 192.168.0.147 42565 typ host
a=candidate:Ha0989db2 4 UDP 2130706428 fe80::7c8d:d8ff:fed4:ac16 40706 typ host
a=candidate:Sc0a80093 4 UDP 1694498300 192.168.0.147 21643 typ srflx
a=candidate:Hc0a80093 4 UDP 2130706428 192.168.0.147 21643 typ host
```Sébastien BlinSébastien Blinhttps://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/908Mute and unmute in swarm group call2023-10-20T14:27:11ZWear GuxjMute and unmute in swarm group callIn group swarm call, there are two bugs when muting the microphone. It's the same if only audio or both audio and video. It's been verified with the latest Android client.
1. Alice who initiated the group call needs to click two times...In group swarm call, there are two bugs when muting the microphone. It's the same if only audio or both audio and video. It's been verified with the latest Android client.
1. Alice who initiated the group call needs to click two times on the mute button before the button is lit and her microphone is actually muted. The first click does nothing.
2. Then when Bob joins the group call, it causes Alice's client to go back from muted to unmuted. This is obviously a privacy problem, but at least the unmute is reflected in Alice's user interface.Sébastien BlinAlexander Lussier-CullenSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/907Peer gets unmuted when other peer starts video2023-10-19T12:41:36ZWear GuxjPeer gets unmuted when other peer starts videoThere is some buggy behavior when upgrading an audio call to video on latest version for Android and using TURN.
1. Make an audio call between Alice and Bob in any direction.
2. When line is open, both peers mute their microphone.
3. Al...There is some buggy behavior when upgrading an audio call to video on latest version for Android and using TURN.
1. Make an audio call between Alice and Bob in any direction.
2. When line is open, both peers mute their microphone.
3. Alice turns her camera on.
4. This will cause Bob to become unmuted, not good!
5. Alice's video will show to Bob, but it's less likely that Bob will be able to start showing his video to Alice.Alexander Lussier-CullenAlexander Lussier-Cullenhttps://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/905Client that invites never gets peer's name and picture2023-10-12T21:09:50ZWear GuxjClient that invites never gets peer's name and picture- Alice send an invitation to Bob
- Bob accepts
- Bob gets name and picture from Alice
- Same does not happen to Alice, it's still Bob's jami id that is displayed to Alice and no picture
The reason might be that when the invitation is a...- Alice send an invitation to Bob
- Bob accepts
- Bob gets name and picture from Alice
- Same does not happen to Alice, it's still Bob's jami id that is displayed to Alice and no picture
The reason might be that when the invitation is accepted, it does not send back an automatic counter invitation, as it usually does.
Nevertheless, the peers can successfully exchange text messages in both directions and also call each other.
Client version: Android 20230928https://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/903Blocked contact: Toggling own account "Allow calls from unknown contact" duri...2023-11-17T16:30:12ZElysBlocked contact: Toggling own account "Allow calls from unknown contact" during a call / file transfer will create two times the same blocked contact each timerelated: https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/886
<table>
<tr>
<th>
EDIT: Same issue if the Android user previously tried to send an attachment (and/or a text message?) BEFORE the desktop user blocked the Android ...related: https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/886
<table>
<tr>
<th>
EDIT: Same issue if the Android user previously tried to send an attachment (and/or a text message?) BEFORE the desktop user blocked the Android user
If it is file transfer: Every time the desktop user disables and enables the settings "Allow calls from unknown contact" (although it is not a call) the desktop user gets the same contact twice (so 2 -\> 4 -\> 6 -\> 8 etc.) for another time
</th>
</tr>
</table>
Use the beta newest version of Jami (Desktop and Android) with patch: https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/886#note_45676
Steps to reproduce:
1. You can make a call (Jami account 1 (Android) -\> Jami account 2(desktop))
2. Now on desktop (using Jami account 2) block Jami account 1
3. If the desktop user goes to settings he can view the blocked contact (only 1 times the same contact)
4. Now try to make a call Jami account 1 (Android) -\> Jami account 2(desktop)
5. During the Android user makes a call the desktop user turns off the option "Allow calls from unknown contacts" and immediately turns on the option "Allow calls from unknown contacts" again
6. Although the Android user can't call the desktop user anymore, the desktop user will get the same contact twice in the settings "blocked contact"
7. Each time the desktop user repeats these steps he gets the same contact twice again (so in total you'll view the Android user 5 times (1) blocked, 2) two times the same contact: Toggling own account "Allow contacts from unknown contact" 3) two times the same contact: Toggling own account "Allow contacts from unknown contact")
![blockedsamecontact.png](/uploads/72c27565420cdd495194bb7e22a29135/blockedsamecontact.png)
---
Next issue:
If the desktop user just unblocks one of the five / ten same contacts (/Jami account 1 (Android) he'll get the contact in the contact list back again showing call "Finished"
![Finished.png](/uploads/a6d120a453fa66c081136d19c43c3fd2/Finished.png)
---
Next issue:
If the desktop user unblocks all (same) blocked contact it still does not work:
All users (Desktop and Android) have to exit Jami and enter Jami again.
Then the Android user that has been blocked is not listed under "blocked contact" on Jami desktop anymore and communication works.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/902Crash in AudioRtpSession (audioInput_ can be nullptr)2023-10-26T17:59:46ZSébastien BlinCrash in AudioRtpSession (audioInput_ can be nullptr)Crash:
```plaintext
[Thread 0x7ffed47f8640 (LWP 248414) exited]
Thread 5606 "ut_conference" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff3a7fc640 (LWP 248286)]
___pthread_mutex_lock (mutex=0x8) at ./nptl/pthr...Crash:
```plaintext
[Thread 0x7ffed47f8640 (LWP 248414) exited]
Thread 5606 "ut_conference" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff3a7fc640 (LWP 248286)]
___pthread_mutex_lock (mutex=0x8) at ./nptl/pthread_mutex_lock.c:80
80 ./nptl/pthread_mutex_lock.c: No such file or directory.
(gdb) bt
#0 ___pthread_mutex_lock (mutex=0x8) at ./nptl/pthread_mutex_lock.c:80
#1 0x00005555556ad59b in __gthread_mutex_lock (__mutex=0x8) at /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:749
#2 0x00005555556cbd04 in std::mutex::lock (this=0x8) at /usr/include/c++/11/bits/std_mutex.h:100
#3 0x00005555556d089c in std::lock_guard<std::mutex>::lock_guard (this=0x7fff3a7f8c40, __m=...) at /usr/include/c++/11/bits/std_mutex.h:229
#4 0x0000555555711689 in jami::Observable<std::shared_ptr<libjami::MediaFrame> >::attach (this=0x0, o=0x7fff10090010) at ./observer.h:77
#5 0x0000555555c7489b in jami::AudioRtpSession::attachLocalRecorder (this=0x7fffb119a920, ms=...) at ./media/audio/audio_rtp_session.cpp:385
#6 0x0000555555c748f0 in operator() (__closure=0x7fff341062d0, ms=...) at ./media/audio/audio_rtp_session.cpp:399
#7 0x0000555555c76a09 in std::__invoke_impl<void, jami::AudioRtpSession::initRecorder()::<lambda(const jami::MediaStream&)>&, const jami::MediaStream&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/11/bits/invoke.h:61
#8 0x0000555555c764a5 in std::__invoke_r<void, jami::AudioRtpSession::initRecorder()::<lambda(const jami::MediaStream&)>&, const jami::MediaStream&>(struct {...} &) (__fn=...)
at /usr/include/c++/11/bits/invoke.h:111
#9 0x0000555555c75b3f in std::_Function_handler<void(const jami::MediaStream&), jami::AudioRtpSession::initRecorder()::<lambda(const jami::MediaStream&)> >::_M_invoke(const std::_Any_data &, const jami::MediaStream &) (__functor=..., __args#0=...) at /usr/include/c++/11/bits/std_function.h:290
#10 0x00005555559ef0d7 in std::function<void (jami::MediaStream const&)>::operator()(jami::MediaStream const&) const (this=0x7fff341062d0, __args#0=...) at /usr/include/c++/11/bits/std_function.h:590
#11 0x00005555559e8e47 in jami::AudioInput::readFromDevice (this=0x7fff34105f20) at ./media/audio/audio_input.cpp:141
#12 0x00005555559e88c2 in jami::AudioInput::process (this=0x7fff34105f20) at ./media/audio/audio_input.cpp:74
#13 0x00005555559e7e83 in operator() (__closure=0x7fff3a7f8fd0) at ./media/audio/audio_input.cpp:52
#14 0x00005555559ecd06 in std::__invoke_impl<void, jami::AudioInput::AudioInput(const string&)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
#15 0x00005555559ec49a in std::__invoke_r<void, jami::AudioInput::AudioInput(const string&)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/11/bits/invoke.h:111
#16 0x00005555559ebcba in std::_Function_handler<void(), jami::AudioInput::AudioInput(const string&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
at /usr/include/c++/11/bits/std_function.h:290
#17 0x00005555556d13c0 in std::function<void ()>::operator()() const (this=0x7fff3a7f8fd0) at /usr/include/c++/11/bits/std_function.h:590
#18 0x0000555555b8698a in jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>) (this=0x7fff34106228, tid=..., setup=..., process=...,
cleanup=...) at threadloop.cpp:38
#19 0x0000555555b8832a in std::__invoke_impl<void, void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> >(std::__invoke_memfun_deref, void (jami::ThreadLoop::*&&)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*&&, std::reference_wrapper<std::thread::id>&&, std::function<bool ()>&&, std::function<void ()>&&, std::function<void ()>&&) (
__f=@0x7fffc81ea608: (void (jami::ThreadLoop::*)(jami::ThreadLoop * const, std::thread::id &, std::function<bool()>, std::function<void()>, std::function<void()>)) 0x555555b8693c <jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>)>, __t=@0x7fffc81ea600: 0x7fff34106228) at /usr/include/c++/11/bits/invoke.h:74
#20 0x0000555555b88120 in std::__invoke<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> >(void (jami::ThreadLoop::*&&)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*&&, std::reference_wrapper<std::thread::id>&&, std::function<bool ()>&&, std::function<void ()>&&, std::function<void ()>&&) (
__fn=@0x7fffc81ea608: (void (jami::ThreadLoop::*)(jami::ThreadLoop * const, std::thread::id &, std::function<bool()>, std::function<void()>, std::function<void()>)) 0x555555b8693c <jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>)>) at /usr/include/c++/11/bits/invoke.h:96
#21 0x0000555555b87f7f in std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>) (
this=0x7fffc81ea598) at /usr/include/c++/11/bits/std_thread.h:259
#22 0x0000555555b87ec4 in std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > >::operator()() (this=0x7fffc81ea598) at /usr/include/c++/11/bits/std_thread.h:266
#23 0x0000555555b87ea4 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > > >::_M_run() (this=0x7fffc81ea590)
at /usr/include/c++/11/bits/std_thread.h:211
#24 0x00007ffff6edc253 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#25 0x00007ffff6a94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#26 0x00007ffff6b26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/901MediaRecorder: segfault for videoFilter_2023-10-26T17:59:42ZSébastien BlinMediaRecorder: segfault for videoFilter_Crash:
```plaintext
Thread 5745 "ut_conference" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff1d7fa640 (LWP 241057)]
0x00007ffff6f4bf95 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator...Crash:
```plaintext
Thread 5745 "ut_conference" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff1d7fa640 (LWP 241057)]
0x00007ffff6f4bf95 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) bt
#0 0x00007ffff6f4bf95 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#1 0x00007ffff6f4c4ad in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#2 0x0000555555a50bdb in jami::MediaFilter::initialize (this=0x0,
filterDesc="[v:remote] fps=30/1, scale=-2:720 [v:m]; [v:local] fps=30/1, scale=-2:144 [v:o]; [v:m] [v:o] overlay=main_w-overlay_w:main_h-overlay_h, format=pix_fmts=yuv420p",
msps=std::vector of length 2, capacity 2 = {...}) at media/media_filter.cpp:56
#3 0x0000555555a5dced in jami::MediaRecorder::setupVideoOutput (this=0x7fff80a94b30) at media/media_recorder.cpp:517
#4 0x0000555555a5bd85 in jami::MediaRecorder::addStream (this=0x7fff80a94b30, ms=...) at media/media_recorder.cpp:283
#5 0x0000555555c86594 in jami::video::VideoRtpSession::attachLocalRecorder (this=0x7fff802e6ab0, ms=...) at ./media/video/video_rtp_session.cpp:792
#6 0x0000555555c86618 in operator() (__closure=0x5555577a9438, ms=...) at ./media/video/video_rtp_session.cpp:808
#7 0x0000555555c89531 in std::__invoke_impl<void, jami::video::VideoRtpSession::initRecorder()::<lambda(const jami::MediaStream&)>&, const jami::MediaStream&>(std::__invoke_other, struct {...} &) (
__f=...) at /usr/include/c++/11/bits/invoke.h:61
#8 0x0000555555c88da7 in std::__invoke_r<void, jami::video::VideoRtpSession::initRecorder()::<lambda(const jami::MediaStream&)>&, const jami::MediaStream&>(struct {...} &) (__fn=...)
at /usr/include/c++/11/bits/invoke.h:111
#9 0x0000555555c8801f in std::_Function_handler<void(const jami::MediaStream&), jami::video::VideoRtpSession::initRecorder()::<lambda(const jami::MediaStream&)> >::_M_invoke(const std::_Any_data &, const jami::MediaStream &) (__functor=..., __args#0=...) at /usr/include/c++/11/bits/std_function.h:290
#10 0x00005555559ef0d7 in std::function<void (jami::MediaStream const&)>::operator()(jami::MediaStream const&) const (this=0x5555577a9438, __args#0=...) at /usr/include/c++/11/bits/std_function.h:590
#11 0x0000555555a2cd76 in operator() (__closure=0x7ffeac32d508) at ./media/video/video_input.cpp:266
#12 0x0000555555a303bc in std::__invoke_impl<void, jami::video::VideoInput::setRecorderCallback(const std::function<void(const jami::MediaStream&)>&)::<lambda()>&>(std::__invoke_other, struct {...} &) (
__f=...) at /usr/include/c++/11/bits/invoke.h:61
#13 0x0000555555a2fda1 in std::__invoke_r<void, jami::video::VideoInput::setRecorderCallback(const std::function<void(const jami::MediaStream&)>&)::<lambda()>&>(struct {...} &) (__fn=...)
at /usr/include/c++/11/bits/invoke.h:111
#14 0x0000555555a2f9c8 in std::_Function_handler<void(), jami::video::VideoInput::setRecorderCallback(const std::function<void(const jami::MediaStream&)>&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/11/bits/std_function.h:290
#15 0x00005555556d13c0 in std::function<void ()>::operator()() const (this=0x7ffeac32d508) at /usr/include/c++/11/bits/std_function.h:590
#16 0x0000555555a490db in jami::MediaDecoder::decode (this=0x7ffeac32d300, packet=...) at media/media_decoder.cpp:701
#17 0x0000555555a47d1c in operator() (__closure=0x7ffeac0f1b90, packet=...) at media/media_decoder.cpp:492
#18 0x0000555555a4a88f in std::__invoke_impl<jami::DecodeStatus, jami::MediaDecoder::setup(AVMediaType)::<lambda(AVPacket&)>&, AVPacket&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/11/bits/invoke.h:61
#19 0x0000555555a4a511 in std::__invoke_r<jami::DecodeStatus, jami::MediaDecoder::setup(AVMediaType)::<lambda(AVPacket&)>&, AVPacket&>(struct {...} &) (__fn=...) at /usr/include/c++/11/bits/invoke.h:114
#20 0x0000555555a49f9a in std::_Function_handler<jami::DecodeStatus(AVPacket&), jami::MediaDecoder::setup(AVMediaType)::<lambda(AVPacket&)> >::_M_invoke(const std::_Any_data &, AVPacket &) (
__functor=..., __args#0=...) at /usr/include/c++/11/bits/std_function.h:290
#21 0x0000555555a4bb15 in std::function<jami::DecodeStatus (AVPacket&)>::operator()(AVPacket&) const (this=0x7ffeac0f1b90, __args#0=...) at /usr/include/c++/11/bits/std_function.h:590
#22 0x0000555555a472d6 in jami::MediaDemuxer::decode (this=0x7ffeac32c080) at media/media_decoder.cpp:403
#23 0x0000555555a491b0 in jami::MediaDecoder::decode (this=0x7ffeac32d300) at media/media_decoder.cpp:717
#24 0x0000555555a2c987 in jami::video::VideoInput::captureFrame (this=0x5555577a90d0) at ./media/video/video_input.cpp:212
#25 0x0000555555a2c845 in jami::video::VideoInput::process (this=0x5555577a90d0) at ./media/video/video_input.cpp:183
#26 0x0000555555a32ddf in std::__invoke_impl<void, void (jami::video::VideoInput::*&)(), jami::video::VideoInput*&> (
__f=@0x7fffc8134020: (void (jami::video::VideoInput::*)(jami::video::VideoInput * const)) 0x555555a2c78a <jami::video::VideoInput::process()>, __t=@0x7fffc8134030: 0x5555577a90d0)
at /usr/include/c++/11/bits/invoke.h:74
#27 0x0000555555a32cae in std::__invoke<void (jami::video::VideoInput::*&)(), jami::video::VideoInput*&> (
__fn=@0x7fffc8134020: (void (jami::video::VideoInput::*)(jami::video::VideoInput * const)) 0x555555a2c78a <jami::video::VideoInput::process()>) at /usr/include/c++/11/bits/invoke.h:96
#28 0x0000555555a32bd7 in std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) (this=0x7fffc8134020, __args=...)
at /usr/include/c++/11/functional:420
#29 0x0000555555a32a69 in std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>::operator()<, void>() (this=0x7fffc8134020) at /usr/include/c++/11/functional:503
#30 0x0000555555a327be in std::__invoke_impl<void, std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>&>(std::__invoke_other, std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>&) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
#31 0x0000555555a3244e in std::__invoke_r<void, std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>&>(std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>&) (
__fn=...) at /usr/include/c++/11/bits/invoke.h:111
#32 0x0000555555a31e80 in std::_Function_handler<void (), std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()> >::_M_invoke(std::_Any_data const&) (__functor=...)
at /usr/include/c++/11/bits/std_function.h:290
--Type <RET> for more, q to quit, c to continue without paging--
#33 0x00005555556d13c0 in std::function<void ()>::operator()() const (this=0x7fff1d7f6fd0) at /usr/include/c++/11/bits/std_function.h:590
#34 0x0000555555b8698a in jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>) (this=0x5555577a9378, tid=..., setup=..., process=...,
cleanup=...) at threadloop.cpp:38
#35 0x0000555555b8832a in std::__invoke_impl<void, void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> >(std::__invoke_memfun_deref, void (jami::ThreadLoop::*&&)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*&&, std::reference_wrapper<std::thread::id>&&, std::function<bool ()>&&, std::function<void ()>&&, std::function<void ()>&&) (
__f=@0x7fffc818cba8: (void (jami::ThreadLoop::*)(jami::ThreadLoop * const, std::thread::id &, std::function<bool()>, std::function<void()>, std::function<void()>)) 0x555555b8693c <jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>)>, __t=@0x7fffc818cba0: 0x5555577a9378) at /usr/include/c++/11/bits/invoke.h:74
#36 0x0000555555b88120 in std::__invoke<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> >(void (jami::ThreadLoop::*&&)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*&&, std::reference_wrapper<std::thread::id>&&, std::function<bool ()>&&, std::function<void ()>&&, std::function<void ()>&&) (
__fn=@0x7fffc818cba8: (void (jami::ThreadLoop::*)(jami::ThreadLoop * const, std::thread::id &, std::function<bool()>, std::function<void()>, std::function<void()>)) 0x555555b8693c <jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>)>) at /usr/include/c++/11/bits/invoke.h:96
#37 0x0000555555b87f7f in std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>) (
this=0x7fffc818cb38) at /usr/include/c++/11/bits/std_thread.h:259
#38 0x0000555555b87ec4 in std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > >::operator()() (this=0x7fffc818cb38) at /usr/include/c++/11/bits/std_thread.h:266
#39 0x0000555555b87ea4 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > > >::_M_run() (this=0x7fffc818cb30)
at /usr/include/c++/11/bits/std_thread.h:211
#40 0x00007ffff6edc253 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#41 0x00007ffff6a94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#42 0x00007ffff6b26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
```
mutexes for videoFilter\_ seems to be incorrectSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/900ut_conference segfault since some days2023-10-26T17:59:38ZSébastien Blinut_conference segfault since some daysStacktrace:
```plaintext
�[0m�[22;36m[1695969528.280|21249|sipcall.cpp :1089] �[22;36mAddressSanitizer:DEADLYSIGNAL
[1695969528.280|20699|socket_pair.cpp :337 ] �[0m=================================================...Stacktrace:
```plaintext
�[0m�[22;36m[1695969528.280|21249|sipcall.cpp :1089] �[22;36mAddressSanitizer:DEADLYSIGNAL
[1695969528.280|20699|socket_pair.cpp :337 ] �[0m=================================================================
Creating rtp socket for uri rtp://172.17.0.11:49404 on port 60378
�[0m�[0m[call:4008112576292348] Successfully answered the media change request
�[0m�[22;36m[1695969528.280|20697|sip_utils.cpp :221 ] �[0mAdd header to SIP message: "User-Agent: Jami Daemon 13.9.0-09bfe85330-dirty (linux)"
�[0m�[22;36m[1695969528.280|20699|socket_pair.cpp :174 ] �[0muse local address: 0.0.0.0:60378
�[0m==20697==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000038 (pc 0x55853e0f604a bp 0x7fa7477e7f70 sp 0x7fa7477e7f40 T589)
�[22;36m[1695969528.280|20699|socket_pair.cpp :174 ] �[0muse local address: 0.0.0.0:60379
�[0m�[22;36m�[22;36m[1695969528.280|20699|socket_pair.cpp :361 ] �[0m�[01;33mSocketPair: local{60378,60379} / 172.17.0.11{49404,49405}
�[0m[1695969528.280|21293|media_decoder.cpp :150 ] �[0mTrying to open device dummyFilename with format sdp, pixel format , size 0x0, rate 0.000000
==20697==The signal is caused by a READ memory access.
�[0m�[22;36m[1695969528.280|21250|sipvoiplink.cpp :1120] �[0m[call:7411818913851632] INVITE@0x61900042c2a8 media update: status 0
�[0m�[22;36m[1695969528.280|20697|conference.cpp :561 ] �[0m�[01;33mTake over [AUDIO] control from call 3129400994883713 - current local source state [muted]
�[0m==20697==Hint: address points to the zero page.
�[22;36m[1695969528.280|20699|video_rtp_session.cpp :118 ] �[0m[0x61d000413c90] Start video RTP sender: input [] - muted [NO]
�[0m�[22;36m[1695969528.280|20697|conference.cpp :567 ] �[0m�[01;33mTake over [VIDEO] control from call 3129400994883713 - current local source state [muted]
�[0m�[22;36m[1695969528.280|21250|sdp.cpp :134 ] �[0mSet active local session to [0x619000306ba8]. Was [(nil)]
�[0m�[22;36m[1695969528.280|20699|media_encoder.cpp :62 ] �[0m[0x61500129a380] New instance created
�[0m�[22;36m[1695969528.280|20697|sipcall.cpp :3081] �[0m[call:3129400994883713] Entering conference [5406518273839043]
�[0m�[22;36m[1695969528.280|21250|sdp.cpp :498 ] �[0m[SDP OFFER] Local active session:
v=0
o=b7b6580484b9 3904958326 2 IN IP4 172.17.0.11
s=Call ID 1702131012226992
c=IN IP4 172.17.0.11
t=0 0
m=audio 29248 RTP/SAVP 104 101
a=rtpmap:104 opus/48000/2
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=rtcp:29249 IN IP4 172.17.0.11
a=sendrecv
m=video 58824 RTP/SAVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=428029
a=rtcp:58825 IN IP4 172.17.0.11
a=sendrecv
�[0m�[22;36m[1695969528.280|20699|media_encoder.cpp :93 ] �[0m�[22;31mInvalid options
�[0m�[22;36m[1695969528.280|21293|media_decoder.cpp :170 ] �[0mUsing format sdp and resolution 0x0
�[0m�[22;36m�[22;36m[1695969528.280|21250|sdp.cpp :142 ] �[0mSet active remote session to [0x619000505aa8]. Was [(nil)]
�[0m[1695969528.280|20697|video_rtp_session.cpp :557 ] �[0m[0x61d00047fe90] enterConference (conf: 5406518273839043)
�[0m�[22;36m[1695969528.280|20699|media_encoder.cpp :189 ] �[0m[0x61500129a380] Created new coding instance for H264 @ index 0
�[0m�[22;36m[1695969528.280|21250|sdp.cpp :498 ] �[0m[SDP OFFER] Remote active session:
v=0
o=b7b6580484b9 3904958326 3 IN IP4 172.17.0.11
s=Call ID 4008112576292348
c=IN IP4 172.17.0.11
t=0 0
m=audio 22278 RTP/SAVP 104 101
a=rtpmap:104 opus/48000/2
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=rtcp:22279 IN IP4 172.17.0.11
a=sendrecv
m=video 54988 RTP/SAVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=428029
a=rtcp:54989 IN IP4 172.17.0.11
a=sendrecv
�[0m�[22;36m[1695969528.280|20697|conference.cpp :977 ] �[0mBind participant 3129400994883713 to conference 5406518273839043
�[0m�[22;36m[1695969528.280|20697|ringbufferpool.cpp :174 ] �[0mBind call 3129400994883713 to call 7411818913851632
�[0m�[22;36m[1695969528.280|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf '3129400994883713' to callid '7411818913851632'
�[0m�[22;36m[1695969528.280|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf '7411818913851632' to callid '3129400994883713'
�[0m�[22;36m[1695969528.280|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf '3129400994883713' to callid 'audiolayer_id'
�[0m�[22;36m[1695969528.280|20697|manager.cpp :611 ] �[0m----- Switch current call id to '5406518273839043' -----
�[0m�[22;36m[1695969528.280|20697|conference.cpp :344 ] �[0m[conf 5406518273839043] Set state to [ACTIVE_ATTACHED] (was [ACTIVE_ATTACHED])
�[0m�[22;36m[1695969528.281|20697|conference.cpp :346 ] �[0mStop conference
�[0m�[22;36m[1695969528.281|20697|manager.cpp :1433] �[0mHangup conference 5406518273839043
�[0m�[22;36m[1695969528.281|20697|manager.cpp :1717] �[0m[call:3129400994883713] Remove local audio
�[0m�[22;36m[1695969528.281|20697|ringbufferpool.cpp :262 ] �[0mUnbind call 3129400994883713 from all bound calls
�[0m�[22;36m[1695969528.281|20697|manager.cpp :1607] �[0mRemove participant 3129400994883713
�[0m�[22;36m[1695969528.281|20697|conference.cpp :880 ] �[0mRemove call 3129400994883713 in conference 5406518273839043
�[0m�[22;36m[1695969528.281|20697|sipcall.cpp :3101] �[0m[call:3129400994883713] Leaving conference
�[0m�[22;36m[1695969528.281|20697|ringbufferpool.cpp :174 ] �[0mBind call 3129400994883713 to call audiolayer_id
�[0m�[22;36m[1695969528.281|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf '3129400994883713' to callid 'audiolayer_id'
�[0m�[22;36m[1695969528.281|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf 'audiolayer_id' to callid '3129400994883713'
�[0m�[22;36m[1695969528.281|20697|video_rtp_session.cpp :577 ] �[0m[0x61d00047fe90] exitConference (conf: 5406518273839043)
�[0m�[22;36m[1695969528.281|20697|manager.cpp :1717] �[0m[call:3129400994883713] Remove local audio
�[0m�[22;36m[1695969528.281|20697|ringbufferpool.cpp :262 ] �[0mUnbind call 3129400994883713 from all bound calls
�[0m�[22;36m[1695969528.281|20697|manager.cpp :544 ] �[0mProcess remaining 1 participant(s) from conference 5406518273839043
�[0m�[22;36m[1695969528.281|20697|manager.cpp :611 ] �[0m----- Switch current call id to '7411818913851632' -----
�[0m�[22;36m[1695969528.281|20697|manager.cpp :580 ] �[0mNo remaining participants, remove conference
�[0m�[22;36m[1695969528.281|20697|sipcall.cpp :759 ] �[0m[call:3129400994883713] Terminate SIP session
�[0m�[22;36m[1695969528.281|20697|sip_utils.cpp :221 ] �[0mAdd header to SIP message: "User-Agent: Jami Daemon 13.9.0-09bfe85330-dirty (linux)"
�[0m�[22;36m[1695969528.281|20697|sipcall.cpp :733 ] �[0m[call:3129400994883713] Delete current invite session
�[0m�[22;36m[1695969528.281|20697|sipcall.cpp :2227] �[0m[call:3129400994883713] Stopping all media
�[0m�[22;36m[1695969528.281|20697|audio_rtp_session.cpp :228 ] �[0m[0x61c0000d8090] Stopping receiver
�[0m�[22;36m[1695969528.281|20697|video_rtp_session.cpp :245 ] �[0m[0x61d00047fe90] Stop video RTP sender: input [] - muted [NO]
�[0m�[22;36m[1695969528.281|20697|video_rtp_session.cpp :319 ] �[0m[0x61d00047fe90] Stopping receiver
�[0m�[22;36m[1695969528.281|20697|call.cpp :241 ] �[0m[call:3129400994883713] state change 1/1, cnx 4/0, code 0
�[0m�[22;36m[1695969528.282|20697|call.cpp :275 ] �[0m[call:3129400994883713] emit client call state change HUNGUP, code 0
�[0m�[22;36m[1695969528.282|20697|manager.cpp :1717] �[0m[call:7411818913851632] Remove local audio
�[0m�[22;36m[1695969528.282|20697|ringbufferpool.cpp :262 ] �[0mUnbind call 7411818913851632 from all bound calls
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :1592] �[0m[call:3129400994883713] removeCall()
�[0m�[22;36m[1695969528.282|20697|manager.cpp :1607] �[0mRemove participant 7411818913851632
�[0m�[22;36m[1695969528.282|20761|call_factory.cpp :72 ] �[0mRemoving call 3129400994883713
�[0m�[22;36m[1695969528.282|20697|conference.cpp :880 ] �[0mRemove call 7411818913851632 in conference 5406518273839043
�[0m�[22;36m[1695969528.282|20761|call_factory.cpp :75 ] �[0mRemaining 3 call
�[0m�[22;36m[1695969528.282|20761|call.cpp :241 ] �[0m[call:3129400994883713] state change 1/6, cnx 0/0, code 0
�[0m�[22;36m[1695969528.282|20697|sipcall.cpp :3101] �[0m[call:7411818913851632] Leaving conference
�[0m�[22;36m[1695969528.282|20697|ringbufferpool.cpp :174 ] �[0mBind call 7411818913851632 to call audiolayer_id
�[0m�[22;36m[1695969528.282|20761|contact_list.cpp :163 ] �[0m�[01;33m[Contacts] contact '90d20919eec87c2de5c4559df9eeb269f000eec3' not found
�[0m�[22;36m[1695969528.282|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf '7411818913851632' to callid 'audiolayer_id'
�[0m�[22;36m[1695969528.282|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf 'audiolayer_id' to callid '7411818913851632'
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :3255] �[0m- Call 3129400994883713 with 90d20919eec87c2de5c4559df9eeb269f000eec3:
�[0m�[22;36m[1695969528.282|20697|video_rtp_session.cpp :577 ] �[0m[0x61d0002fb290] exitConference (conf: 5406518273839043)
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :3256] �[0m - Duration: 10 ms
�[0m�[22;36m[1695969528.282|20697|video_mixer.cpp :203 ] �[0mDetaching video of call 7411818913851632
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :3258] �[0m - Media: type [AUDIO] enabled [YES] muted [NO] label [audio_0] source [] secure [YES]
�[0m�[22;36m[1695969528.282|20697|video_mixer.cpp :237 ] �[0mRemove source [0x60b0001317b0]
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :3258] �[0m - Media: type [VIDEO] enabled [YES] muted [NO] label [video_0] source [] secure [YES]
�[0m�[22;36m[1695969528.282|20697|video_mixer.cpp :239 ] �[0mTotal sources: 0
�[0m�[22;36m[1695969528.282|20761|call.cpp :275 ] �[0m[call:3129400994883713] emit client call state change OVER, code 0
�[0m�[22;36m[1695969528.282|20697|video_receive_thread.cpp:285 ] �[0m[0x61a000702680] Starting sink
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :459 ] �[0m[call:3129400994883713] Setting transport to [(nil)]
�[0m�[22;36m[1695969528.282|20697|manager.cpp :1717] �[0m[call:7411818913851632] Remove local audio
�[0m�[22;36m[1695969528.283|20697|ringbufferpool.cpp :262 ] �[0mUnbind call 7411818913851632 from all bound calls
�[0m�[22;36m[1695969528.283|20697|manager.cpp :544 ] �[0mProcess remaining 0 participant(s) from conference 5406518273839043
�[0m�[22;36m[1695969528.283|20697|manager.cpp :584 ] �[0mNo remaining participants, remove conference
�[0m�[22;36m[1695969528.283|20697|sipcall.cpp :759 ] �[0m[call:7411818913851632] Terminate SIP session
�[0m�[22;36m[1695969528.283|20697|sip_utils.cpp :221 ] �[0mAdd header to SIP message: "User-Agent: Jami Daemon 13.9.0-09bfe85330-dirty (linux)"
�[0m�[22;36m[1695969528.283|20697|sipcall.cpp :733 ] �[0m[call:7411818913851632] Delete current invite session
�[0m�[22;36m[1695969528.283|20697|sipcall.cpp :2227] �[0m[call:7411818913851632] Stopping all media
�[0m�[22;36m[1695969528.283|20697|audio_rtp_session.cpp :228 ] �[0m[0x61c0000d5890] Stopping receiver
�[0m�[22;36m[1695969528.283|20697|socket_pair.cpp :313 ] �[0m[0x6160013aa380] Read operations in blocking mode [NO]
�[0m�[22;36m[1695969528.283|20697|socket_pair.cpp :300 ] �[0m�[01;33m[0x6160013aa380] Interrupting RTP sockets
�[0m�[22;36m[1695969528.283|21249|sipvoiplink.cpp :891 ] �[0m[call:4008112576292348] INVITE@0x6190001987a8 state changed to 6 (DISCONNCTD): cause=200, tsx@0x61d000035328 status 200 (OK)
�[0m�[22;36m[1695969528.283|21281|media_decoder.cpp :547 ] �[0mUsing libopus Opus (libopus) decoder for audio
�[0m�[22;36m[1695969528.283|21281|media_decoder.cpp :558 ] �[0m�[01;33mNot using hardware decoding for opus
�[0m #0 0x55853e0f6049 in jami::MediaDecoder::getStream(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const media/media_decoder.cpp:835
#1 0x55853e9198dc in jami::AudioReceiveThread::getInfo() const media/audio/audio_receive_thread.cpp:152
#2 0x55853e820fe3 in jami::AudioRtpSession::setMuted(bool, jami::RtpSession::Direction) media/audio/audio_rtp_session.cpp:262
#3 0x55853e3e46fe in jami::SIPCall::peerMuted(bool, int) sip/sipcall.cpp:3615
#4 0x55853e499d54 in handleMediaControl sip/sipvoiplink.cpp:1241
#5 0x55853e49c508 in onRequestInfo sip/sipvoiplink.cpp:1323
#6 0x55853e49d2fa in transaction_state_changed_cb sip/sipvoiplink.cpp:1390
#7 0x55853e9c5467 in mod_inv_on_tsx_state (/foo/test/unitTest/ut_conference+0x40de467)
#8 0x55853ea025ec in pjsip_dlg_on_tsx_state (/foo/test/unitTest/ut_conference+0x411b5ec)
#9 0x55853e9fb6eb in tsx_set_state (/foo/test/unitTest/ut_conference+0x41146eb)
#10 0x55853e9fbef8 in tsx_on_state_null (/foo/test/unitTest/ut_conference+0x4114ef8)
#11 0x55853e9ff6b1 in pjsip_tsx_recv_msg (/foo/test/unitTest/ut_conference+0x41186b1)
#12 0x55853ea02304 in pjsip_dlg_on_rx_request (/foo/test/unitTest/ut_conference+0x411b304)
#13 0x55853ea03a62 in mod_ua_on_rx_request (/foo/test/unitTest/ut_conference+0x411ca62)
#14 0x55853e9e897a in pjsip_endpt_process_rx_data (/foo/test/unitTest/ut_conference+0x410197a)
#15 0x55853e9e8bb5 in endpt_on_rx_msg (/foo/test/unitTest/ut_conference+0x4101bb5)
#16 0x55853e9efbde in pjsip_tpmgr_receive_packet (/foo/test/unitTest/ut_conference+0x4108bde)
#17 0x55853e6379bd in operator() jamidht/channeled_transport.cpp:172
#18 0x55853e63ac21 in _M_invoke /usr/include/c++/9/bits/std_function.h:285
#19 0x55853e9611c3 in dhtnet::ChannelSocket::onRecv(std::vector<unsigned char, std::allocator<unsigned char> >&&) (/foo/test/unitTest/ut_conference+0x407a1c3)
#20 0x55853e961025 in dhtnet::MultiplexedSocket::Impl::handleChannelPacket(unsigned short, std::vector<unsigned char, std::allocator<unsigned char> >&&) (/foo/test/unitTest/ut_conference+0x407a025)
#21 0x55853e9658f2 in dhtnet::MultiplexedSocket::Impl::eventLoop() (/foo/test/unitTest/ut_conference+0x407e8f2)
#22 0x55853e969437 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dhtnet::MultiplexedSocket::Impl::Impl(dhtnet::MultiplexedSocket&, std::shared_ptr<asio::io_context>, dht::Hash<32ul> const&, std::unique_ptr<dhtnet::TlsSocketEndpoint, std::default_delete<dhtnet::TlsSocketEndpoint> >, std::shared_ptr<dht::log::Logger>)::{lambda()#1}> > >::_M_run() (/foo/test/unitTest/ut_conference+0x4082437)
#23 0x7fa771d9fdf3 (/lib/x86_64-linux-gnu/libstdc++.so.6+0xd6df3)
#24 0x7fa7724b9608 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x8608)
#25 0x7fa771a8c132 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f132)
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/899Sync contacts doesn't work for JAMS2023-10-02T18:48:51ZSébastien BlinSync contacts doesn't work for JAMS# Scenario
+ Remove or re-add a contact on a JAMS account (Note: Just adding the contact is not enough to trigger the error).
# Current result
```
[1695241407.656|13426|server_account_manager.cpp:395 ] [Auth] Got contact sync request ...# Scenario
+ Remove or re-add a contact on a JAMS account (Note: Just adding the contact is not enough to trigger the error).
# Current result
```
[1695241407.656|13426|server_account_manager.cpp:395 ] [Auth] Got contact sync request callback with status code=500
[1695241407.657|13426] [http:request:55] end with error: stream truncated
[1695241407.657|13426] [http:request:55] can't parse response to json
```
JAMS is not updated
# Code:
```
sendDeviceRequest(std::make_shared<Request>(
*Manager::instance().ioContext(),
urlContacts,
jsonContacts,
[w=weak_from_this()](Json::Value json, const dht::http::Response& response) {
JAMI_DBG("[Auth] Got contact sync request callback with status code=%u",
response.status_code);
auto this_ = std::static_pointer_cast<ServerAccountManager>(w.lock());
if (!this_) return;
if (response.status_code >= 200 && response.status_code < 300) {
try {
JAMI_WARN("[Auth] Got server response: %s", response.body.c_str());
if (not json.isArray()) {
JAMI_ERR("[Auth] Can't parse server response: not an array");
} else {
for (unsigned i = 0, n = json.size(); i < n; i++) {
const auto& e = json[i];
Contact contact(e);
this_->info_->contacts
->updateContact(dht::InfoHash {e["uri"].asString()}, contact);
}
this_->info_->contacts->saveContacts();
}
} catch (const std::exception& e) {
JAMI_ERR("Error when iterating contact list: %s", e.what());
}
} else if (response.status_code == 401)
this_->authError(TokenScope::Device);
this_->clearRequest(response.request);
},
logger_));
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/898plugins: macos: arm64: should only show plugins if they support arm64 mac2023-09-21T10:03:24ZAline Gondim Santosplugins: macos: arm64: should only show plugins if they support arm64 macPlugins are not yet build and tested for Mac arm64, so the plugins appearing in the plugin-store should actually **not appear**.Plugins are not yet build and tested for Mac arm64, so the plugins appearing in the plugin-store should actually **not appear**.Aline Gondim SantosAline Gondim Santos