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