jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2023-05-05T18:58:11Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/848Cmake installs nothing2023-05-05T18:58:11ZSébastien BlinCmake installs nothing```
amarok@atlas ~/Projects/jami/client-qt/daemon/build ➦ fa1a8d811 cmake --install . --prefix foo
-- Install configuration: "Debug"
amarok@atlas ~/Projects/jami/client-qt/daemon/build ➦ fa1a8d811 ls foo
``````
amarok@atlas ~/Projects/jami/client-qt/daemon/build ➦ fa1a8d811 cmake --install . --prefix foo
-- Install configuration: "Debug"
amarok@atlas ~/Projects/jami/client-qt/daemon/build ➦ fa1a8d811 ls foo
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/804Remove AccountCodecInfo2023-07-13T13:52:12ZSébastien BlinRemove AccountCodecInfoSeems useless with preferences and SystemCodecInfoSeems useless with preferences and SystemCodecInfoSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/802Common draft for accounts on device part of the same conversation2022-12-22T16:43:44ZFadi ShehadehCommon draft for accounts on device part of the same conversation# Scenario
* Account A and account B on the same device
* Account A and B are part of the same conversation
* Account A writes a draft
# Expected result
Account A's draft shouldn't appear in account B's draft.
Account A and account B ...# Scenario
* Account A and account B on the same device
* Account A and B are part of the same conversation
* Account A writes a draft
# Expected result
Account A's draft shouldn't appear in account B's draft.
Account A and account B should have different drafts.
# Current result
Both accounts have same draft.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/790SIP ip 2 ip issues2022-12-08T19:39:33ZSébastien BlinSIP ip 2 ip issues+ One account on 5060, one on 5061 => 5061 receives all calls even if :5060 is specified in the URI
+ ~~text messages doesn't work~~
+ IPv6 addresses not supported
+ Calling back doesn't work+ One account on 5060, one on 5061 => 5061 receives all calls even if :5060 is specified in the URI
+ ~~text messages doesn't work~~
+ IPv6 addresses not supported
+ Calling back doesn't workhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/775Unit test - some deadlock2022-10-17T18:16:18ZSébastien BlinUnit test - some deadlockSeems to be in sendSIPMessage while removing an accountSeems to be in sendSIPMessage while removing an accountSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/745Add some unit tests for plugins2022-09-09T12:56:18ZSébastien BlinAdd some unit tests for pluginsAline Gondim SantosAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/743Issue if two peers make a call at the same time (to each other)2023-03-31T15:56:51ZElysIssue if two peers make a call at the same time (to each other)Alice: Android (EMUI 12) 20220615-01
Bob: Windows 10: Jami (beta-)Version 202206231612
Steps to reproduce:
BOTH peers - BOB AND Alice tap the make video call button at the same time to call each other
It does not matter if Bob (the W...Alice: Android (EMUI 12) 20220615-01
Bob: Windows 10: Jami (beta-)Version 202206231612
Steps to reproduce:
BOTH peers - BOB AND Alice tap the make video call button at the same time to call each other
It does not matter if Bob (the Windows 10 user) accepts the call or not - Alice will always get the call
However:
Bob will never receive the call (the call fails)
Alice now makes a video call (Alice -> Bob) - although Bob never received the call
Maybe the developers can also try out the following scenarios:
- One peer makes an audio call the other peer makes a video call AT THE SAME TIME ("username1" <-> "username2")
- other OS: for example Windows 10 <-> Windows 10; or Android <-> Android, or Ubuntu >-> Windows 10 etc.
- "sameusername" <-> "sameusername"
- "username1" <-> "username2"
- and other situationsSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/719Call Audio Recording Not Working2022-07-13T13:28:17ZtrymeoutCall Audio Recording Not WorkingRecording files are not made when the call is an audio only. I would expect a audio or video file to be generated when recording a call were no ones camera is on.Recording files are not made when the call is an audio only. I would expect a audio or video file to be generated when recording a call were no ones camera is on.Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/649test/meson.build is outdated2022-03-29T12:28:37ZBruno Paganitest/meson.build is outdatedSince I’ve discovered you now provide meson for building, I’m switching Arch packages to it but I’ve encountered an issue:
```
jami-daemon/test/meson.build:59:0: ERROR: File unitTest/channel/testChannel.cpp does not exist.
```
The file s...Since I’ve discovered you now provide meson for building, I’m switching Arch packages to it but I’ve encountered an issue:
```
jami-daemon/test/meson.build:59:0: ERROR: File unitTest/channel/testChannel.cpp does not exist.
```
The file seems to be gone a while ago, but `test/meson.build` wasn’t updated accordingly. For now, I will just keep tests disabled (they were already, but I thought redoing the package would be a good opportunity to enable them).https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/678Wrong orientation: switch from a voice call to a video call, no option option...2021-12-21T20:39:50ZElysWrong orientation: switch from a voice call to a video call, no option option "answer in audio" [Android]Call (same Jami account): Windows 10 (Jami Version 202110011615) -> Android (Mate 20 Pro, EMUI 11, beta version of Jami)
The issue happens randomly:
Steps to reproduce:
You make a video call (Windows 10)
Android: You tap "answer in a...Call (same Jami account): Windows 10 (Jami Version 202110011615) -> Android (Mate 20 Pro, EMUI 11, beta version of Jami)
The issue happens randomly:
Steps to reproduce:
You make a video call (Windows 10)
Android: You tap "answer in audio"
Now you tap on the camera
Android: The user can see the preview of his own person in in portrait mode
**BUT**
Windows 10: The person using Jami (Windows 10) sees the Android user in landscape modehttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/636pjnath/turn_session: Bad TURN session state2021-12-29T17:08:23ZOlivier Dionpjnath/turn_session: Bad TURN session stateIn pjnath/turn_session.c:
```c
1192 PJ_ASSERT_RETURN(sess->state == PJ_TURN_STATE_READY, PJ_EINVALIDOP);
```
w...In pjnath/turn_session.c:
```c
1192 PJ_ASSERT_RETURN(sess->state == PJ_TURN_STATE_READY, PJ_EINVALIDOP);
```
where `sess->state` has the value `PJ_TURN_STATE_DESTROYING`.
Discovered by: agent's scenario `make-call`
Passive agent log: [passive.log.gz](/uploads/1b52269e24d286d04eb48eec9a9c99b5/passive.log.gz)
Active agent log: [make-call.log.gz](/uploads/00bf082f046739ccb6bbc43ef2430684/make-call.log.gz)
Backtrace trace, see Thread 51: [active-bt.txt](/uploads/7de8e0588d863186f39824c2dd721e30/gdb.txt)
Tested on 07804eb312350a1ec896c7f271464ca2b3475869Backloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/757DHT port and registration expiry values are hardcoded2022-11-18T20:26:06ZkrishnakDHT port and registration expiry values are hardcodedAndroid - Latest version
The DHT port and registration expiry values, revert back to 5060 and 60 when you revisit the Accounts->Advanced page. On linux there is no option to change the port number or the registration expiry values using...Android - Latest version
The DHT port and registration expiry values, revert back to 5060 and 60 when you revisit the Accounts->Advanced page. On linux there is no option to change the port number or the registration expiry values using the UI.
Is this a feature or a bug. If I choose to run my own bootstrap server, can I change the port and registration time out values.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/441ASAN: segv in video_rtp2021-05-28T21:09:24ZSébastien BlinASAN: segv in video_rtpVia IRC
```
[1613570498.245|27869|manager.cpp :1683 ] [call:4730700885720014] Remove local audio
[1613570498.246|27869|ringbufferpool.cpp:263 ] Unbind call 4730700885720014 from all bound calls
[1613570498.246|27869|a...Via IRC
```
[1613570498.245|27869|manager.cpp :1683 ] [call:4730700885720014] Remove local audio
[1613570498.246|27869|ringbufferpool.cpp:263 ] Unbind call 4730700885720014 from all bound calls
[1613570498.246|27869|audiostream.cpp :147 ] Destroying stream with device alsa_output.pci-0000_00_1b.0.analog-stereo.echo-cancel
[1613570498.246|27869|sipcall.cpp :444 ] [call:4730700885720014] Terminate SIP session
[1613570498.251|27869|sip_utils.cpp :210 ] Add header to SIP message: "User-Agent: Jami Daemon 9.9.0 (linux)"
[1613570498.254|27869|sipcall.cpp :1298 ] [call:4730700885720014] stopping all medias
AddressSanitizer:DEADLYSIGNAL
=================================================================
==27869==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000038 (pc 0x5644c790eadf bp 0x7fffa6e501f0 sp 0x7fffa6e50170 T0)
==27869==The signal is caused by a READ memory access.
==27869==Hint: address points to the zero page.
Dropped 54 packets with high delay
Dropped 28 packets with high delay
Dropped 62 packets with high delay
[1613570514.887|27870|upnp_context.cpp :506 ] Protocol status [PUPNP] has valid IGD(s) YES
[1613570514.889|27870|upnp_context.cpp :541 ] Mapping status [TCP] - overall 4: 4 open (4 ready + 0 in use), 0 pending, 0 in-progress, 0 failed
[1613570514.891|27870|upnp_context.cpp :541 ] Mapping status [UDP] - overall 9: 9 open (8 ready + 1 in use), 0 pending, 0 in-progress, 0 failed
#0 0x5644c790eade in jami::MediaDecoder::getStream(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const daemon/src/media/media_decoder.cpp:731
#1 0x5644c7ae1eaf in jami::video::VideoReceiveThread::getInfo() const daemon/src/media/video/video_receive_thread.cpp:265
#2 0x5644c7a1cd82 in jami::video::VideoRtpSession::deinitRecorder(std::shared_ptr<jami::MediaRecorder>&) daemon/src/media/video/video_rtp_session.cpp:672
#3 0x5644c78d036f in jami::SIPCall::stopAllMedia() daemon/src/sip/sipcall.cpp:1300
#4 0x5644c78d05fb in jami::SIPCall::hangup(int) daemon/src/sip/sipcall.cpp:564
#5 0x5644c78678d5 in jami::Manager::hangupCall(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) daemon/src/manager.cpp:1063
#6 0x5644c7825d57 in DBusCallManager::hangUp(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) daemon/bin/dbus/dbuscallmanager.cpp:56
#7 0x5644c7825d57 in cx::ring::Ring::CallManager_adaptor::_hangUp_stub(DBus::CallMessage const&) daemon/bin/dbus/dbuscallmanager.adaptor.h:863
#8 0x5644c7822ada in DBus::Callback<cx::ring::Ring::CallManager_adaptor, DBus::Message, DBus::CallMessage const&>::call(DBus::CallMessage const&) const daemon/contrib/x86_64-linux-gnu/include/dbus-c++-1/dbus-c++/util.h:283
#9 0x5644c7847274 in DBus::Slot<DBus::Message, DBus::CallMessage const&>::call(DBus::CallMessage const&) const ../include/dbus-c++/util.h:252
#10 0x5644c7847274 in DBus::InterfaceAdaptor::dispatch_method(DBus::CallMessage const&) daemon/contrib/native/dbus-cpp/src/interface.cpp:64
#11 0x5644c784ee04 in DBus::ObjectAdaptor::handle_message(DBus::Message const&) daemon/contrib/native/dbus-cpp/src/object.cpp:220
#12 0x5644c784c6e5 in DBus::ObjectAdaptor::Private::message_function_stub(DBusConnection*, DBusMessage*, void*) daemon/contrib/native/dbus-cpp/src/object.cpp:92
#13 0x7fbac08b4bac (/lib/x86_64-linux-gnu/libdbus-1.so.3+0x26bac)
#14 0x7fbac08a5713 in dbus_connection_dispatch (/lib/x86_64-linux-gnu/libdbus-1.so.3+0x17713)
#15 0x5644c7842aaf in DBus::Connection::Private::do_dispatch() daemon/contrib/native/dbus-cpp/src/connection.cpp:132
#16 0x5644c7844b59 in DBus::Dispatcher::dispatch_pending(std::__cxx11::list<DBus::Connection::Private*, std::allocator<DBus::Connection::Private*> >&) daemon/contrib/native/dbus-cpp/src/dispatcher.cpp:236
#17 0x5644c7844c5c in DBus::Dispatcher::dispatch_pending() daemon/contrib/native/dbus-cpp/src/dispatcher.cpp:198
#18 0x5644c784612e in DBus::BusDispatcher::do_iteration() daemon/contrib/native/dbus-cpp/src/eventloop-integration.cpp:147
#19 0x5644c784612e in DBus::BusDispatcher::enter() daemon/contrib/native/dbus-cpp/src/eventloop-integration.cpp:99
#20 0x5644c77f9c8e in DBusClient::event_loop() daemon/bin/dbus/dbusclient.cpp:272
#21 0x5644c77ec76e in main daemon/bin/main.cpp:222
#22 0x7fbabf28c09a in __libc_start_main ../csu/libc-start.c:308
#23 0x5644c77f9479 (/usr/lib/ring/dring+0x158479)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV daemon/src/media/media_decoder.cpp:731 in jami::MediaDecoder::getStream(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const
==27869==ABORTING
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/440ASAN crash on double-free in NameDirectory2021-02-19T23:09:21ZSébastien BlinASAN crash on double-free in NameDirectory# Scenario
+ Search a username
+ while the search is in progress, cut the client (will finish the daemon)
# Current result
```
[1613568185.981|27014|sipvoiplink.cpp :709 ] Shutdown SIPVoIPLink@0x61900000f080...
[1613568185.981|2701...# Scenario
+ Search a username
+ while the search is in progress, cut the client (will finish the daemon)
# Current result
```
[1613568185.981|27014|sipvoiplink.cpp :709 ] Shutdown SIPVoIPLink@0x61900000f080...
[1613568185.981|27014|siptransport.cpp :196 ] ~SipTransportBroker@0x60d0000002b0
[1613568185.981|27014|siptransport.cpp :203 ] destroying SipTransportBroker@0x60d0000002b0
[1613568186.445|27014|sipvoiplink.cpp :726 ] SIPVoIPLink@0x61900000f080 is shutdown
[1613568186.449|27014|smartools.cpp :67 ] Stop SmartInfo
[1613568186.452|27014|namedirectory.cpp :166 ] Address lookup for XXXXXX failed with code=0
=================================================================
==27014==ERROR: AddressSanitizer: attempting double-free on 0x60600010da20 in thread T0:
[1613568187.609|27015|pupnp.cpp :1268 ] PUPnP: Found 0 allocated mappings on IGD 192.168.122.1
[1613568187.609|27015|upnp_context.cpp :741 ] Send request for pending mapping JAMI-UDP:21867 to IGD 192.168.122.1:0
[1613568187.609|27015|upnp_context.cpp :370 ] Request mapping JAMI-UDP:21867 using protocol [UPNP]
[1613568187.609|27015|mapping.cpp :155 ] Changed mapping JAMI-UDP:21867 state from PENDING to IN_PROGRESS
[1613568187.609|27015|pupnp.cpp :446 ] PUPnP: Attempting to open port JAMI-UDP:21867
[1613568187.610|27015|pupnp.cpp :516 ] PUPnP: Sent request to open port JAMI-UDP:21867
[1613568187.610|27015|upnp_context.cpp :506 ] Protocol status [PUPNP] has valid IGD(s) YES
[1613568187.610|27015|upnp_context.cpp :541 ] Mapping status [TCP] - overall 0: 0 open (0 ready + 0 in use), 0 pending, 0 in-progress, 0 failed
[1613568187.610|27015|upnp_context.cpp :418 ] Provision 4 new mappings of type [TCP]
[1613568187.610|27015|upnp_context.cpp :370 ] Request mapping JAMI-TCP:13587 using protocol [UPNP]
[1613568187.610|27015|mapping.cpp :155 ] Changed mapping JAMI-TCP:13587 state from PENDING to IN_PROGRESS
[1613568187.610|27015|pupnp.cpp :446 ] PUPnP: Attempting to open port JAMI-TCP:13587
#0 0x7f663f5c7aa0 in operator delete(void*) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xebaa0)
#1 0x55f876b1055d in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > >::deallocate(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >*, unsigned long) /usr/include/c++/8/ext/new_allocator.h:125
#2 0x55f876b1055d in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > > >::deallocate(std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > >&, std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >*, unsigned long) /usr/include/c++/8/bits/alloc_traits.h:462
#3 0x55f876b1055d in std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<dht::http::Request> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > >::_M_put_node(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >*) /usr/include/c++/8/bits/stl_tree.h:603
#4 0x55f876b1055d in std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<dht::http::Request> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > >::_M_drop_node(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >*) /usr/include/c++/8/bits/stl_tree.h:670
#5 0x55f876b1055d in std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<dht::http::Request> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >*) /usr/include/c++/8/bits/stl_tree.h:1874
#6 0x55f876b1053e in std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<dht::http::Request> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >*) /usr/include/c++/8/bits/stl_tree.h:1872
#7 0x55f876b1053e in std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<dht::http::Request> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >*) /usr/include/c++/8/bits/stl_tree.h:1872
#8 0x55f876b10779 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<dht::http::Request> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > >::~_Rb_tree() /usr/include/c++/8/bits/stl_tree.h:1872
#9 0x55f876b10779 in std::map<unsigned int, std::shared_ptr<dht::http::Request>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > >::~map() /usr/include/c++/8/bits/stl_map.h:300
#10 0x55f876b10779 in jami::NameDirectory::~NameDirectory() daemon/src/jamidht/namedirectory.h:49
#11 0x55f876b10779 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, jami::NameDirectory>::~pair() /usr/include/c++/8/bits/stl_pair.h:208
#12 0x55f876b10779 in void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, jami::NameDirectory> > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, jami::NameDirectory> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, jami::NameDirectory>*) /usr/include/c++/8/ext/new_allocator.h:140
#13 0x55f876b10779 in void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, jami::NameDirectory> > > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, jami::NameDirectory> >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, jami::NameDirectory> > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, jami::NameDirectory>*) /usr/include/c++/8/bits/alloc_traits.h:487
#14 0x55f876b10779 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, jami::NameDirectory>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, jami::NameDirectory> >, 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, jami::NameDirectory> > >::_M_destroy_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, jami::NameDirectory> >*) /usr/include/c++/8/bits/stl_tree.h:661
#15 0x55f876b10779 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, jami::NameDirectory>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, jami::NameDirectory> >, 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, jami::NameDirectory> > >::_M_drop_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, jami::NameDirectory> >*) /usr/include/c++/8/bits/stl_tree.h:669
#16 0x55f876b10779 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, jami::NameDirectory>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, jami::NameDirectory> >, 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, jami::NameDirectory> > >::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, jami::NameDirectory> >*) /usr/include/c++/8/bits/stl_tree.h:1874
#17 0x7f663de31d8b in __run_exit_handlers /build/glibc-vjB4T1/glibc-2.28/stdlib/exit.c:108
#18 0x7f663de31eb9 in __GI_exit /build/glibc-vjB4T1/glibc-2.28/stdlib/exit.c:139
#19 0x7f663de1c0a1 in __libc_start_main ../csu/libc-start.c:342
#20 0x55f87694d479 (/usr/lib/ring/dring+0x158479)
0x60600010da20 is located 0 bytes inside of 56-byte region [0x60600010da20,0x60600010da58)
freed by thread T0 here:
#0 0x7f663f5c7aa0 in operator delete(void*) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xebaa0)
#1 0x55f876b10bf7 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<dht::http::Request> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > >::erase(unsigned int const&) /usr/include/c++/8/ext/new_allocator.h:125
previously allocated by thread T0 here:
#0 0x7f663f5c6d30 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xead30)
#1 0x55f876b11876 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > >::allocate(unsigned long, void const*) /usr/include/c++/8/ext/new_allocator.h:111
#2 0x55f876b11876 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > >&, unsigned long) /usr/include/c++/8/bits/alloc_traits.h:436
#3 0x55f876b11876 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<dht::http::Request> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > >::_M_get_node() /usr/include/c++/8/bits/stl_tree.h:599
#4 0x55f876b11876 in std::_Rb_tree_node<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >* std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<dht::http::Request> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<unsigned int const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<unsigned int const&>&&, std::tuple<>&&) /usr/include/c++/8/bits/stl_tree.h:653
#5 0x55f876b11876 in std::_Rb_tree_iterator<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::shared_ptr<dht::http::Request> >, std::_Select1st<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<unsigned int const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > >, std::piecewise_construct_t const&, std::tuple<unsigned int const&>&&, std::tuple<>&&) /usr/include/c++/8/bits/stl_tree.h:2414
#6 0x55f876b11876 in std::map<unsigned int, std::shared_ptr<dht::http::Request>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<dht::http::Request> > > >::operator[](unsigned int const&) /usr/include/c++/8/bits/stl_map.h:499
#7 0x61500002330f (<unknown module>)
SUMMARY: AddressSanitizer: double-free (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xebaa0) in operator delete(void*)
==27014==ABORTING
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/386After swarm v1: remove p2p.cpp and related files, lot of clean can be done2022-11-26T22:44:00ZSébastien BlinAfter swarm v1: remove p2p.cpp and related files, lot of clean can be donehttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/385code smell: some cleanup is necessary in alsalayer2021-07-09T20:55:58ZSébastien Blincode smell: some cleanup is necessary in alsalayerIn src/media/audio/alsa/alsalayer.*
+ std::vector<AudioSample> playbackIBuff_; and captureIBuff_; are unused
+ status_ = AudioLayer::Status::Started; is locked but is atomic so shouldn't be necessaryIn src/media/audio/alsa/alsalayer.*
+ std::vector<AudioSample> playbackIBuff_; and captureIBuff_; are unused
+ status_ = AudioLayer::Status::Started; is locked but is atomic so shouldn't be necessaryhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/329Video-conference: Make moderators able to hang up a call2021-01-06T14:55:46ZSébastien BlinVideo-conference: Make moderators able to hang up a callA moderator is only able to change the layout currently, only the host can hang up calls. This needs some change:
+ Add a hangupParticipant API for the daemon which takes the URI of the participant to hang
+ If it's the host, just ha...A moderator is only able to change the layout currently, only the host can hang up calls. This needs some change:
+ Add a hangupParticipant API for the daemon which takes the URI of the participant to hang
+ If it's the host, just hang up the call
+ If not, send to the host of the call a confOrder (https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/6.1.-Conference-Protocol) to ask the host to hang up the call for this participant
+ Clients should show hangup if they are moderatorIteration 25Pierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/187TLSSession + ICETransport make the API async2020-11-10T21:44:34ZSébastien BlinTLSSession + ICETransport make the API asyncReplace all waitxxx in the API by something asyncReplace all waitxxx in the API by something asynchttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/178Conferences: record doesn't work (no file created)2020-09-08T15:31:08ZSébastien BlinConferences: record doesn't work (no file created)Pierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/159Clean logs from jams + split account2019-10-07T17:43:14ZSébastien BlinClean logs from jams + split accountIteration 16 (POC prep)