jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2021-11-19T21:46:34Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/356What are the license for ringtone files2021-11-19T21:46:34ZSahil DhimanWhat are the license for ringtone filesI would like to add the Jami [ringtone](https://git.jami.net/savoirfairelinux/ring-daemon/tree/master/ringtones) are nice. Could you specify what are license terms for it, if they're under CC license or not.
and thanks for the amazing ...I would like to add the Jami [ringtone](https://git.jami.net/savoirfairelinux/ring-daemon/tree/master/ringtones) are nice. Could you specify what are license terms for it, if they're under CC license or not.
and thanks for the amazing work and sorry for the noise.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/660Conference, various crash on peer exit2021-11-24T14:58:45ZSébastien BlinConference, various crash on peer exit# Scenario
+ Alice call Bob
+ Alice adds Carla to the conference
+ Bob stop
+ Crash
```
0x00007fffedfe7364 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator std::basic_string_view<char, std::c...# Scenario
+ Alice call Bob
+ Alice adds Carla to the conference
+ Bob stop
+ Crash
```
0x00007fffedfe7364 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator std::basic_string_view<char, std::char_traits<char> >() const () from /lib64/libstdc++.so.6
(gdb) bt
#0 0x00007fffedfe7364 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator std::basic_string_view<char, std::char_traits<char> >() const () at /lib64/libstdc++.so.6
#1 0x00007fffec0f563c in std::less<void>::_S_cmp<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string_view<char, std::char_traits<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string_view<char, std::char_traits<char> > const&, std::integral_constant<bool, false>) (__t=<error reading variable: Cannot access memory at address 0x40>, __u="") at /usr/include/c++/10/bits/stl_function.h:601
#2 0x00007fffec0f569f in std::less<void>::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string_view<char, std::char_traits<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string_view<char, std::char_traits<char> > const&) const (this=0xc3c6c8, __t=<error reading variable: Cannot access memory at address 0x40>, __u="") at /usr/include/c++/10/bits/stl_function.h:586
#3 0x00007fffec0f0eeb in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::_Identity<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::less<void>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_lower_bound_tr<std::basic_string_view<char, std::char_traits<char> >, void>(std::basic_string_view<char, std::char_traits<char> > const&) const (this=0xc3c6c8, __k="") at /usr/include/c++/10/bits/stl_tree.h:1346
#4 0x00007fffec0eb35e in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::_Identity<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::less<void>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_find_tr<std::basic_string_view<char, std::char_traits<char> >, void>(std::basic_string_view<char, std::char_traits<char> > const&) const (this=0xc3c6c8, __k="") at /usr/include/c++/10/bits/stl_tree.h:1314
#5 0x00007fffec0e63b3 in std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<void>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::find<std::basic_string_view<char, std::char_traits<char> > >(std::basic_string_view<char, std::char_traits<char> > const&) const (this=0xc3c6c8, __x="") at /usr/include/c++/10/bits/stl_set.h:812
#6 0x00007fffec0d9002 in jami::Conference::isModerator(std::basic_string_view<char, std::char_traits<char> >) const (this=0xc3c4a0, uri="") at conference.cpp:946
#7 0x00007fffec0d327a in operator()() const (__closure=0x7ffe9e2422c0) at conference.cpp:100
#8 0x00007fffec0dc11a in operator()() (this=0x7ffe9e2422c0) at manager.h:1057
#9 0x00007fffec0de730 in std::__invoke_impl<void, jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/10/bits/invoke.h:60
#10 0x00007fffec0ddef4 in std::__invoke_r<void, jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/10/bits/invoke.h:110
#11 0x00007fffec0dd337 in std::_Function_handler<void(), jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
at /usr/include/c++/10/bits/std_function.h:291
#12 0x00007fffec1328d8 in std::function<void ()>::operator()() const (this=0x7ffe9e5d5e40) at /usr/include/c++/10/bits/std_function.h:622
#13 0x00007fffec205ce3 in jami::ScheduledExecutor::loop() (this=0xdc94a0) at scheduled_executor.cpp:137
#14 0x00007fffec2052a1 in operator()() const (__closure=0xe2e828) at scheduled_executor.cpp:32
#15 0x00007fffec207212 in std::__invoke_impl<void, jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(std::__invoke_other, struct {...} &&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#16 0x00007fffec2071c7 in std::__invoke<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(struct {...} &&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#17 0x00007fffec207174 in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0xe2e828) at /usr/include/c++/10/thread:264
#18 0x00007fffec207148 in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::operator()(void) (this=0xe2e828) at /usr/include/c++/10/thread:271
#19 0x00007fffec20712c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > > >::_M_run(void) (this=0xe2e820) at /usr/include/c++/10/thread:215
#20 0x00007fffedf38444 in execute_native_thread_routine () at /lib64/libstdc++.so.6
#21 0x00007fffed9513f9 in start_thread () at /lib64/libpthread.so.0
#22 0x00007fffedc354c3 in clone () at /lib64/libc.so.6
```
```
Thread 72 "jami-qt" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffebaffd640 (LWP 3232921)]
std::_Rb_tree<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*, std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*>, std::allocator<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_lower_bound (this=0x817f990, __x=0xc, __y=0x817f998, __k=@0x7ffebaff92f0: 0xd117170) at /usr/include/c++/10/bits/stl_tree.h:1937
1937 if (!_M_impl._M_key_compare(_S_key(__x), __k))
(gdb) bt
#0 std::_Rb_tree<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*, std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*>, std::allocator<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_lower_bound(std::_Rb_tree_node<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::_Rb_tree_node_base*, jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const&) (this=0x817f990, __x=0xc, __y=0x817f998, __k=@0x7ffebaff92f0: 0xd117170) at /usr/include/c++/10/bits/stl_tree.h:1937
#1 0x00007fffec0ea361 in std::_Rb_tree<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*, std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*>, std::allocator<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::find(jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const&) (this=0x817f990, __k=@0x7ffebaff92f0: 0xd117170)
at /usr/include/c++/10/bits/stl_tree.h:2555
#2 0x00007fffec0e6513 in std::map<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*>, std::allocator<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::find(jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const&) (this=0x817f990, __x=@0x7ffebaff92f0: 0xd117170)
at /usr/include/c++/10/bits/stl_map.h:1170
#3 0x00007fffec0d9af9 in jami::Conference::detachVideo(jami::Observable<std::shared_ptr<DRing::MediaFrame> >*) (this=0x817f860, frame=0xd117170) at conference.cpp:610
#4 0x00007fffec324a1a in jami::video::VideoRtpSession::setupConferenceVideoPipeline(jami::Conference&) (this=0xd120760, conference=...) at ./media/video/video_rtp_session.cpp:352
#5 0x00007fffec324795 in jami::video::VideoRtpSession::setupVideoPipeline() (this=0xd120760) at ./media/video/video_rtp_session.cpp:324
#6 0x00007fffec3242dc in jami::video::VideoRtpSession::start(std::unique_ptr<jami::IceSocket, std::default_delete<jami::IceSocket> >, std::unique_ptr<jami::IceSocket, std::default_delete<jami::IceSocket> >)
(this=0xd120760, rtp_sock=std::unique_ptr<jami::IceSocket> = {...}, rtcp_sock=std::unique_ptr<jami::IceSocket> = {...}) at ./media/video/video_rtp_session.cpp:271
#7 0x00007fffec37350e in jami::SIPCall::startAllMedia() (this=0xd117280) at ./sip/sipcall.cpp:2037
#8 0x00007fffec3756b4 in jami::SIPCall::onIceNegoSucceed() (this=0xd117280) at ./sip/sipcall.cpp:2472
#9 0x00007fffec378a1e in operator()() const (__closure=0x7ffb880099c0) at ./sip/sipcall.cpp:3129
#10 0x00007fffec37c878 in operator()() (this=0x7ffb880099c0) at ./manager.h:1057
#11 0x00007fffec3825e2 in std::__invoke_impl<void, jami::runOnMainThread<jami::SIPCall::initIceMediaTransport(bool, std::optional<jami::IceTransportOptions>)::<lambda(bool)>::<lambda()> >::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/10/bits/invoke.h:60
#12 0x00007fffec3813d2 in std::__invoke_r<void, jami::runOnMainThread<jami::SIPCall::initIceMediaTransport(bool, std::optional<jami::IceTransportOptions>)::<lambda(bool)>::<lambda()> >::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/10/bits/invoke.h:110
#13 0x00007fffec37f7c3 in std::_Function_handler<void(), jami::runOnMainThread<jami::SIPCall::initIceMediaTransport(bool, std::optional<jami::IceTransportOptions>)::<lambda(bool)>::<lambda()> >::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
at /usr/include/c++/10/bits/std_function.h:291
#14 0x00007fffec134480 in std::function<void ()>::operator()() const (this=0x7ffb880098f0) at /usr/include/c++/10/bits/std_function.h:622
#15 0x00007fffec20789d in jami::ScheduledExecutor::loop() (this=0xdcc320) at scheduled_executor.cpp:137
#16 0x00007fffec206e5b in operator()() const (__closure=0xdfcab8) at scheduled_executor.cpp:32
#17 0x00007fffec208dcc in std::__invoke_impl<void, jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(std::__invoke_other, struct {...} &&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#18 0x00007fffec208d81 in std::__invoke<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(struct {...} &&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#19 0x00007fffec208d2e in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0xdfcab8) at /usr/include/c++/10/thread:264
#20 0x00007fffec208d02 in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::operator()(void) (this=0xdfcab8) at /usr/include/c++/10/thread:271
#21 0x00007fffec208ce6 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > > >::_M_run(void) (this=0xdfcab0) at /usr/include/c++/10/thread:215
#22 0x00007fffedf38444 in execute_native_thread_routine () at /lib64/libstdc++.so.6
#23 0x00007fffed9513f9 in start_thread () at /lib64/libpthread.so.0
#24 0x00007fffedc354c3 in clone () at /lib64/libc.so.6
```
```
0x00007fffedf23e53 in std::_Rb_tree_increment(std::_Rb_tree_node_base const*) () from /lib64/libstdc++.so.6
(gdb) bt
#0 0x00007fffedf23e53 in std::_Rb_tree_increment(std::_Rb_tree_node_base const*) () at /lib64/libstdc++.so.6
#1 0x00007fffec0e6993 in std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::operator++() (this=0x7ffecaff92d8) at /usr/include/c++/10/bits/stl_tree.h:368
#2 0x00007fffec0dd8e7 in jami::Conference::isHost(std::basic_string_view<char, std::char_traits<char> >) const (this=0x9448cf0, uri="host") at conference.cpp:1158
#3 0x00007fffec0dc040 in jami::Conference::isHandRaised(std::basic_string_view<char, std::char_traits<char> >) const (this=0x9448cf0, uri="host") at conference.cpp:948
#4 0x00007fffec0d634d in operator()() const (__closure=0x7ffafc4be450) at conference.cpp:108
#5 0x00007fffec0dee4c in operator()() (this=0x7ffafc4be450) at manager.h:1057
#6 0x00007fffec0e045e in std::__invoke_impl<void, jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/10/bits/invoke.h:60
#7 0x00007fffec0e005c in std::__invoke_r<void, jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/10/bits/invoke.h:110
#8 0x00007fffec0dfa21 in std::_Function_handler<void(), jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
at /usr/include/c++/10/bits/std_function.h:291
#9 0x00007fffec134480 in std::function<void ()>::operator()() const (this=0x7ffb241e8d40) at /usr/include/c++/10/bits/std_function.h:622
#10 0x00007fffec20789d in jami::ScheduledExecutor::loop() (this=0xdcb3a0) at scheduled_executor.cpp:137
#11 0x00007fffec206e5b in operator()() const (__closure=0xde11c8) at scheduled_executor.cpp:32
#12 0x00007fffec208dcc in std::__invoke_impl<void, jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(std::__invoke_other, struct {...} &&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#13 0x00007fffec208d81 in std::__invoke<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(struct {...} &&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#14 0x00007fffec208d2e in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0xde11c8) at /usr/include/c++/10/thread:264
#15 0x00007fffec208d02 in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::operator()(void) (this=0xde11c8) at /usr/include/c++/10/thread:271
#16 0x00007fffec208ce6 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > > >::_M_run(void) (this=0xde11c0) at /usr/include/c++/10/thread:215
#17 0x00007fffedf38444 in execute_native_thread_routine () at /lib64/libstdc++.so.6
#18 0x00007fffed9513f9 in start_thread () at /lib64/libpthread.so.0
#19 0x00007fffedc354c3 in clone () at /lib64/libc.so.6
(gdb)
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/594videoinput: API refactoring2021-11-26T15:10:28ZAdrien Béraudvideoinput: API refactoring* add new daemon APIs
* SIPCall refactoring to use new VideoInput
(To be detailed)* add new daemon APIs
* SIPCall refactoring to use new VideoInput
(To be detailed)Aline Gondim SantosAdrien BéraudAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/665swarm: removeContact("self") removes all swarm2021-11-26T15:15:24ZSébastien Blinswarm: removeContact("self") removes all swarm# Scenario
Click on remove contact on a conversation with self => it removes all conv# Scenario
Click on remove contact on a conversation with self => it removes all convSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/664Swarm: Bad conversation re-appearing2021-11-26T15:15:25ZSébastien BlinSwarm: Bad conversation re-appearing# Scenario
+ Alice 1 device, Bob 2 devices (bob1, bob2)
+ Alice adds Bob
+ Bob1 accepts
+ Now Alice, Bob1 and Bob2 see the conversation
+ Bob2 removes Alice
# Expected
Bob1 and Bob2 should not see Alice
# Current result
Bob2 see an ...# Scenario
+ Alice 1 device, Bob 2 devices (bob1, bob2)
+ Alice adds Bob
+ Bob1 accepts
+ Now Alice, Bob1 and Bob2 see the conversation
+ Bob2 removes Alice
# Expected
Bob1 and Bob2 should not see Alice
# Current result
Bob2 see an invite from Alice for the previous conversationSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/572Outgoing SIP calls drop after 32s2021-11-26T15:15:26ZDavid LecompteOutgoing SIP calls drop after 32sI am using an OVH SIP account. Outgoing calls to a landline or to another OVH SIP account drop after 32s, this is 100% reproducible.
I am using Trisquel 9 on a desktop PC and added Jami repository, the version of jami is 2021-03-08 21:4...I am using an OVH SIP account. Outgoing calls to a landline or to another OVH SIP account drop after 32s, this is 100% reproducible.
I am using Trisquel 9 on a desktop PC and added Jami repository, the version of jami is 2021-03-08 21:43:25 UTC . The network connection is via ethernet, my ISP is SFR in Paris France, fiber connection.
The attached log was obtained with
/usr/lib/ring/dring -d -c 2>&1 | tee dring5.log
The image is a screen capture taken immediately after the call drop (less than 1s after) in order to show what was visible in the log. The big seqence of consecutive "underrun occured" was during the call but it paused more than 10s before the call drop.
[dring5.log](/uploads/648d1b648fb16fc641573235420d2b37/dring5.log)
![right_after_drop](/uploads/6f53ee76e0969c94a429aac2589da7e8/right_after_drop.png)Mohamed ChibaniMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/663Swarm: JAMS, conversation with self appears2021-11-26T15:15:26ZSébastien BlinSwarm: JAMS, conversation with self appearsHard to reproduce, I will add details later, but I think it's something related to removeContact + multidevices.Hard to reproduce, I will add details later, but I think it's something related to removeContact + multidevices.Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/659swarm: stay in "Already fetching for"2021-12-01T21:30:50ZSébastien Blinswarm: stay in "Already fetching for"Sometime, communication between 2 same devices is blocked.
In the logs, I see "Already fetching for"
For now, no scenario is identifiedSometime, communication between 2 same devices is blocked.
In the logs, I see "Already fetching for"
For now, no scenario is identifiedSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/49daemon crashes when receiving a SIP or Ring call when display name has a colo...2021-12-07T18:13:27ZAndreas Traczykdaemon crashes when receiving a SIP or Ring call when display name has a colon or chevron in itAndreas TraczykAndreas Traczykhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/50Certificate verification failure2021-12-07T18:13:27ZSébastien BlinCertificate verification failure# Reproduce step
I don't really know because it's the first time I see this and can't reproduce with another account. But this is what I think:
1. Alice (device A) add Bob (device B)
2. Alice and Bob talks
3. Alice erase the config and ...# Reproduce step
I don't really know because it's the first time I see this and can't reproduce with another account. But this is what I think:
1. Alice (device A) add Bob (device B)
2. Alice and Bob talks
3. Alice erase the config and re-import the account on its device
4. Alice call Bob again
5. Bob is segfaulting.
# Expected
Alice should be able to call Bob and Bob should have the ability to answer to that call.
# backtrace
```
__memcmp_avx2_movbe () at ../sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S:68
68 ../sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S: No such file or directory.
(gdb) bt
#0 0x00007ffff213bbae in __memcmp_avx2_movbe () at ../sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S:68
#1 0x00007ffff6f15e38 in () at /usr/lib/x86_64-linux-gnu/libgnutls.so.30
#2 0x00007ffff6f3c046 in () at /usr/lib/x86_64-linux-gnu/libgnutls.so.30
#3 0x00007ffff6f45b10 in gnutls_x509_trust_list_verify_crt2 ()
at /usr/lib/x86_64-linux-gnu/libgnutls.so.30
#4 0x000055555593f04c in dht::crypto::TrustList::verify(dht::crypto::Certificate const&) const ()
#5 0x000055555562c070 in ring::tls::TrustStore::isAllowed(dht::crypto::Certificate const&, bool) ()
#6 0x000055555566b419 in std::_Function_handler<void (std::shared_ptr<dht::crypto::Certificate> const&), ring::RingAccount::onPeerMessage(dht::Hash<20ul> const&, std::function<void (std::shared_ptr<dht::crypto::Certificate> const&, dht::Hash<20ul> const&)>)::{lambda(std::shared_ptr<dht::crypto::Certificate> const&)#1}>::_M_invoke(std::_Any_data const&, std::shared_ptr<dht::crypto::Certificate> const&) ()
#7 0x0000555555666c4c in ring::RingAccount::findCertificate(dht::Hash<20ul> const&, std::function<void (std::shared_ptr<dht::crypto::Certificate> const&)>&&) ()
#8 0x0000555555669e0f in ring::RingAccount::onPeerMessage(dht::Hash<20ul> const&, std::function<void (std::shared_ptr<dht::crypto::Certificate> const&, dht::Hash<20ul> const&)>) ()
#9 0x00005555556739b6 in std::_Function_handler<bool (dht::IceCandidates&&), ring::RingAccount::doRegister_()::{lambda(dht::IceCandidates&&)#11}>::_M_invoke(std::_Any_data const&, dht::IceCandidates&&) ()
#10 0x00005555556a7b98 in std::_Function_handler<bool (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&), std::future<unsigned long> dht::DhtRunner::listen<dht::IceCandidates>(dht::Hash<20ul>, std::function<bool (dht::IceCandidates&&)>, dht::Value::Filter, dht::Where)::{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&) ()
#11 0x0000555555945582 in std::_Function_handler<bool (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool), dht::DhtRunner::listen(dht::Hash<20ul>, std::function<bool (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool)>, dht::Value::Filter, dht::Where)::{lambda(dht::SecureDht&)#1}::operator()(dht::SecureDht&)::{lambda(std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool)#1}>::_M_invoke(std::_Any_data const&, std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool&&) ()
#12 0x00005555559cc9c9 in std::_Function_handler<bool (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool), dht::SecureDht::getCallbackFilter(std::function<bool (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool)>, dht::Value::Filter&&)::{lambda(std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool)#1}>::_M_invoke(std::_Any_data const&, std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool&&) ()
#13 0x00005555559a91d7 in dht::OpCache::onValuesAdded(std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&) ()
#14 0x00005555559aae11 in std::_Function_handler<bool (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool), dht::OpCache::OpCache()::{lambda(std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool)#1}>::_M_invoke(std::_Any_data const&, std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool&&) ()
#15 0x00005555559a63d9 in dht::OpValueCache::onValuesAdded(std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&) ()
#16 0x00005555559a6cd2 in std::_Function_handler<bool (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool), dht::SearchCache::listen(std::function<bool (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool)>, std::shared_ptr<dht::Query>, dht::Value::Filter, std::function<unsigned long (std::shared_ptr<dht::Query>, std::function<bool (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > con---Type <return> to continue, or q <return> to quit---
st&, bool)>)>)::{lambda(std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool)#1}>::_M_invoke(std::_Any_data const&, std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool&&) ()
#17 0x0000555555968840 in std::_Function_handler<void (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool), std::function<bool (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool)> >::_M_invoke(std::_Any_data const&, std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool&&) ()
#18 0x0000555555968432 in std::_Function_handler<void (), dht::ValueCache::addValues[abi:cxx11](std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, dht::TypeStore const&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
#19 0x000055555596d2d2 in dht::ValueCache::onValues(std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, std::vector<unsigned long, std::allocator<unsigned long> > const&, std::vector<unsigned long, std::allocator<unsigned long> > const&, dht::TypeStore const&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) ()
#20 0x000055555595de05 in std::_Function_handler<bool (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool), dht::DhtProxyClient::doListen(dht::Hash<20ul> const&, std::function<bool (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool)>, dht::Value::Filter)::{lambda(std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool)#2}>::_M_invoke(std::_Any_data const&, std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool&&) ()
#21 0x000055555595acf9 in std::_Function_handler<void (), dht::DhtProxyClient::sendListen(std::shared_ptr<restbed::Request> const&, std::function<bool (std::vector<std::shared_ptr<dht::Value>, std::allocator<std::shared_ptr<dht::Value> > > const&, bool)> const&, dht::Value::Filter const&, std::shared_ptr<dht::DhtProxyClient::ListenState> const&)::{lambda(std::shared_ptr<restbed::Request> const&, std::shared_ptr<restbed::Response> const&)#1}::operator()(std::shared_ptr<restbed::Request> const&, std::shared_ptr<restbed::Response> const&) const::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
#22 0x000055555595c079 in dht::DhtProxyClient::periodic(unsigned char const*, unsigned long, dht::SockAddr const&) ()
#23 0x000055555596a3a1 in dht::DhtProxyClient::periodic(unsigned char const*, unsigned long, sockaddr const*, unsigned int) ()
#24 0x000055555594f25c in dht::DhtRunner::loop_() ()
#25 0x000055555594f671 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::DhtRunner::run(dht::SockAddr const&, dht::SockAddr const&, dht::DhtRunner::Config)::{lambda()#1}> > >::_M_run() ()
#26 0x00007ffff2a16733 in () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#27 0x00007ffff5ae46db in start_thread (arg=0x7fff817fa700) at pthread_create.c:463
#28 0x00007ffff20d288f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/51Crash during ICE negotiation2021-12-07T18:13:27ZPhilippe GorleyCrash during ICE negotiationThere is a crash during the ICE negotiation. It seems to happen at random (while connecting to a peer, while switching inputs to share the screen/stream a file).
I get it fairly often between my two Ubuntu 18.04 PCs. Attached is a backt...There is a crash during the ICE negotiation. It seems to happen at random (while connecting to a peer, while switching inputs to share the screen/stream a file).
I get it fairly often between my two Ubuntu 18.04 PCs. Attached is a backtrace of all threads during the crash.
[pj_bt_all_threads.txt](/uploads/1e3ac597e9582ea4d42756bc7cc13115/pj_bt_all_threads.txt)Adrien BéraudAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/52restclient.cpp:59:16: error: 'pollEvents' is not a member of 'DRing'2021-12-07T18:13:27Zszotsakirestclient.cpp:59:16: error: 'pollEvents' is not a member of 'DRing'I get compilation error when trying to compile today's ring-daemon snapshot (only ring-daemon, in a separate container):
```
[ 197s] restclient.cpp: In member function 'int RestClient::event_loop()':
[ 197s] restclient.cpp:59:16: erro...I get compilation error when trying to compile today's ring-daemon snapshot (only ring-daemon, in a separate container):
```
[ 197s] restclient.cpp: In member function 'int RestClient::event_loop()':
[ 197s] restclient.cpp:59:16: error: 'pollEvents' is not a member of 'DRing'
[ 197s] DRing::pollEvents();
[ 197s] ^~~~~~~~~~
[ 198s] make[3]: *** [Makefile:547: libclient_rest_la-restclient.lo] Error 1
[ 198s] make[3]: *** Waiting for unfinished jobs....
```
Command line switches:
```
%configure --with-alsa \
--with-pulse \
--with-jack \
--with-dbus \
--enable-video \
--with-sdes \
--with-speex \
--with-speexdsp \
--with-opus \
--with-upnp \
--with-natpmp \
--enable-ipv6 \
--enable-accel \
--enable-ringns \
--without-nodejs \
--with-restcpp \
--without-portaudio \
--disable-static
```Adrien BéraudAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/470Deprecate redundant APIs2021-12-08T15:00:08ZMohamed ChibaniDeprecate redundant APIsDeprecate all APIs made redundant by the newly added APIs:
- placeCall
- answerCall
- ...Deprecate all APIs made redundant by the newly added APIs:
- placeCall
- answerCall
- ...Mohamed ChibaniMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/670The build system ignores system argon2 library and tries to download its own'...2021-12-08T21:23:45ZSergey AlirzaevThe build system ignores system argon2 library and tries to download its own's during the build process unconditionally.Maing it awkward to package jami-daemon in a distro.Maing it awkward to package jami-daemon in a distro.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/674Swarm: " add participant" UI layout not fitted properly2021-12-13T16:48:56ZMehdi GhayourSwarm: " add participant" UI layout not fitted properlyOn add a user" UI layout: The text " find a user or search.." has not fit properly.
![Screenshot_from_2021-12-08_16-48-27](/uploads/caad899d657e832f4c1af0c0d9ec6e01/Screenshot_from_2021-12-08_16-48-27.png)On add a user" UI layout: The text " find a user or search.." has not fit properly.
![Screenshot_from_2021-12-08_16-48-27](/uploads/caad899d657e832f4c1af0c0d9ec6e01/Screenshot_from_2021-12-08_16-48-27.png)https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/357Conference - crash in call_factory.h2021-12-14T15:14:36ZMohamed ChibaniConference - crash in call_factory.hA crash occurred when hosting a conference. See the full back-trace in the attached file.
BuildL: Jami Daemon 9.6.0-2e35f9a59b
[daemon-crash-conference.txt](/uploads/abc03baf2e0e2f9748fb5f4079b9a3ad/daemon-crash-conference.txt)A crash occurred when hosting a conference. See the full back-trace in the attached file.
BuildL: Jami Daemon 9.6.0-2e35f9a59b
[daemon-crash-conference.txt](/uploads/abc03baf2e0e2f9748fb5f4079b9a3ad/daemon-crash-conference.txt)Backloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/676Crash in OpenSL Layer - Android2021-12-16T14:19:41ZSébastien BlinCrash in OpenSL Layer - AndroidPotential crash on playstore:
```
backtrace:
#00 pc 0000000000085888 /apex/com.android.runtime/lib64/bionic/libc.so (__memcpy+248)
#00 pc 00000000009cf9ec /data/app/~~QWALmU1nwmeEvS6MLMbQ2Q==/cx.ring-IkugpkPqtZLOBFWZ6inK1Q==/lib...Potential crash on playstore:
```
backtrace:
#00 pc 0000000000085888 /apex/com.android.runtime/lib64/bionic/libc.so (__memcpy+248)
#00 pc 00000000009cf9ec /data/app/~~QWALmU1nwmeEvS6MLMbQ2Q==/cx.ring-IkugpkPqtZLOBFWZ6inK1Q==/lib/arm64/libring.so
#00 pc 00000000009d18d8 /data/app/~~QWALmU1nwmeEvS6MLMbQ2Q==/cx.ring-IkugpkPqtZLOBFWZ6inK1Q==/lib/arm64/libring.so
#00 pc 000000000001c0e8 /system/lib64/libwilhelm.so (audioTrack_callBack_pullFromBuffQueue(int, void*, void*)+180)
#00 pc 0000000000079c68 /system/lib64/libaudioclient.so (android::AudioTrack::processAudioBuffer()+2368)
#00 pc 0000000000078f7c /system/lib64/libaudioclient.so (android::AudioTrack::AudioTrackThread::threadLoop()+312)
#00 pc 00000000000154dc /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+460)
#00 pc 00000000000a4d20 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+140)
#00 pc 0000000000014cd8 /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+412)
#00 pc 00000000000eb0ec /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
#00 pc 000000000008b850 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
```
On my device:
```
2021-12-15 10:27:34.827 26087-26087/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2021-12-15 10:27:34.827 26087-26087/? A/DEBUG: Build fingerprint: 'motorola/kiev_retailu/kiev:11/RZKS31.Q3-25-15-1/d940e8:user/release-keys'
2021-12-15 10:27:34.827 26087-26087/? A/DEBUG: Revision: 'pvt'
2021-12-15 10:27:34.827 26087-26087/? A/DEBUG: ABI: 'arm64'
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: Timestamp: 2021-12-15 10:27:34-0500
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: pid: 22160, tid: 26084, name: AudioTrack >>> cx.ring <<<
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: uid: 10387
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x8ecfe25800000000
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: x0 8ecfe25800000000 x1 b4000072d1ce0b00 x2 00000000000001e0 x3 8ecfe25800000000
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: x4 b4000072d1ce0ce0 x5 8ecfe258000001e0 x6 0000000000000000 x7 0000000000000000
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: x8 00000000000000f0 x9 0000000000000000 x10 8ecfe26000000071 x11 0000000000000000
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: x12 0000000000000000 x13 0000000000000000 x14 0000000000000002 x15 00000071e214c000
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: x16 0000007185219fe8 x17 0000007483a222c0 x18 0000007180846000 x19 b400007331c1c400
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: x20 b400007331c1b9b0 x21 00000071e214ba00 x22 b4000072a1c21130 x23 b400007331c1bbd8
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: x24 000000748308cea9 x25 00000071e214c000 x26 0000007183fc8454 x27 00000074851c0140
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: x28 00000071e214ba08 x29 00000071e214b5d0
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: lr 0000007183fc7f50 sp 00000071e214b5b0 pc 0000007483a22248 pst 0000000020001000
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: backtrace:
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #00 pc 000000000004a248 /apex/com.android.runtime/lib64/bionic/libc.so (__memcpy+248) (BuildId: 1fdafb7d457cc367eb58ced21a4fa8ac)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #01 pc 0000000000e79f4c /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (std::__ndk1::enable_if<(is_same<std::__ndk1::remove_const<short const>::type, short>::value) && (is_trivially_copy_assignable<short>::value), short*>::type std::__ndk1::__copy<short const, short>(short const*, short const*, short*)+80)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #02 pc 0000000000e79eec /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (short* std::__ndk1::copy<short const*, short*>(short const*, short const*, short*)+84)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #03 pc 0000000000e747f8 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (std::__ndk1::enable_if<__is_cpp17_random_access_iterator<short const*>::value, short*>::type std::__ndk1::copy_n<short const*, int, short*>(short const*, int, short*)+52)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #04 pc 0000000000e72000 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (jami::OpenSLLayer::engineServiceRing()+572)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #05 pc 0000000000e774d4 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (decltype(*(std::__ndk1::forward<jami::OpenSLLayer*&>(fp0)).*fp()) std::__ndk1::__invoke<void (jami::OpenSLLayer::*&)(), jami::OpenSLLayer*&, void>(void (jami::OpenSLLayer::*&)(), jami::OpenSLLayer*&)+100)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #06 pc 0000000000e77460 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (std::__ndk1::__bind_return<void (jami::OpenSLLayer::*)(), std::__ndk1::tuple<jami::OpenSLLayer*>, std::__ndk1::tuple<>, __is_valid_bind_return<void (jami::OpenSLLayer::*)(), std::__ndk1::tuple<jami::OpenSLLayer*>, std::__ndk1::tuple<> >::value>::type std::__ndk1::__apply_functor<void (jami::OpenSLLayer::*)(), std::__ndk1::tuple<jami::OpenSLLayer*>, 0ul, std::__ndk1::tuple<> >(void (jami::OpenSLLayer::*&)(), std::__ndk1::tuple<jami::OpenSLLayer*>&, std::__ndk1::__tuple_indices<0ul>, std::__ndk1::tuple<>&&)+72)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #07 pc 0000000000e77408 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (std::__ndk1::__bind_return<void (jami::OpenSLLayer::*)(), std::__ndk1::tuple<jami::OpenSLLayer*>, std::__ndk1::tuple<>, __is_valid_bind_return<void (jami::OpenSLLayer::*)(), std::__ndk1::tuple<jami::OpenSLLayer*>, std::__ndk1::tuple<> >::value>::type std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*>::operator()<>()+40)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #08 pc 0000000000e773bc /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (decltype(std::__ndk1::forward<std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*>&>(fp)()) std::__ndk1::__invoke<std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*>&>(std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*>&)+24)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #09 pc 0000000000e77370 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (void std::__ndk1::__invoke_void_return_wrapper<void>::__call<std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*>&>(std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*>&)+24)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #10 pc 0000000000e77348 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (std::__ndk1::__function::__alloc_func<std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*>, std::__ndk1::allocator<std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*> >, void ()>::operator()()+24)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #11 pc 0000000000e76308 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (std::__ndk1::__function::__func<std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*>, std::__ndk1::allocator<std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*> >, void ()>::operator()()+24)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #12 pc 0000000000c2dc14 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (std::__ndk1::__function::__value_func<void ()>::operator()() const+56)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #13 pc 0000000000c2d6f0 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (std::__ndk1::function<void ()>::operator()() const+20)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #14 pc 0000000000e7a5d0 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (jami::opensl::AudioPlayer::processSLCallback(SLAndroidSimpleBufferQueueItf_ const* const*)+336)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #15 pc 0000000000e7a470 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (jami::opensl::bqPlayerCallback(SLAndroidSimpleBufferQueueItf_ const* const*, void*)+28)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #16 pc 000000000001c118 /system/lib64/libwilhelm.so (audioTrack_callBack_pullFromBuffQueue(int, void*, void*)+180) (BuildId: 3dc436cad2f5774c2a5d1236156e2640)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #17 pc 0000000000078b78 /system/lib64/libaudioclient.so (android::AudioTrack::processAudioBuffer()+2376) (BuildId: e6b35b953c2ab1e220e508553e2c3803)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #18 pc 0000000000077f40 /system/lib64/libaudioclient.so (android::AudioTrack::AudioTrackThread::threadLoop()+272) (BuildId: e6b35b953c2ab1e220e508553e2c3803)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #19 pc 0000000000015598 /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+460) (BuildId: 5d6af74124211886d954d61c96514a46)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #20 pc 00000000000a1ec8 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+144) (BuildId: 8dd68419fe710778585e2c5c133d86e0)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #21 pc 0000000000014d94 /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+412) (BuildId: 5d6af74124211886d954d61c96514a46)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #22 pc 00000000000afc6c /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) (BuildId: 1fdafb7d457cc367eb58ced21a4fa8ac)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #23 pc 00000000000502c8 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 1fdafb7d457cc367eb58ced21a4fa8ac)
2021-12-15 10:27:35.236 991-991/? E/tombstoned: Tombstone written to: /data/tombstones/tombstone_11
2021-12-15 10:27:35.274 1697-8175/? E/FrameEvents: updateAcquireFence: Did not find frame.
```
Randomly happens when receiving a crash.
Observations. buf->cap_ is completely incorrect, so it's rather a bad queue or a bad buf_manager.hSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/645SDP - Set media direction attribute (a=sendrecv/sendonly/...) according to me...2021-12-17T16:26:12ZAdrien BéraudSDP - Set media direction attribute (a=sendrecv/sendonly/...) according to media stateThe media direction attribute in the SDP should be set according to actual state of the media.The media direction attribute in the SDP should be set according to actual state of the media.Mohamed ChibaniMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/553Mutli-stream - Fix Hold/Resume and empty offers2021-12-20T16:08:59ZMohamed ChibaniMutli-stream - Fix Hold/Resume and empty offers- The media direction attribute in the SDP is set to "sendrecv" when a call is put "on-hold", while it should be "sendonly".
- When receiving and empty offer, we must answer with an offer that includes audio and video if enabled in the ...- The media direction attribute in the SDP is set to "sendrecv" when a call is put "on-hold", while it should be "sendonly".
- When receiving and empty offer, we must answer with an offer that includes audio and video if enabled in the account.
These regressions were introduced while adding multi-stream support.Mohamed ChibaniMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/679Crash on Windows when making a video call to iPhone X device without hwaccel2021-12-21T15:56:31ZAndreas TraczykCrash on Windows when making a video call to iPhone X device without hwaccelReproducibility varies and seems based on network conditions.Reproducibility varies and seems based on network conditions.