jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2023-03-03T21:08:39Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/728Problem building dependencies on Apple M1 (ARM) platform2023-03-03T21:08:39ZmacbugsProblem building dependencies on Apple M1 (ARM) platform**Notices:**
```
Class AppleTypeCRetimerRestoreInfoHelper
Class AppleTypeCRetimerFirmwareAggregateRequestCreator
Class AppleTypeCRetimerFirmwareRequestCreator
Class ATCRTRestoreInfoFTABFile
Class AppleTypeCRetimerFirmwareCopier
Class AT...**Notices:**
```
Class AppleTypeCRetimerRestoreInfoHelper
Class AppleTypeCRetimerFirmwareAggregateRequestCreator
Class AppleTypeCRetimerFirmwareRequestCreator
Class ATCRTRestoreInfoFTABFile
Class AppleTypeCRetimerFirmwareCopier
Class ATCRTRestoreInfoFTABSubfile
Class AppleTypeCRetimerRestoreInfoHelper
Class AppleTypeCRetimerFirmwareAggregateRequestCreator
Class AppleTypeCRetimerFirmwareRequestCreator
Class ATCRTRestoreInfoFTABFile
Class AppleTypeCRetimerFirmwareCopier
Class ATCRTRestoreInfoFTABSubfile
```
…is implemented in both **/usr/lib/libauthinstall.dylib** and
**/Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice**
One of the two will be used. Which one is undefined.
**Warnings:**
vp8/encoder/bitstream.c:869:7: warning: variable 'savings' set but not used [-Wunused-but-set-variable]
vp9/encoder/vp9_encodeframe.c:831:14: warning: variable 'ysignal' set but not used [-Wunused-but-set-variable]
vp9/encoder/vp9_encodeframe.c:832:14: warning: variable 'usignal' set but not used [-Wunused-but-set-variable]
vp9/encoder/vp9_encodeframe.c:833:14: warning: variable 'vsignal' set but not used [-Wunused-but-set-variable]
**Errors:**
```
configure: error: C compiler cannot create executables
make: *** [.opus] Error 77
```
**CONFIG.LOG**
`ld: unknown/unsupported architecture name for: -arch armv4t`https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/825Reply with a DATA_TRANSFER component2023-03-03T20:51:54ZFranck LaurentReply with a DATA_TRANSFER componentIt is currently impossible to reply to a message with a DATA_TRANSFER component (audio message, video message, image...).It is currently impossible to reply to a message with a DATA_TRANSFER component (audio message, video message, image...).https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/815Synced messages appear as new on synced devices (notification spam)2023-03-02T19:06:10ZMaxim CournoyerSynced messages appear as new on synced devices (notification spam)Hi,
At least on Android and GNU/Linux, messages received via the SWARM sync feature *that already have been read* on one device appear as new, i.e. they trigger notifications.
This is especially annoying when not using a device for som...Hi,
At least on Android and GNU/Linux, messages received via the SWARM sync feature *that already have been read* on one device appear as new, i.e. they trigger notifications.
This is especially annoying when not using a device for some time (offline); when reconnecting to the Jami network all the past messages stored on other devices will be synced and cause a massive amount of notifications.
I'm opening the issue here since it seems to affect all the clients (at least Android and GNU/Linux).
Thanks.2023-02-28https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/814swarm: color preference are not updating2023-02-20T14:01:38ZBinal Ahiyaswarm: color preference are not updatingProcess : link account to new device
Problem : new device is not retrieving color preference only for the first time.Process : link account to new device
Problem : new device is not retrieving color preference only for the first time.Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/727Camera not opening if rdv host joins2023-02-17T13:51:27ZSébastien BlinCamera not opening if rdv host joins# Scenario
+ Alice is a rdv host
+ Bob calls alice (he will be alone in a rdv)
+ Alice joins the call
# Expected
+ Alice and Bob should see their video in the rdv
# Current
+ Alice's camera is not opening and mute is broken
# Obser...# Scenario
+ Alice is a rdv host
+ Bob calls alice (he will be alone in a rdv)
+ Alice joins the call
# Expected
+ Alice and Bob should see their video in the rdv
# Current
+ Alice's camera is not opening and mute is broken
# Observation
+ Device is busy and not opening
+ The camera become unusable for all apps as busy, even after leaving jamihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/789SIGSEGV on setFrameSize2023-02-17T13:50:27ZThomas BallasiSIGSEGV on setFrameSize### Issue
During a rendez-vous swarm call, my Jami client (Linux, QT) crashed. Scenario couldn't be reproduced.
### Log (with debug and gdb backtrace)
```
[1668178916.495|58024|sinkclient.cpp :495 ] [Sink:0x7ffe702e7880] Chan...### Issue
During a rendez-vous swarm call, my Jami client (Linux, QT) crashed. Scenario couldn't be reproduced.
### Log (with debug and gdb backtrace)
```
[1668178916.495|58024|sinkclient.cpp :495 ] [Sink:0x7ffe702e7880] Change crop to [160x90 at (400, 0)]
[1668178916.495|58024|sinkclient.cpp :495 ] [Sink:0x7ffe700458a0] Change crop to [160x90 at (560, 0)]
[1668178916.495|58024|sinkclient.cpp :495 ] [Sink:0x7ffe70045af0] Change crop to [160x90 at (720, 0)]
[1668178916.495|58024|sinkclient.cpp :495 ] [Sink:0x7ffe70061760] Change crop to [1120x630 at (80, 90)]
[1668178916.495|58024|sinkclient.cpp :495 ] [Sink:0x7ffd503bed50] Change crop to [120x90 at (1060, 0)]
[1668178916.495|58024|sinkclient.cpp :482 ] [Sink:0x7ffe7004d300] Stopped - size=0x0, mixer=No
[1668178916.495|58024|sinkclient.cpp :495 ] [Sink:0x7ffe7004d300] Change crop to [0x0 at (0, 0)]
[Thread 0x7ffc7affd700 (LWP 20104) exited]
[Thread 0x7ffc7b7fe700 (LWP 20103) exited]
[Thread 0x7ffc7bfff700 (LWP 20102) exited]
Removing sink: 0x000055555cd56470 from subscribers for id: 2715417316521891_video_0
[1668178916.500|55414|sinkclient.cpp :474 ] [Sink:0x7ffd503bed50] Started - size=120x90, mixer=No
QVideoFrame reset to QSize(120, 90)
[1668178916.500|55414|sinkclient.cpp :474 ] [Sink:0x7ffe700458a0] Started - size=160x90, mixer=No
QVideoFrame reset to QSize(160, 90)
[1668178916.500|55414|sinkclient.cpp :474 ] [Sink:0x7ffe70045af0] Started - size=160x90, mixer=No
QVideoFrame reset to QSize(160, 90)
[1668178916.500|55414|sinkclient.cpp :474 ] [Sink:0x7ffe70061760] Started - size=1120x630, mixer=No
QVideoFrame reset to QSize(1120, 630)
[1668178916.500|55414|sinkclient.cpp :474 ] [Sink:0x7ffe700657c0] Started - size=160x89, mixer=No
QVideoFrame reset to QSize(160, 89)
[1668178916.501|55414|sinkclient.cpp :474 ] [Sink:0x7ffe701d5880] Started - size=160x89, mixer=No
--Type <RET> for more, q to quit, c to continue without paging--
Thread 211 "jami" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff2b5ea700 (LWP 4184182)]
tcache_get (tc_idx=<optimized out>) at malloc.c:2937
2937 malloc.c: No such file or directory.
(gdb) bt
#0 tcache_get (tc_idx=<optimized out>) at malloc.c:2937
#1 __GI___libc_malloc (bytes=48) at malloc.c:3051
#2 0x00007fffe8cf3b39 in operator new(unsigned long) () at /lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00005555557e8c70 in lrc::AVModelPimpl::addRenderer(QString const&, QSize const&, QString const&) ()
#4 0x00005555557e920e in lrc::AVModelPimpl::onDecodingStarted(QString const&, QString const&, int, int) ()
#5 0x00007fffeaae976f in () at /usr/lib/libqt-jami/lib/libQt6Core.so.6
#6 0x00005555556ef77e in lrc::CallbacksHandler::decodingStarted(QString const&, QString const&, int, int) ()
#7 0x00007fffeaae976f in () at /usr/lib/libqt-jami/lib/libQt6Core.so.6
#8 0x000055555580ac4d in VideoManagerInterface::decodingStarted(QString const&, QString const&, int, int, bool) ()
#9 0x0000555555813d02 in std::_Function_handler<void (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&, int, int, bool), VideoManagerInterface::VideoManagerInterface()::{lambda(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&, int, int, bool)#2}>::_M_invoke(std::_Any_data 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&, int&&, std::_Any_data const&, bool&&) ()
#10 0x00007fffe93be92f in void jami::emitSignal<libjami::VideoSignal::DecodingStarted, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int, bool>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int, bool) () at /home/tballasi/sfl/jami-project/daemon/src/.libs/libjami.so.0
#11 0x00007fffe93bc58e in jami::video::SinkClient::setFrameSize(int, int) () at /home/tballasi/sfl/jami-project/daemon/src/.libs/libjami.so.0
#12 0x00007fffe93be043 in jami::video::SinkClient::update(jami::Observable<std::shared_ptr<libjami::MediaFrame> >*, std::shared_ptr<libjami::MediaFrame> const&) ()
at /home/tballasi/sfl/jami-project/daemon/src/.libs/libjami.so.0
#13 0x00007fffe93bdf13 in jami::video::SinkClient::update(jami::Observable<std::shared_ptr<libjami::MediaFrame> >*, std::shared_ptr<libjami::MediaFrame> const&) ()
at /home/tballasi/sfl/jami-project/daemon/src/.libs/libjami.so.0
#14 0x00007fffe9391780 in jami::Observable<std::shared_ptr<libjami::MediaFrame> >::notify(std::shared_ptr<libjami::MediaFrame>) () at /home/tballasi/sfl/jami-project/daemon/src/.libs/libjami.so.0
#15 0x00007fffe93c1565 in jami::video::VideoGenerator::publishFrame(std::shared_ptr<libjami::VideoFrame>) () at /home/tballasi/sfl/jami-project/daemon/src/.libs/libjami.so.0
#16 0x00007fffe93e65a8 in std::_Function_handler<void (std::shared_ptr<libjami::MediaFrame>&&), jami::video::VideoReceiveThread::setup()::{lambda(std::shared_ptr<libjami::MediaFrame> const&)#1}>::_M_invoke(std::_Any_data const&, std::shared_ptr<libjami::MediaFrame>&&) () at /home/tballasi/sfl/jami-project/daemon/src/.libs/libjami.so.0
#17 0x00007fffe9352134 in jami::MediaDecoder::decode(AVPacket&) () at /home/tballasi/sfl/jami-project/daemon/src/.libs/libjami.so.0
#18 0x00007fffe935079d in jami::MediaDemuxer::decode() () at /home/tballasi/sfl/jami-project/daemon/src/.libs/libjami.so.0
#19 0x00007fffe9350a90 in jami::MediaDecoder::decode() () at /home/tballasi/sfl/jami-project/daemon/src/.libs/libjami.so.0
#20 0x00007fffe93e7dd8 in jami::video::VideoReceiveThread::decodeFrame() () at /home/tballasi/sfl/jami-project/daemon/src/.libs/libjami.so.0
#21 0x00007fffe911cf9d in jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>) ()
at /home/tballasi/sfl/jami-project/daemon/src/.libs/libjami.so.0
#22 0x00007fffe911d80c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > > >::_M_run() ()
at /home/tballasi/sfl/jami-project/daemon/src/.libs/libjami.so.0
#23 0x00007fffe8d1fde4 in () at /lib/x86_64-linux-gnu/libstdc++.so.6
#24 0x00007fffe8e35609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#25 0x00007fffe8a0c133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb)
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/812Ask for confirmation before transfering a file2023-02-14T21:10:01ZWear GuxjAsk for confirmation before transfering a fileWhen selecting a file to transfer, it is too easy to accidentally pick the wrong file, and then it will be immediately transferred with little possibility to cancel it.
So this request is for a setting (opt-in) that would make the fronte...When selecting a file to transfer, it is too easy to accidentally pick the wrong file, and then it will be immediately transferred with little possibility to cancel it.
So this request is for a setting (opt-in) that would make the frontend ask for confirmation before the file transfer will actually begin.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/808jami-daemon fails to build with pjsip-2.13: unknown type name 'pj_ice_cand_tr...2023-02-09T16:02:14Zyurijami-daemon fails to build with pjsip-2.13: unknown type name 'pj_ice_cand_transport'; did you mean 'pj_ice_cand_type'?```
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:214:9: error: unknown type name 'pj_ice_cand_transport'; did you mean 'pj_ice_cand_type'?
pj_ice_cand_...```
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:214:9: error: unknown type name 'pj_ice_cand_transport'; did you mean 'pj_ice_cand_type'?
pj_ice_cand_transport transport;
^~~~~~~~~~~~~~~~~~~~~
pj_ice_cand_type
/usr/local/include/pjnath/ice_session.h:163:3: note: 'pj_ice_cand_type' declared here
} pj_ice_cand_type;
^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:136:48: error: no member named 'protocol' in 'pj_ice_strans_cfg'
bool isTcpEnabled() const { return config_.protocol == PJ_ICE_TP_TCP; }
~~~~~~~ ^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:136:60: error: use of undeclared identifier 'PJ_ICE_TP_TCP'; did you mean 'PJ_TURN_TP_TCP'?
bool isTcpEnabled() const { return config_.protocol == PJ_ICE_TP_TCP; }
^~~~~~~~~~~~~
PJ_TURN_TP_TCP
/usr/local/include/pjnath/turn_session.h:148:5: note: 'PJ_TURN_TP_TCP' declared here
PJ_TURN_TP_TCP = 6,
^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:260:23: error: no member named 'protocol' in 'pj_ice_strans_cfg'
(cfg.protocol == PJ_ICE_TP_TCP ? "TCP" : "UDP"),
~~~ ^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/logger.h:175:83: note: expanded from macro 'JAMI_DBG'
#define JAMI_DBG(...) ::jami::Logger::log(LOG_DEBUG, __FILE__, __LINE__, true, ##__VA_ARGS__)
^~~~~~~~~~~
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:260:35: error: use of undeclared identifier 'PJ_ICE_TP_TCP'; did you mean 'PJ_TURN_TP_TCP'?
(cfg.protocol == PJ_ICE_TP_TCP ? "TCP" : "UDP"),
^~~~~~~~~~~~~
PJ_TURN_TP_TCP
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/logger.h:175:83: note: expanded from macro 'JAMI_DBG'
#define JAMI_DBG(...) ::jami::Logger::log(LOG_DEBUG, __FILE__, __LINE__, true, ##__VA_ARGS__)
^
/usr/local/include/pjnath/turn_session.h:148:5: note: 'PJ_TURN_TP_TCP' declared here
PJ_TURN_TP_TCP = 6,
^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:272:10: error: no member named 'conn_type' in 'pj_ice_strans_stun_cfg'
stun.conn_type = cfg.stun.conn_type;
~~~~ ^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:272:31: error: no member named 'conn_type' in 'pj_ice_strans_stun_cfg'
stun.conn_type = cfg.stun.conn_type;
~~~~~~~~ ^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:275:19: error: no member named 'protocol' in 'pj_ice_strans_cfg'
(cfg.protocol == PJ_ICE_TP_TCP ? "TCP" : "UDP"),
~~~ ^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/logger.h:175:83: note: expanded from macro 'JAMI_DBG'
#define JAMI_DBG(...) ::jami::Logger::log(LOG_DEBUG, __FILE__, __LINE__, true, ##__VA_ARGS__)
^~~~~~~~~~~
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:275:31: error: use of undeclared identifier 'PJ_ICE_TP_TCP'; did you mean 'PJ_TURN_TP_TCP'?
(cfg.protocol == PJ_ICE_TP_TCP ? "TCP" : "UDP"),
^~~~~~~~~~~~~
PJ_TURN_TP_TCP
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/logger.h:175:83: note: expanded from macro 'JAMI_DBG'
#define JAMI_DBG(...) ::jami::Logger::log(LOG_DEBUG, __FILE__, __LINE__, true, ##__VA_ARGS__)
^
/usr/local/include/pjnath/turn_session.h:148:5: note: 'PJ_TURN_TP_TCP' declared here
PJ_TURN_TP_TCP = 6,
^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:291:23: error: no member named 'protocol' in 'pj_ice_strans_cfg'
(cfg.protocol == PJ_ICE_TP_TCP ? "TCP" : "UDP"),
~~~ ^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/logger.h:175:83: note: expanded from macro 'JAMI_DBG'
#define JAMI_DBG(...) ::jami::Logger::log(LOG_DEBUG, __FILE__, __LINE__, true, ##__VA_ARGS__)
^~~~~~~~~~~
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:291:35: error: use of undeclared identifier 'PJ_ICE_TP_TCP'; did you mean 'PJ_TURN_TP_TCP'?
(cfg.protocol == PJ_ICE_TP_TCP ? "TCP" : "UDP"),
^~~~~~~~~~~~~
PJ_TURN_TP_TCP
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/logger.h:175:83: note: expanded from macro 'JAMI_DBG'
#define JAMI_DBG(...) ::jami::Logger::log(LOG_DEBUG, __FILE__, __LINE__, true, ##__VA_ARGS__)
^
/usr/local/include/pjnath/turn_session.h:148:5: note: 'PJ_TURN_TP_TCP' declared here
PJ_TURN_TP_TCP = 6,
^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:321:19: error: no member named 'protocol' in 'pj_ice_strans_cfg'
(cfg.protocol == PJ_ICE_TP_TCP ? "TCP" : "UDP"),
~~~ ^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/logger.h:175:83: note: expanded from macro 'JAMI_DBG'
#define JAMI_DBG(...) ::jami::Logger::log(LOG_DEBUG, __FILE__, __LINE__, true, ##__VA_ARGS__)
^~~~~~~~~~~
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:321:31: error: use of undeclared identifier 'PJ_ICE_TP_TCP'; did you mean 'PJ_TURN_TP_TCP'?
(cfg.protocol == PJ_ICE_TP_TCP ? "TCP" : "UDP"),
^~~~~~~~~~~~~
PJ_TURN_TP_TCP
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/logger.h:175:83: note: expanded from macro 'JAMI_DBG'
#define JAMI_DBG(...) ::jami::Logger::log(LOG_DEBUG, __FILE__, __LINE__, true, ##__VA_ARGS__)
^
/usr/local/include/pjnath/turn_session.h:148:5: note: 'PJ_TURN_TP_TCP' declared here
PJ_TURN_TP_TCP = 6,
^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:420:17: error: no member named 'protocol' in 'pj_ice_strans_cfg'
config_.protocol = PJ_ICE_TP_TCP;
~~~~~~~ ^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:420:28: error: use of undeclared identifier 'PJ_ICE_TP_TCP'; did you mean 'PJ_TURN_TP_TCP'?
config_.protocol = PJ_ICE_TP_TCP;
^~~~~~~~~~~~~
PJ_TURN_TP_TCP
/usr/local/include/pjnath/turn_session.h:148:5: note: 'PJ_TURN_TP_TCP' declared here
PJ_TURN_TP_TCP = 6,
^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:421:22: error: no member named 'conn_type' in 'pj_ice_strans_stun_cfg'
config_.stun.conn_type = PJ_STUN_TP_TCP;
~~~~~~~~~~~~ ^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:421:34: error: use of undeclared identifier 'PJ_STUN_TP_TCP'; did you mean 'PJ_TURN_TP_TCP'?
config_.stun.conn_type = PJ_STUN_TP_TCP;
^~~~~~~~~~~~~~
PJ_TURN_TP_TCP
/usr/local/include/pjnath/turn_session.h:148:5: note: 'PJ_TURN_TP_TCP' declared here
PJ_TURN_TP_TCP = 6,
^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:424:17: error: no member named 'protocol' in 'pj_ice_strans_cfg'
config_.protocol = PJ_ICE_TP_UDP;
~~~~~~~ ^
/usr/ports/net-im/jami-daemon/work/jami-daemon-3062351d377cc055a4bcc697ec4501a22d534229/src/connectivity/ice_transport.cpp:424:28: error: use of undeclared identifier 'PJ_ICE_TP_UDP'; did you mean 'PJ_TURN_TP_UDP'?
config_.protocol = PJ_ICE_TP_UDP;
^~~~~~~~~~~~~
PJ_TURN_TP_UDP
/usr/local/include/pjnath/turn_session.h:143:5: note: 'PJ_TURN_TP_UDP' declared here
PJ_TURN_TP_UDP = 17,
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
```
rev. 3062351d377cc055a4bcc697ec4501a22d534229
pjsip-2.13 (the latest version of pjproject)
clang-14
FreeBSD 13.1Maxim CournoyerSébastien BlinMaxim Cournoyerhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/83Build Errors/Warnings/Notes2023-02-06T20:58:10ZvindicatorrBuild Errors/Warnings/Notes```
fileutils.cpp: In function ‘std::vector<std::__cxx11::basic_string<char> > ring::fileutils::readDirectory(const string&)’:
fileutils.cpp:411:72: warning: ‘int readdir_r(DIR*, dirent*, dirent**)’ is deprecated [-Wdeprecated-declaratio...```
fileutils.cpp: In function ‘std::vector<std::__cxx11::basic_string<char> > ring::fileutils::readDirectory(const string&)’:
fileutils.cpp:411:72: warning: ‘int readdir_r(DIR*, dirent*, dirent**)’ is deprecated [-Wdeprecated-declarations]
while (!readdir_r(dp, reinterpret_cast<dirent*>(buf.data()), &entry) && entry) {
^
In file included from /usr/include/features.h:428,
from /usr/include/c++/8.2.1/x86_64-pc-linux-gnu/bits/os_defines.h:39,
from /usr/include/c++/8.2.1/x86_64-pc-linux-gnu/bits/c++config.h:508,
from /usr/include/c++/8.2.1/cstdint:38,
from /usr/include/c++/8.2.1/cinttypes:38,
from logger.h:25,
from fileutils.cpp:27:
/usr/include/dirent.h:189:12: note: declared here
extern int __REDIRECT (readdir_r,
^~~~~~~~~~
fileutils.cpp:411:72: warning: ‘int readdir_r(DIR*, dirent*, dirent**)’ is deprecated [-Wdeprecated-declarations]
while (!readdir_r(dp, reinterpret_cast<dirent*>(buf.data()), &entry) && entry) {
^
In file included from /usr/include/features.h:428,
from /usr/include/c++/8.2.1/x86_64-pc-linux-gnu/bits/os_defines.h:39,
from /usr/include/c++/8.2.1/x86_64-pc-linux-gnu/bits/c++config.h:508,
from /usr/include/c++/8.2.1/cstdint:38,
from /usr/include/c++/8.2.1/cinttypes:38,
from logger.h:25,
from fileutils.cpp:27:
/usr/include/dirent.h:189:12: note: declared here
extern int __REDIRECT (readdir_r,
^~~~~~~~~~
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/461Audio artifacts (doesn't appear to be related to packet loss)2023-02-06T20:57:53ZPierre LespagnolAudio artifacts (doesn't appear to be related to packet loss)Backloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/428Re-work network congestion detection2023-02-06T20:57:50ZPierre LespagnolRe-work network congestion detectionIn some cases the congestion detection is not efficient, increase the sensibility of the algorithm will help to detect more congestions.In some cases the congestion detection is not efficient, increase the sensibility of the algorithm will help to detect more congestions.BacklogPierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/581UPNP - Read after free2023-02-06T20:57:10ZOlivier DionUPNP - Read after freeFound while using the agent
```
=================================================================
==585705==ERROR: AddressSanitizer: heap-use-after-free on address 0x615000080020 at pc 0x55555a141666 bp 0x7fffd8fad760 sp 0x7fffd8fad750
...Found while using the agent
```
=================================================================
==585705==ERROR: AddressSanitizer: heap-use-after-free on address 0x615000080020 at pc 0x55555a141666 bp 0x7fffd8fad760 sp 0x7fffd8fad750
READ of size 8 at 0x615000080020 thread T15
#0 0x55555a141665 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count(std::__weak_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/11.1.0/bits/shared_ptr_base.h:867
#1 0x55555af06657 in std::__shared_ptr<jami::upnp::UPnPProtocol, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<jami::upnp::UPnPProtocol, void>(std::__weak_ptr<jami::upnp::UPnPProtocol, (__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/11.1.0/bits/shared_ptr_base.h:1173
#2 0x55555af051fd in std::shared_ptr<jami::upnp::UPnPProtocol>::shared_ptr<jami::upnp::UPnPProtocol, void>(std::weak_ptr<jami::upnp::UPnPProtocol> const&) /usr/include/c++/11.1.0/bits/shared_ptr.h:326
#3 0x55555af04000 in std::enable_shared_from_this<jami::upnp::UPnPProtocol>::shared_from_this() /usr/include/c++/11.1.0/bits/shared_ptr.h:808
#4 0x55555af51dab in jami::upnp::PUPnP::weak() /ring-project/daemon/src/upnp/protocol/pupnp/pupnp.h:247
#5 0x55555af247d7 in jami::upnp::PUPnP::ctrlPtCallback(Upnp_EventType_e, void const*, void*) /ring-project/daemon/src/upnp/protocol/pupnp/pupnp.cpp:757
#6 0x7ffff6c417a6 (/usr/lib/libupnp.so.17+0xf7a6)
#7 0x7ffff6c3ec06 (/usr/lib/libupnp.so.17+0xcc06)
#8 0x7ffff4c41258 in start_thread (/usr/lib/libpthread.so.0+0x9258)
#9 0x7ffff38f25e2 in __GI___clone (/usr/lib/libc.so.6+0xfe5e2)
0x615000080020 is located 32 bytes inside of 456-byte region [0x615000080000,0x6150000801c8)
freed by thread T11 here:
#0 0x7ffff767ad69 in operator delete(void*, unsigned long) /build/gcc/src/gcc/libsanitizer/asan/asan_new_delete.cpp:172
#1 0x555559e4da57 in __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>, (__gnu_cxx::_Lock_policy)2> >::deallocate(std::_Sp_counted_ptr_inplace<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>, (__gnu_cxx::_Lock_policy)2>*, unsigned long) (/ring-project/daemon/test/agent/agent+0x48f9a57)
#2 0x555559e4c4ed in std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>, (__gnu_cxx::_Lock_policy)2> > >::deallocate(std::allocator<std::_Sp_counted_ptr_inplace<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>, (__gnu_cxx::_Lock_policy)2> >&, std::_Sp_counted_ptr_inplace<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>, (__gnu_cxx::_Lock_policy)2>*, unsigned long) /usr/include/c++/11.1.0/bits/alloc_traits.h:492
#3 0x555559e48d11 in std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>, (__gnu_cxx::_Lock_policy)2> > >::~__allocated_ptr() (/ring-project/daemon/test/agent/agent+0x48f4d11)
#4 0x555559e4ffee in std::_Sp_counted_ptr_inplace<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>, (__gnu_cxx::_Lock_policy)2>::_M_destroy() (/ring-project/daemon/test/agent/agent+0x48fbfee)
#5 0x555559d6ffc6 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_weak_release() /usr/include/c++/11.1.0/bits/shared_ptr_base.h:207
#6 0x555559d62b18 in std::__weak_count<(__gnu_cxx::_Lock_policy)2>::~__weak_count() /usr/include/c++/11.1.0/bits/shared_ptr_base.h:795
#7 0x55555af51bf9 in std::__weak_ptr<jami::upnp::PUPnP, (__gnu_cxx::_Lock_policy)2>::~__weak_ptr() /usr/include/c++/11.1.0/bits/shared_ptr_base.h:1605
#8 0x55555af51c67 in std::weak_ptr<jami::upnp::PUPnP>::~weak_ptr() /usr/include/c++/11.1.0/bits/shared_ptr.h:686
#9 0x55555af201d6 in ~<lambda> /ring-project/daemon/src/upnp/protocol/pupnp/pupnp.cpp:622
#10 0x55555af3abe5 in ~<lambda> /ring-project/daemon/src/upnp/protocol/pupnp/pupnp.h:144
#11 0x55555af4c6e4 in _M_destroy /usr/include/c++/11.1.0/bits/std_function.h:174
#12 0x55555af4717e in _M_manager /usr/include/c++/11.1.0/bits/std_function.h:200
#13 0x55555af42ae9 in _M_manager /usr/include/c++/11.1.0/bits/std_function.h:283
#14 0x555559aac0a6 in std::_Function_base::~_Function_base() /usr/include/c++/11.1.0/bits/std_function.h:245
#15 0x555559c82285 in std::function<void ()>::~function() /usr/include/c++/11.1.0/bits/std_function.h:328
#16 0x55555a94f2f4 in void std::_Destroy<std::function<void ()> >(std::function<void ()>*) /usr/include/c++/11.1.0/bits/stl_construct.h:140
#17 0x55555a94dc89 in void std::_Destroy_aux<false>::__destroy<std::function<void ()>*>(std::function<void ()>*, std::function<void ()>*) /usr/include/c++/11.1.0/bits/stl_construct.h:152
#18 0x55555a94b7da in void std::_Destroy<std::function<void ()>*>(std::function<void ()>*, std::function<void ()>*) /usr/include/c++/11.1.0/bits/stl_construct.h:185
#19 0x55555a947fbf in void std::_Destroy<std::function<void ()>*, std::function<void ()> >(std::function<void ()>*, std::function<void ()>*, std::allocator<std::function<void ()> >&) /usr/include/c++/11.1.0/bits/alloc_traits.h:746
#20 0x55555a94563c in std::vector<std::function<void ()>, std::allocator<std::function<void ()> > >::~vector() /usr/include/c++/11.1.0/bits/stl_vector.h:680
#21 0x55555a93c72a in jami::ScheduledExecutor::loop() /ring-project/daemon/src/scheduled_executor.cpp:142
#22 0x55555a938dcd in operator() /ring-project/daemon/src/scheduled_executor.cpp:32
#23 0x55555a94285f in __invoke_impl<void, jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:61
#24 0x55555a94271a in __invoke<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:96
#25 0x55555a9425ef in _M_invoke<0> /usr/include/c++/11.1.0/bits/std_thread.h:253
#26 0x55555a942525 in operator() /usr/include/c++/11.1.0/bits/std_thread.h:260
#27 0x55555a9424dd in _M_run /usr/include/c++/11.1.0/bits/std_thread.h:211
#28 0x7ffff45643c3 in execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:82
previously allocated by thread T1 here:
#0 0x7ffff7679ca1 in operator new(unsigned long) /build/gcc/src/gcc/libsanitizer/asan/asan_new_delete.cpp:99
#1 0x555559e4da17 in __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) (/ring-project/daemon/test/agent/agent+0x48f9a17)
#2 0x555559e4c3ad in std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/11.1.0/bits/alloc_traits.h:460
#3 0x555559e48b97 in std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>, (__gnu_cxx::_Lock_policy)2> >&) (/ring-project/daemon/test/agent/agent+0x48f4b97)
#4 0x555559e43e3a in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>>(jami::upnp::PUPnP*&, std::_Sp_alloc_shared_tag<std::allocator<jami::upnp::PUPnP> >) /usr/include/c++/11.1.0/bits/shared_ptr_base.h:648
#5 0x555559e391ab in std::__shared_ptr<jami::upnp::PUPnP, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<jami::upnp::PUPnP>>(std::_Sp_alloc_shared_tag<std::allocator<jami::upnp::PUPnP> >) /usr/include/c++/11.1.0/bits/shared_ptr_base.h:1337
#6 0x555559e2c43d in std::shared_ptr<jami::upnp::PUPnP>::shared_ptr<std::allocator<jami::upnp::PUPnP>>(std::_Sp_alloc_shared_tag<std::allocator<jami::upnp::PUPnP> >) (/ring-project/daemon/test/agent/agent+0x48d843d)
#7 0x555559e1f90c in std::shared_ptr<jami::upnp::PUPnP> std::allocate_shared<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>>(std::allocator<jami::upnp::PUPnP> const&) (/ring-project/daemon/test/agent/agent+0x48cb90c)
#8 0x555559e169a8 in std::shared_ptr<jami::upnp::PUPnP> std::make_shared<jami::upnp::PUPnP>() (/ring-project/daemon/test/agent/agent+0x48c29a8)
#9 0x555559dd7ee5 in jami::upnp::UPnPContext::init() /usr/include/c++/11.1.0/bits/upnp_context.cpp:118
#10 0x555559dd302e in operator() /usr/include/c++/11.1.0/bits/upnp_context.cpp:46
#11 0x555559dffdd1 in operator() /ring-project/daemon/src/upnp/upnp_thread_util.h:31
#12 0x555559e0b81e in __invoke_impl<void, jami::upnp::UpnpThreadUtil::runOnUpnpContextQueue<jami::upnp::UPnPContext::UPnPContext()::<lambda()> >(jami::upnp::UPnPContext::UPnPContext()::<lambda()>&&)::<lambda()>&> /usr/include/c++/11.1.0/bits/invoke.h:61
#13 0x555559e0827b in __invoke_r<void, jami::upnp::UpnpThreadUtil::runOnUpnpContextQueue<jami::upnp::UPnPContext::UPnPContext()::<lambda()> >(jami::upnp::UPnPContext::UPnPContext()::<lambda()>&&)::<lambda()>&> /usr/include/c++/11.1.0/bits/invoke.h:111
#14 0x555559e05f68 in _M_invoke /usr/include/c++/11.1.0/bits/std_function.h:291
#15 0x55555a02c996 in std::function<void ()>::operator()() const /usr/include/c++/11.1.0/bits/std_function.h:560
#16 0x55555a93c6c0 in jami::ScheduledExecutor::loop() /ring-project/daemon/src/scheduled_executor.cpp:137
#17 0x55555a938dcd in operator() /ring-project/daemon/src/scheduled_executor.cpp:32
#18 0x55555a94285f in __invoke_impl<void, jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:61
#19 0x55555a94271a in __invoke<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:96
#20 0x55555a9425ef in _M_invoke<0> /usr/include/c++/11.1.0/bits/std_thread.h:253
#21 0x55555a942525 in operator() /usr/include/c++/11.1.0/bits/std_thread.h:260
#22 0x55555a9424dd in _M_run /usr/include/c++/11.1.0/bits/std_thread.h:211
#23 0x7ffff45643c3 in execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:82
Thread T15 created by T11 here:
#0 0x7ffff7619fa7 in __interceptor_pthread_create /build/gcc/src/gcc/libsanitizer/asan/asan_interceptors.cpp:216
#1 0x7ffff6c3e520 (/usr/lib/libupnp.so.17+0xc520)
Thread T11 created by T1 here:
#0 0x7ffff7619fa7 in __interceptor_pthread_create /build/gcc/src/gcc/libsanitizer/asan/asan_interceptors.cpp:216
#1 0x7ffff45646aa in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663
#2 0x55555a9394f8 in jami::ScheduledExecutor::ScheduledExecutor() /ring-project/daemon/src/scheduled_executor.cpp:27
#3 0x55555af0deae in jami::upnp::PUPnP::PUPnP() /ring-project/daemon/src/upnp/protocol/pupnp/pupnp.cpp:100
#4 0x555559e4dacc in void __gnu_cxx::new_allocator<jami::upnp::PUPnP>::construct<jami::upnp::PUPnP>(jami::upnp::PUPnP*) (/ring-project/daemon/test/agent/agent+0x48f9acc)
#5 0x555559e4c58e in void std::allocator_traits<std::allocator<jami::upnp::PUPnP> >::construct<jami::upnp::PUPnP>(std::allocator<jami::upnp::PUPnP>&, jami::upnp::PUPnP*) /usr/include/c++/11.1.0/bits/alloc_traits.h:512
#6 0x555559e4925e in std::_Sp_counted_ptr_inplace<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<>(std::allocator<jami::upnp::PUPnP>) (/ring-project/daemon/test/agent/agent+0x48f525e)
#7 0x555559e43ed7 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>>(jami::upnp::PUPnP*&, std::_Sp_alloc_shared_tag<std::allocator<jami::upnp::PUPnP> >) /usr/include/c++/11.1.0/bits/shared_ptr_base.h:650
#8 0x555559e391ab in std::__shared_ptr<jami::upnp::PUPnP, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<jami::upnp::PUPnP>>(std::_Sp_alloc_shared_tag<std::allocator<jami::upnp::PUPnP> >) /usr/include/c++/11.1.0/bits/shared_ptr_base.h:1337
#9 0x555559e2c43d in std::shared_ptr<jami::upnp::PUPnP>::shared_ptr<std::allocator<jami::upnp::PUPnP>>(std::_Sp_alloc_shared_tag<std::allocator<jami::upnp::PUPnP> >) (/ring-project/daemon/test/agent/agent+0x48d843d)
#10 0x555559e1f90c in std::shared_ptr<jami::upnp::PUPnP> std::allocate_shared<jami::upnp::PUPnP, std::allocator<jami::upnp::PUPnP>>(std::allocator<jami::upnp::PUPnP> const&) (/ring-project/daemon/test/agent/agent+0x48cb90c)
#11 0x555559e169a8 in std::shared_ptr<jami::upnp::PUPnP> std::make_shared<jami::upnp::PUPnP>() (/ring-project/daemon/test/agent/agent+0x48c29a8)
#12 0x555559dd7ee5 in jami::upnp::UPnPContext::init() /usr/include/c++/11.1.0/bits/upnp_context.cpp:118
#13 0x555559dd302e in operator() /usr/include/c++/11.1.0/bits/upnp_context.cpp:46
#14 0x555559dffdd1 in operator() /ring-project/daemon/src/upnp/upnp_thread_util.h:31
#15 0x555559e0b81e in __invoke_impl<void, jami::upnp::UpnpThreadUtil::runOnUpnpContextQueue<jami::upnp::UPnPContext::UPnPContext()::<lambda()> >(jami::upnp::UPnPContext::UPnPContext()::<lambda()>&&)::<lambda()>&> /usr/include/c++/11.1.0/bits/invoke.h:61
#16 0x555559e0827b in __invoke_r<void, jami::upnp::UpnpThreadUtil::runOnUpnpContextQueue<jami::upnp::UPnPContext::UPnPContext()::<lambda()> >(jami::upnp::UPnPContext::UPnPContext()::<lambda()>&&)::<lambda()>&> /usr/include/c++/11.1.0/bits/invoke.h:111
#17 0x555559e05f68 in _M_invoke /usr/include/c++/11.1.0/bits/std_function.h:291
#18 0x55555a02c996 in std::function<void ()>::operator()() const /usr/include/c++/11.1.0/bits/std_function.h:560
#19 0x55555a93c6c0 in jami::ScheduledExecutor::loop() /ring-project/daemon/src/scheduled_executor.cpp:137
#20 0x55555a938dcd in operator() /ring-project/daemon/src/scheduled_executor.cpp:32
#21 0x55555a94285f in __invoke_impl<void, jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:61
#22 0x55555a94271a in __invoke<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:96
#23 0x55555a9425ef in _M_invoke<0> /usr/include/c++/11.1.0/bits/std_thread.h:253
#24 0x55555a942525 in operator() /usr/include/c++/11.1.0/bits/std_thread.h:260
#25 0x55555a9424dd in _M_run /usr/include/c++/11.1.0/bits/std_thread.h:211
#26 0x7ffff45643c3 in execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:82
Thread T1 created by T0 here:
#0 0x7ffff7619fa7 in __interceptor_pthread_create /build/gcc/src/gcc/libsanitizer/asan/asan_interceptors.cpp:216
#1 0x7ffff45646aa in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663
#2 0x55555a9394f8 in jami::ScheduledExecutor::ScheduledExecutor() /ring-project/daemon/src/scheduled_executor.cpp:27
#3 0x55555a5f3ab2 in jami::Manager::ManagerPimpl::ManagerPimpl(jami::Manager&) /ring-project/daemon/src/manager.cpp:459
#4 0x55555a5fc60e in jami::Manager::Manager() /ring-project/daemon/src/manager.cpp:737
#5 0x55555a5fbfcb in jami::Manager::instance() /ring-project/daemon/src/manager.cpp:713
#6 0x555559c7a228 in DRing::init(DRing::InitFlag) /ring-project/daemon/src/ring_api.cpp:57
#7 0x555559b24d07 in main /usr/include/c++/11.1.0/main.cpp:326
#8 0x7ffff381bb24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
SUMMARY: AddressSanitizer: heap-use-after-free /usr/include/c++/11.1.0/bits/shared_ptr_base.h:867 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count(std::__weak_count<(__gnu_cxx::_Lock_policy)2> const&)
Shadow bytes around the buggy address:
0x0c2a80007fb0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2a80007fc0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2a80007fd0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2a80007fe0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2a80007ff0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x0c2a80008000: fd fd fd fd[fd]fd fd fd fd fd fd fd fd fd fd fd
0x0c2a80008010: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2a80008020: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2a80008030: fd fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa
0x0c2a80008040: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c2a80008050: 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
==585705==ABORTING
```BacklogMohamed ChibaniMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/618ICE/PJNATH - assertion failure in start_nominated_check()2023-02-06T20:56:58ZMohamed ChibaniICE/PJNATH - assertion failure in start_nominated_check()Assertion failure in start_nominated_check() method:
```
2890 pj_assert(c->err_code == PJ_SUCCESS);
```
err_code is PJ_EPENDING instead of PJ_SUCCESS. \
Seen with TCP connections.Assertion failure in start_nominated_check() method:
```
2890 pj_assert(c->err_code == PJ_SUCCESS);
```
err_code is PJ_EPENDING instead of PJ_SUCCESS. \
Seen with TCP connections.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/628ICE/PJNATH - crash destroy_timer_callback, retransmit_timer_callback and pj_i...2023-02-06T20:56:48ZMohamed ChibaniICE/PJNATH - crash destroy_timer_callback, retransmit_timer_callback and pj_ioqueue_pollSee back trace bellow.See back trace bellow.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/785conference: broken layout when active participant crashes2023-02-06T20:49:21ZAline Gondim Santosconference: broken layout when active participant crasheshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/803Extra participant in group call2023-02-06T20:46:47ZAmirhossein NaghshzanExtra participant in group callIf I start a group call with video everything is fine but when I start the call with audio only, there is an extra person in the call and its URI is the URI of the conversation.
It is reproducible on Linux.If I start a group call with video everything is fine but when I start the call with audio only, there is an extra person in the call and its URI is the URI of the conversation.
It is reproducible on Linux.Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/810Windows: Profile not updated2023-02-01T14:22:01ZSébastien BlinWindows: Profile not updated# Scenario
+ Create a swarm without any profile on GNU/Linux
+ Invite a windows peer
+ Windows peer accepts
+ Update the profile of the conversation
# Expected
Windows should show the new profile
# Current result
Windows show the ol...# Scenario
+ Create a swarm without any profile on GNU/Linux
+ Invite a windows peer
+ Windows peer accepts
+ Update the profile of the conversation
# Expected
Windows should show the new profile
# Current result
Windows show the old profile (probably a path error)Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/766non-registered Account.username gets regenerated each time the account is dis...2023-01-30T14:54:04ZMaxim Cournoyernon-registered Account.username gets regenerated each time the account is disabled/re-enabledHi,
I've stumbled on this strange behavior playing with the Guix System Jami service, which interacts with `jamid` via its D-Bus interface:
```
# herd list-accounts jami
The following Jami accounts are available:
- cbdf1e811005a9da53...Hi,
I've stumbled on this strange behavior playing with the Guix System Jami service, which interacts with `jamid` via its D-Bus interface:
```
# herd list-accounts jami
The following Jami accounts are available:
- cbdf1e811005a9da53d73d0eaaa6a1c5f9b23321 ()
# herd disable-account jami cbdf1e811005a9da53d73d0eaaa6a1c5f9b23321
# herd list-accounts jami
The following Jami accounts are available:
- cbdf1e811005a9da53d73d0eaaa6a1c5f9b23321 () [disabled]
herd enable-account jami cbdf1e811005a9da53d73d0eaaa6a1c5f9b23321
# let some time pass
# herd list-accounts jami
The following Jami accounts are available:
- f3cb93f1aac048e8284d271ae5a2950dc60318af ()
```
We can see that the above account username changed (the ID corresponds to the `Account.username` entry). I can't think of a reason why this should be; it is unintuitive and complicate things. In my opinion, the Account.username should not change.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/519Sometimes TLS connection fail cause of excessive EAGAIN2023-01-24T16:27:13ZSébastien BlinSometimes TLS connection fail cause of excessive EAGAIN```
[1618579385.330|27295|tls_session.cpp :887 ] [TLS] EAGAIN from transport, retry#98
[1618579385.340|27295|tls_session.cpp :887 ] [TLS] EAGAIN from transport, retry#99
[1618579385.350|27295|tls_session.cpp :887 ] [TLS] EAGAIN ...```
[1618579385.330|27295|tls_session.cpp :887 ] [TLS] EAGAIN from transport, retry#98
[1618579385.340|27295|tls_session.cpp :887 ] [TLS] EAGAIN from transport, retry#99
[1618579385.350|27295|tls_session.cpp :887 ] [TLS] EAGAIN from transport, retry#100
[1618579385.361|27295|tls_session.cpp :890 ] [TLS] excessive retry detected, aborting
[1618579385.361|27295|tls_session.cpp :898 ] [TLS] transport failure on tx: errno = 5
[1618579385.361|27295|tls_session.cpp :1162 ] [TLS] handshake failed: Error in the push function.
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/759Recording a call will cause a crash2023-01-20T17:32:27ZAndreas TraczykRecording a call will cause a crashThis seems to happen when the stream format is AV_PIX_FMT_NONEThis seems to happen when the stream format is AV_PIX_FMT_NONE