savoirfairelinux issueshttps://git.jami.net/groups/savoirfairelinux/-/issues2020-09-30T17:33:50Zhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/118Settings: items stretch vertically2020-09-30T17:33:50ZAndreas TraczykSettings: items stretch verticallyThey should be in a vertically fixed layout
![image](/uploads/c815a3564315f4fa450ce2f13fe63b12/image.png)They should be in a vertically fixed layout
![image](/uploads/c815a3564315f4fa450ce2f13fe63b12/image.png)Itération 21Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/314Swarm: Test transmit messages for non connected peers2021-04-19T14:20:57ZSébastien BlinSwarm: Test transmit messages for non connected peers# Done
+ An account can add a member which is offline to a conversation. When the member is online, they should receives the request and be able to clone it.
+ Add test receives conversations request on loading account
+ Lot of unwanted...# Done
+ An account can add a member which is offline to a conversation. When the member is online, they should receives the request and be able to clone it.
+ Add test receives conversations request on loading account
+ Lot of unwanted packet for references discovery
+ An account should ask a request if a conversation is unknown (request missed) & add test
+ Test when loading account, a user should connect to peers and retrieve messages
+ Add test receives messages when already have conversation on loading account
+ Add test ping pong messages
+ Updates doc for application/im-gitmessage-id. Doc that conversation request is now a SIP message (for messageEngine mechanisms)
+ Between 2 computer: Something went wrong when cloning conversation: Couldn't clone repository
+ Try to clone on invalid hash 000000000000000...
+ Test conversation 100%Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/100TURN realm is missing from connectivity settings2020-09-30T17:33:37ZGuillaume HellerTURN realm is missing from connectivity settingsItération 21Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/97media settings: can't change fps2020-09-29T22:52:31ZSébastien Blinmedia settings: can't change fpsItération 21Ming Rui ZhangMing Rui Zhanghttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/96Wrong contact selection2020-09-29T22:53:09ZSébastien BlinWrong contact selection# Reproduce step
1. Select conversation with first contact
2. Search a non contact (eg "test")
3. Try to select this non contact
# Expected result
The conversation with the non contact should be shown
# Current result
The conversati...# Reproduce step
1. Select conversation with first contact
2. Search a non contact (eg "test")
3. Try to select this non contact
# Expected result
The conversation with the non contact should be shown
# Current result
The conversation stay to previous contactItération 21Albert Babí OllerAlbert Babí Ollerhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/312Swarm: Support calls from swarm with multiple members2022-11-17T18:37:36ZSébastien BlinSwarm: Support calls from swarm with multiple members# Documentation
https://docs.jami.net/technical/swarm.html#call-in-swarm
# Stack
https://review.jami.net/q/topic:call-swarm# Documentation
https://docs.jami.net/technical/swarm.html#call-in-swarm
# Stack
https://review.jami.net/q/topic:call-swarmSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/311Messages not syncing across devices2022-09-05T14:19:42ZCalle KaboMessages not syncing across devicesScenario:
I'm logged in to my ring account on android and linux (my laptop).
I send a message to a contact from my android device.
Currently:
My message doesn't show up on my laptop
Expectation:
My message to show up on my laptopScenario:
I'm logged in to my ring account on android and linux (my laptop).
I send a message to a contact from my android device.
Currently:
My message doesn't show up on my laptop
Expectation:
My message to show up on my laptopSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/76Elide multiline texts2020-09-22T12:58:08ZSébastien BlinElide multiline texts![smartlistelide](/uploads/9a7d707624b89c40a1391bf378490c9e/smartlistelide.png)
The message was with multiple lines![smartlistelide](/uploads/9a7d707624b89c40a1391bf378490c9e/smartlistelide.png)
The message was with multiple linesItération 21Albert Babí OllerMing Rui ZhangAlbert Babí Ollerhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/307heap use-after-free2020-09-16T17:51:39ZSébastien Blinheap use-after-free```
=================================================================
==2366477==ERROR: AddressSanitizer: heap-use-after-free on address 0x6130000b40c8 at pc 0x7f38b551857b bp 0x7f389e31eba0 sp 0x7f389e31eb90
READ of size 8 at 0x6130000b...```
=================================================================
==2366477==ERROR: AddressSanitizer: heap-use-after-free on address 0x6130000b40c8 at pc 0x7f38b551857b bp 0x7f389e31eba0 sp 0x7f389e31eb90
READ of size 8 at 0x6130000b40c8 thread T176
#0 0x7f38b551857a in jami::DhtPeerConnector::Impl::ClientConnector::process()::{lambda(jami::tls::TlsSessionState)#2}::operator()(jami::tls::TlsSessionState) const::{lambda(unsigned long const&, DRing::DataTransferEventCode const&)#2}::operator()(unsigned long const, DRing::DataTransferEventCode const) const /home/amarok/Projects/jami/daemon/src/jamidht/p2p.cpp:475
#1 0x7f38b5523a9a in std::_Function_handler<void (unsigned long const&, DRing::DataTransferEventCode const&), jami::DhtPeerConnector::Impl::ClientConnector::process()::{lambda(jami::tls::TlsSessionState)#2}::operator()(jami::tls::TlsSessionState) const::{lambda(unsigned long const&, DRing::DataTransferEventCode const&)#2}>::_M_invoke(std::_Any_data const&, unsigned long const&, DRing::DataTransferEventCode const&) /usr/include/c++/9/bits/std_function.h:300
#2 0x7f38b4f8ab32 in std::function<void (unsigned long const&, DRing::DataTransferEventCode const&)>::operator()(unsigned long const&, DRing::DataTransferEventCode const&) const /usr/include/c++/9/bits/std_function.h:688
#3 0x7f38b4f7dcbe in jami::SubOutgoingFileTransfer::emit(DRing::DataTransferEventCode) const /home/amarok/Projects/jami/daemon/src/data_transfer.cpp:468
#4 0x7f38b4f7c993 in jami::SubOutgoingFileTransfer::closeAndEmit(DRing::DataTransferEventCode) const /home/amarok/Projects/jami/daemon/src/data_transfer.cpp:400
#5 0x7f38b4f7c908 in jami::SubOutgoingFileTransfer::close() /home/amarok/Projects/jami/daemon/src/data_transfer.cpp:390
#6 0x7f38b4f7e562 in jami::OutgoingFileTransfer::close() /home/amarok/Projects/jami/daemon/src/data_transfer.cpp:573
#7 0x7f38b4f82b62 in jami::DataTransferFacade::close(unsigned long const&) /home/amarok/Projects/jami/daemon/src/data_transfer.cpp:916
#8 0x7f38b54fce1c in operator() /home/amarok/Projects/jami/daemon/src/jamidht/p2p.cpp:820
#9 0x7f38b55075af in _M_invoke /usr/include/c++/9/bits/std_function.h:300
#10 0x7f38b57c4335 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() (/home/amarok/Projects/jami/daemon/src/.libs/libring.so.0+0x10a3335)
#11 0x7f38b3ae93d3 (/lib64/libstdc++.so.6+0xd73d3)
#12 0x7f38b41424e1 in start_thread (/lib64/libpthread.so.0+0x94e1)
#13 0x7f38b37ea6c2 in __GI___clone (/lib64/libc.so.6+0x1016c2)
0x6130000b40c8 is located 8 bytes inside of 344-byte region [0x6130000b40c0,0x6130000b4218)
freed by thread T176 here:
#0 0x7f38b6ebf175 in operator delete(void*, unsigned long) (/lib64/libasan.so.5+0x111175)
#1 0x7f38b55262ce in std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector>::operator()(jami::DhtPeerConnector::Impl::ClientConnector*) const /usr/include/c++/9/bits/unique_ptr.h:81
#2 0x7f38b551f6de in std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> >::~unique_ptr() /usr/include/c++/9/bits/unique_ptr.h:292
#3 0x7f38b553c193 in std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > >::~pair() /usr/include/c++/9/bits/stl_pair.h:208
#4 0x7f38b553c1b3 in void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > > >::destroy<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > >(std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > >*) /usr/include/c++/9/ext/new_allocator.h:153
#5 0x7f38b5539de4 in void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > > > >::destroy<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > >(std::allocator<std::_Rb_tree_node<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > > >&, std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > >*) /usr/include/c++/9/bits/alloc_traits.h:497
#6 0x7f38b553450a in std::_Rb_tree<std::pair<dht::Hash<20ul>, unsigned long>, std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > >, std::_Select1st<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > >, std::less<std::pair<dht::Hash<20ul>, unsigned long> >, std::allocator<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > > >::_M_destroy_node(std::_Rb_tree_node<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > >*) /usr/include/c++/9/bits/stl_tree.h:642
#7 0x7f38b5529d0c in std::_Rb_tree<std::pair<dht::Hash<20ul>, unsigned long>, std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > >, std::_Select1st<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > >, std::less<std::pair<dht::Hash<20ul>, unsigned long> >, std::allocator<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > > >::_M_drop_node(std::_Rb_tree_node<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > >*) /usr/include/c++/9/bits/stl_tree.h:650
#8 0x7f38b55369d3 in std::_Rb_tree<std::pair<dht::Hash<20ul>, unsigned long>, std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > >, std::_Select1st<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > >, std::less<std::pair<dht::Hash<20ul>, unsigned long> >, std::allocator<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > > >::_M_erase_aux(std::_Rb_tree_const_iterator<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > >) /usr/include/c++/9/bits/stl_tree.h:2511
#9 0x7f38b552fcf5 in std::_Rb_tree<std::pair<dht::Hash<20ul>, unsigned long>, std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > >, std::_Select1st<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > >, std::less<std::pair<dht::Hash<20ul>, unsigned long> >, std::allocator<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > > >::_M_erase_aux(std::_Rb_tree_const_iterator<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > >, std::_Rb_tree_const_iterator<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > >) /usr/include/c++/9/bits/stl_tree.h:2525
#10 0x7f38b552686c in std::_Rb_tree<std::pair<dht::Hash<20ul>, unsigned long>, std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > >, std::_Select1st<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > >, std::less<std::pair<dht::Hash<20ul>, unsigned long> >, std::allocator<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > > >::erase(std::pair<dht::Hash<20ul>, unsigned long> const&) /usr/include/c++/9/bits/stl_tree.h:2536
#11 0x7f38b551f842 in std::map<std::pair<dht::Hash<20ul>, unsigned long>, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> >, std::less<std::pair<dht::Hash<20ul>, unsigned long> >, std::allocator<std::pair<std::pair<dht::Hash<20ul>, unsigned long> const, std::unique_ptr<jami::DhtPeerConnector::Impl::ClientConnector, std::default_delete<jami::DhtPeerConnector::Impl::ClientConnector> > > > >::erase(std::pair<dht::Hash<20ul>, unsigned long> const&) /usr/include/c++/9/bits/stl_map.h:1068
#12 0x7f38b54fcc3b in operator() /home/amarok/Projects/jami/daemon/src/jamidht/p2p.cpp:809
#13 0x7f38b55075af in _M_invoke /usr/include/c++/9/bits/std_function.h:300
#14 0x7f38b57c4335 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() (/home/amarok/Projects/jami/daemon/src/.libs/libring.so.0+0x10a3335)
#15 0x7f38b52c0877 in dht::Hash<20ul>::to_c_str() const /home/amarok/Projects/jami/daemon/contrib/x86_64-redhat-linux/include/opendht/infohash.h:367
previously allocated by thread T183 here:
#0 0x7f38b6ebda97 in operator new(unsigned long) (/lib64/libasan.so.5+0x10fa97)
#1 0x7f38b551f5e3 in std::_MakeUniq<jami::DhtPeerConnector::Impl::ClientConnector>::__single_object std::make_unique<jami::DhtPeerConnector::Impl::ClientConnector, jami::DhtPeerConnector::Impl&, unsigned long const&, dht::Hash<20ul> const&, std::shared_ptr<dht::crypto::Certificate> const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::function<void (jami::PeerConnection*)> const&>(jami::DhtPeerConnector::Impl&, unsigned long const&, dht::Hash<20ul> const&, std::shared_ptr<dht::crypto::Certificate> const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::function<void (jami::PeerConnection*)> const&) /usr/include/c++/9/bits/unique_ptr.h:857
#2 0x7f38b54fc8c1 in jami::DhtPeerConnector::Impl::onAddDevice(dht::Hash<20ul> const&, unsigned long const&, std::shared_ptr<dht::crypto::Certificate> const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::function<void (jami::PeerConnection*)> const&) /home/amarok/Projects/jami/daemon/src/jamidht/p2p.cpp:788
#3 0x7f38b54ffd9c in operator() /home/amarok/Projects/jami/daemon/src/jamidht/p2p.cpp:1016
#4 0x7f38b5508d45 in _M_invoke /usr/include/c++/9/bits/std_function.h:300
#5 0x7f38b559288c in std::function<void (std::shared_ptr<dht::crypto::Certificate> const&)>::operator()(std::shared_ptr<dht::crypto::Certificate> const&) const /usr/include/c++/9/bits/std_function.h:688
#6 0x7f38b558250e in jami::AccountManager::findCertificate(dht::Hash<20ul> const&, std::function<void (std::shared_ptr<dht::crypto::Certificate> const&)>&&) /home/amarok/Projects/jami/daemon/src/jamidht/account_manager.cpp:430
#7 0x7f38b537dd77 in jami::JamiAccount::findCertificate(dht::Hash<20ul> const&, std::function<void (std::shared_ptr<dht::crypto::Certificate> const&)>&&) /home/amarok/Projects/jami/daemon/src/jamidht/jamiaccount.cpp:2586
#8 0x7f38b55007e2 in operator() /home/amarok/Projects/jami/daemon/src/jamidht/p2p.cpp:1013
#9 0x7f38b5508ff5 in _M_invoke /usr/include/c++/9/bits/std_function.h:300
#10 0x7f38b55934ea in std::function<void (dht::Hash<20ul> const&)>::operator()(dht::Hash<20ul> const&) const /usr/include/c++/9/bits/std_function.h:688
#11 0x7f38b5585118 in operator() /home/amarok/Projects/jami/daemon/src/jamidht/account_manager.cpp:559
#12 0x7f38b5588d4c in _M_invoke /usr/include/c++/9/bits/std_function.h:285
#13 0x7f38b5595cc6 in std::function<bool (jami::DeviceAnnouncement&&)>::operator()(jami::DeviceAnnouncement&&) const /usr/include/c++/9/bits/std_function.h:688
#14 0x7f38b559378e in dht::DhtRunner::get<jami::DeviceAnnouncement>(dht::Hash<20ul>, std::function<bool (jami::DeviceAnnouncement&&)>, std::function<void (bool)>)::{lambda(std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&)#1}::operator()(std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&) const /home/amarok/Projects/jami/daemon/contrib/x86_64-redhat-linux/include/opendht/dhtrunner.h:112
#15 0x7f38b559a684 in std::_Function_handler<bool (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&), dht::DhtRunner::get<jami::DeviceAnnouncement>(dht::Hash<20ul>, std::function<bool (jami::DeviceAnnouncement&&)>, std::function<void (bool)>)::{lambda(std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&)#1}>::_M_invoke(std::_Any_data const&, std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&) /usr/include/c++/9/bits/std_function.h:285
#16 0x7f38b58788e6 in std::_Function_handler<bool (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&), dht::SecureDht::getCallbackFilter(std::function<bool (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&)> const&, dht::Value::Filter&&)::{lambda(std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&)#1}>::_M_invoke(std::_Any_data const&, std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&) (/home/amarok/Projects/jami/daemon/src/.libs/libring.so.0+0x11578e6)
Thread T176 created by T0 here:
#0 0x7f38b6de8955 in pthread_create (/lib64/libasan.so.5+0x3a955)
#1 0x7f38b3ae9698 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/lib64/libstdc++.so.6+0xd7698)
Thread T183 created by T1 here:
#0 0x7f38b6de8955 in pthread_create (/lib64/libasan.so.5+0x3a955)
#1 0x7f38b3ae9698 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/lib64/libstdc++.so.6+0xd7698)
Thread T1 created by T0 here:
#0 0x7f38b6de8955 in pthread_create (/lib64/libasan.so.5+0x3a955)
#1 0x7f38b3ae9698 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/lib64/libstdc++.so.6+0xd7698)
#2 0x7f38b4fa185c in jami::ScheduledExecutor::ScheduledExecutor() /home/amarok/Projects/jami/daemon/src/scheduled_executor.cpp:29
#3 0x7f38b4e2225e in jami::Manager::ManagerPimpl::ManagerPimpl(jami::Manager&) /home/amarok/Projects/jami/daemon/src/manager.cpp:443
#4 0x7f38b4e253d7 in jami::Manager::Manager() /home/amarok/Projects/jami/daemon/src/manager.cpp:720
#5 0x7f38b4e251a3 in jami::Manager::instance() /home/amarok/Projects/jami/daemon/src/manager.cpp:695
#6 0x7f38b4f399c0 in DRing::init(DRing::InitFlag) /home/amarok/Projects/jami/daemon/src/ring_api.cpp:57
#7 0x44c5e3 in DBusClient::initLibrary(int) /home/amarok/Projects/jami/daemon/bin/dbus/dbusclient.cpp:245
#8 0x441104 in DBusClient::DBusClient(int, bool) /home/amarok/Projects/jami/daemon/bin/dbus/dbusclient.cpp:108
#9 0x440895 in void __gnu_cxx::new_allocator<DBusClient>::construct<DBusClient, int&, bool&>(DBusClient*, int&, bool&) (/home/amarok/Projects/jami/daemon/bin/.libs/lt-dring+0x440895)
#10 0x440675 in void std::allocator_traits<std::allocator<DBusClient> >::construct<DBusClient, int&, bool&>(std::allocator<DBusClient>&, DBusClient*, int&, bool&) (/home/amarok/Projects/jami/daemon/bin/.libs/lt-dring+0x440675)
#11 0x44030c in std::_Sp_counted_ptr_inplace<DBusClient, std::allocator<DBusClient>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<int&, bool&>(std::allocator<DBusClient>, int&, bool&) (/home/amarok/Projects/jami/daemon/bin/.libs/lt-dring+0x44030c)
#12 0x43fda3 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<DBusClient, std::allocator<DBusClient>, int&, bool&>(DBusClient*&, std::_Sp_alloc_shared_tag<std::allocator<DBusClient> >, int&, bool&) (/home/amarok/Projects/jami/daemon/bin/.libs/lt-dring+0x43fda3)
#13 0x43f989 in std::__shared_ptr<DBusClient, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<DBusClient>, int&, bool&>(std::_Sp_alloc_shared_tag<std::allocator<DBusClient> >, int&, bool&) (/home/amarok/Projects/jami/daemon/bin/.libs/lt-dring+0x43f989)
#14 0x43efd5 in std::shared_ptr<DBusClient>::shared_ptr<std::allocator<DBusClient>, int&, bool&>(std::_Sp_alloc_shared_tag<std::allocator<DBusClient> >, int&, bool&) (/home/amarok/Projects/jami/daemon/bin/.libs/lt-dring+0x43efd5)
#15 0x43e6c6 in std::shared_ptr<DBusClient> std::allocate_shared<DBusClient, std::allocator<DBusClient>, int&, bool&>(std::allocator<DBusClient> const&, int&, bool&) (/home/amarok/Projects/jami/daemon/bin/.libs/lt-dring+0x43e6c6)
#16 0x43de28 in std::shared_ptr<DBusClient> std::make_shared<DBusClient, int&, bool&>(int&, bool&) (/home/amarok/Projects/jami/daemon/bin/.libs/lt-dring+0x43de28)
#17 0x43cda1 in main /home/amarok/Projects/jami/daemon/bin/main.cpp:218
#18 0x7f38b37101a2 in __libc_start_main (/lib64/libc.so.6+0x271a2)
SUMMARY: AddressSanitizer: heap-use-after-free /home/amarok/Projects/jami/daemon/src/jamidht/p2p.cpp:475 in jami::DhtPeerConnector::Impl::ClientConnector::process()::{lambda(jami::tls::TlsSessionState)#2}::operator()(jami::tls::TlsSessionState) const::{lambda(unsigned long const&, DRing::DataTransferEventCode const&)#2}::operator()(unsigned long const, DRing::DataTransferEventCode const) const
Shadow bytes around the buggy address:
0x0c268000e7c0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c268000e7d0: fd fd fd fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c268000e7e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c268000e7f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c268000e800: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x0c268000e810: fa fa fa fa fa fa fa fa fd[fd]fd fd fd fd fd fd
0x0c268000e820: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c268000e830: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c268000e840: fd fd fd fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c268000e850: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c268000e860: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==2366477==ABORTING
```Itération 21Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-client-gnome/-/issues/1197Homogeneize wizard with other clients2020-10-13T18:15:56ZSébastien BlinHomogeneize wizard with other clientsSome changes are needed to follow what we have in all clients:
1. Update strings for welcome page
![welcome](/uploads/005f490050030885552fce0b269662dd/welcome.png)
2. Add SIP account
Create only when validated: cf
![sip](/uploads/d860...Some changes are needed to follow what we have in all clients:
1. Update strings for welcome page
![welcome](/uploads/005f490050030885552fce0b269662dd/welcome.png)
2. Add SIP account
Create only when validated: cf
![sip](/uploads/d86086f6c07f086d5484fce84e5f1d50/sip.png)
3. Update strings
![Capture_d_écran_du_2020-09-22_14-42-03](/uploads/5e05454b9dd5b490a019bf6321bf5b9e/Capture_d_écran_du_2020-09-22_14-42-03.png)
![Capture_d_écran_du_2020-09-22_14-41-58](/uploads/08b52c4246489dc098564f6919151793/Capture_d_écran_du_2020-09-22_14-41-58.png)
![Capture_d_écran_du_2020-09-22_14-41-50](/uploads/64f8117d4543e4bebc8149e30cdc6c3f/Capture_d_écran_du_2020-09-22_14-41-50.png)
4. Create a jami account should be divided in 4 steps:
a. Choose username ![username](/uploads/4f84fbac0370aad2e9591f4a20b0b8a3/username.png)
b. Encrypt with password ![passowrd](/uploads/86f4cd4ca796ece567ab843b516c3482/passowrd.png)
c. Profile page (in background: generate the keys, it can be async) ![profile](/uploads/c123b07245ce396ad5cbd86f49c47cf4/profile.png)
d. Backup page => nothing to do, just keep the one we have todayItération 21Amin BandaliAmin Bandalihttps://git.jami.net/savoirfairelinux/jami-client-gnome/-/issues/1196Copy rdv interface from client-qt2020-10-27T23:01:09ZSébastien BlinCopy rdv interface from client-qtItération 21Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/305Swarm: remove conversation2021-06-12T11:37:12ZSébastien BlinSwarm: remove conversationImplement https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#remove-a-conversationImplement https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#remove-a-conversationSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/302Swarm: Get conversations requests & sync2021-06-12T11:37:24ZSébastien BlinSwarm: Get conversations requests & synccf https://review.jami.net/c/ring-daemon/+/15748 and https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/6.2.-Sync-Protocolcf https://review.jami.net/c/ring-daemon/+/15748 and https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/6.2.-Sync-ProtocolSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-client-android/-/issues/801Black screen with Mediacodec H2642024-01-30T14:52:11ZCyrille BéraudBlack screen with Mediacodec H264If the first packet sent by a stream using Mediacodec H264 (Acceleration Android) is not received, the stream is corrupted
[log](/uploads/0d3a337c4e080417cfdc4a50f1d97539/log)If the first packet sent by a stream using Mediacodec H264 (Acceleration Android) is not received, the stream is corrupted
[log](/uploads/0d3a337c4e080417cfdc4a50f1d97539/log)Itération 21Mohamed ChibaniPierre LespagnolMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-client-android/-/issues/800Conferences: cannot maximize current participant2022-01-13T14:58:57ZSébastien BlinConferences: cannot maximize current participantBacklogAdrien BéraudAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-project/-/issues/1050Swarm: Discussions about the UI/UX for clients2021-07-09T20:52:32ZSébastien BlinSwarm: Discussions about the UI/UX for clientsSwarm-chatAdrien BéraudGuillaume HellerAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/299Swarm: remove a user from the conversation2021-04-19T13:28:58ZSébastien BlinSwarm: remove a user from the conversation+ Implement https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#remove-a-device-from-a-conversation
+ Add tests+ Implement https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#remove-a-device-from-a-conversation
+ Add testsSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/298Swarm: Remove a device from the conversation2022-07-13T17:35:28ZSébastien BlinSwarm: Remove a device from the conversation+ Implement https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#remove-a-device-from-a-conversation
+ Add tests+ Implement https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#remove-a-device-from-a-conversation
+ Add testsSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/297Swarm: implement DRT (after first version)2023-04-28T19:42:53ZSébastien BlinSwarm: implement DRT (after first version)https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#drt-name-will-change
# In progress
+ add tests for mobile DRT
+ Client: remove limit of 8 participants
+ Test in real environment
# TODO:
+ D...https://git.jami.net/savoirfairelinux/ring-project/wikis/Group-chat-feature-(design-draft)#drt-name-will-change
# In progress
+ add tests for mobile DRT
+ Client: remove limit of 8 participants
+ Test in real environment
# TODO:
+ Debug last locks
+ Cleanup code
+ Finish last tests
+ Document on docs.jami.netSwarm-chatSébastien BlinFadi ShehadehSébastien Blin2023-02-28https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/296Swarm: see for file transfers (NEEDS DESIGN)2021-06-12T11:37:07ZSébastien BlinSwarm: see for file transfers (NEEDS DESIGN)Swarm-chatSébastien BlinAdrien BéraudSébastien Blin