jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2024-03-08T19:26:14Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/10Crash when recording in full screen then recording2024-03-08T19:26:14ZAdministratorCrash when recording in full screen then recordingHow to reproduce:
1. Call someone
2. Set the call in fullscreen
3. Record
4. Hang up without stop recording
5. Re-call this person
6. Crash!
```
Thread 1 "lt-dring" received signal SIGSEGV, Segmentation fault.
ring::AudioReceiveThread::...How to reproduce:
1. Call someone
2. Set the call in fullscreen
3. Record
4. Hang up without stop recording
5. Re-call this person
6. Crash!
```
Thread 1 "lt-dring" received signal SIGSEGV, Segmentation fault.
ring::AudioReceiveThread::startRecorder (this=0x0, rec=std::shared_ptr<ring::MediaRecorder> (use count 1, weak count 0) = {...}) at audio_rtp_session.cpp:386
386 audioDecoder_->startRecorder(rec);
Missing separate debuginfos, use: dnf debuginfo-install alsa-lib-1.1.6-2.fc28.x86_64 alsa-plugins-pulseaudio-1.1.6-3.fc28.x86_64 bzip2-libs-1.0.6-26.fc28.x86_64 dbus-libs-1.12.8-1.fc28.x86_64 flac-libs-1.3.2-7.fc28.x86_64 gmp-6.1.2-7.fc28.x86_64 gnutls-3.6.2-1.fc28.x86_64 gsm-1.0.17-5.fc28.x86_64 jsoncpp-1.8.4-3.fc28.x86_64 libICE-1.0.9-12.fc28.x86_64 libSM-1.2.2-8.fc28.x86_64 libX11-1.6.5-7.fc28.x86_64 libX11-xcb-1.6.5-7.fc28.x86_64 libXau-1.0.8-11.fc28.x86_64 libXext-1.3.3-8.fc28.x86_64 libXfixes-5.0.3-5.fc28.x86_64 libXi-1.7.9-6.fc28.x86_64 libXtst-1.2.3-5.fc28.x86_64 libasyncns-0.8-14.fc28.x86_64 libblkid-2.32-2.fc28.x86_64 libcap-2.25-9.fc28.x86_64 libdrm-2.4.92-1.fc28.x86_64 libffi-3.1-16.fc28.x86_64 libgcc-8.1.1-1.fc28.x86_64 libgcrypt-1.8.2-2.fc28.x86_64 libgpg-error-1.29-1.fc28.x86_64 libidn2-2.0.5-1.fc28.x86_64 libmount-2.32-2.fc28.x86_64 libogg-1.3.2-10.fc28.x86_64 libpciaccess-0.13.4-8.fc28.x86_64 libsamplerate-0.1.9-1.fc28.x86_64 libselinux-2.7-13.fc28.x86_64 libsndfile-1.0.28-7.fc28.x86_64 libstdc++-8.1.1-1.fc28.x86_64 libtasn1-4.13-2.fc28.x86_64 libunistring-0.9.9-1.fc28.x86_64 libuuid-2.32-2.fc28.x86_64 libva-2.1.0-1.fc28.x86_64 libva-intel-driver-2.1.0-2.fc28.x86_64 libvdpau-1.1.1-7.fc28.x86_64 libvorbis-1.3.6-1.fc28.x86_64 libxcb-1.13-1.fc28.x86_64 lz4-libs-1.8.1.2-4.fc28.x86_64 nettle-3.4-2.fc28.x86_64 nss-mdns-0.14.1-1.fc28.x86_64 openssl-libs-1.1.0h-3.fc28.x86_64 opus-1.3-0.4.beta.fc28.x86_64 p11-kit-0.23.10-1.fc28.x86_64 pcre-8.42-1.fc28.x86_64 pcre2-10.31-4.fc28.x86_64 pulseaudio-libs-11.1-18.fc28.1.x86_64 speex-1.2.0-1.fc28.x86_64 speexdsp-1.2-0.13.rc3.fc28.x86_64 systemd-libs-238-8.git0e0aa59.fc28.x86_64 xz-libs-5.2.4-2.fc28.x86_64 yaml-cpp-0.6.1-2.fc28.x86_64 zlib-1.2.11-8.fc28.x86_64
(gdb) bt
#0 ring::AudioReceiveThread::startRecorder (this=0x0, rec=std::shared_ptr<ring::MediaRecorder> (use count 1, weak count 0) = {...}) at audio_rtp_session.cpp:386
#1 0x00007ffff69f4538 in ring::AudioRtpSession::startRecorder (this=0x2632100, rec=std::shared_ptr<ring::MediaRecorder> (use count 1, weak count 0) = {...}) at audio_rtp_session.cpp:520
#2 0x00007ffff69bde46 in ring::SIPCall::toggleRecording (this=0x7fffc00b72b0) at sipcall.cpp:1157
#3 0x00007ffff69580dc in ring::Manager::toggleRecordingCall(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () at manager.cpp:2408
#4 0x0000000000436954 in DBusCallManager::toggleRecording (callID="17475899643809895462", this=<optimized out>) at dbuscallmanager.cpp:219
#5 cx::ring::Ring::CallManager_adaptor::_toggleRecording_stub (this=0x6c8080, call=...) at dbuscallmanager.adaptor.h:997
#6 0x0000000000435fb7 in DBus::Callback<cx::ring::Ring::CallManager_adaptor, DBus::Message, DBus::CallMessage const&>::call (this=<optimized out>, param=...) at /home/AmarOk/Projets/ring-project/daemon/contrib/x86_64-redhat-linux/include/dbus-c++-1/dbus-c++/util.h:281
#7 0x0000000000458f1e in DBus::Slot<DBus::Message, DBus::CallMessage const&>::call(DBus::CallMessage const&) const ()
#8 0x0000000000457fd9 in DBus::InterfaceAdaptor::dispatch_method(DBus::CallMessage const&) ()
#9 0x0000000000460f0c in DBus::ObjectAdaptor::handle_message(DBus::Message const&) ()
#10 0x00000000004605a1 in DBus::ObjectAdaptor::Private::message_function_stub(DBusConnection*, DBusMessage*, void*) ()
#11 0x00007ffff7babeb8 in ?? () from /lib64/libdbus-1.so.3
#12 0x00007ffff7b9c604 in dbus_connection_dispatch () from /lib64/libdbus-1.so.3
#13 0x000000000044f2e6 in DBus::Connection::Private::do_dispatch() ()
#14 0x0000000000452872 in DBus::Dispatcher::dispatch_pending(std::__cxx11::list<DBus::Connection::Private*, std::allocator<DBus::Connection::Private*> >&) ()
#15 0x00000000004526a2 in DBus::Dispatcher::dispatch_pending() ()
#16 0x00000000004564d8 in DBus::BusDispatcher::do_iteration() ()
#17 0x000000000045620b in DBus::BusDispatcher::enter() ()
#18 0x000000000041bf2f in DBusClient::event_loop() () at dbusclient.cpp:250
#19 0x000000000041b719 in main () at main.cpp:236
#20 0x00007ffff101d18b in __libc_start_main () from /lib64/libc.so.6
#21 0x000000000041ba0a in _start () at main.cpp:241
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/9dtmf tones do not work2024-03-08T19:26:14ZJami Botdtmf tones do not workIssue generated from Tuleap's migration script.
**Originally submitted by: Stepan Salenikovich (ssalenik)**
<p>A user reported that sending dtmf tones (SIP or RTP) does not work.<br />
<br />
I think RTP tones are broken in the daem...Issue generated from Tuleap's migration script.
**Originally submitted by: Stepan Salenikovich (ssalenik)**
<p>A user reported that sending dtmf tones (SIP or RTP) does not work.<br />
<br />
I think RTP tones are broken in the daemon since a while ago. Its also possible that SIP tones work, but are not accepted in all cases on the other end?</p>
<p>Also the gnome UI is not very nice for sending them, so could also be an input issue.</p>SIP support - first iterationSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/8Invalid conversation state2024-03-08T19:26:14ZPierre DucheminInvalid conversation state## Environment
- Ring version: 20180511
- Device model: Nvidia Shield Pro, LG G3
- Android version: 7 (shield), 6 (LG)
- What build you are using: debug build on 636a065f603447f6c8472befd93c6b52e74ebfe3
## Steps to reproduce
-...## Environment
- Ring version: 20180511
- Device model: Nvidia Shield Pro, LG G3
- Android version: 7 (shield), 6 (LG)
- What build you are using: debug build on 636a065f603447f6c8472befd93c6b52e74ebfe3
## Steps to reproduce
- I reproduce the bug: at will
- Steps:
1. Call a contact that is only connected with an Android Phone device
2. The call is establishing
3. At the same time,
- on AndroidTV: hang up call
- on Android Phone: pick up call
- Actual result: on AndroidTV, everything is fine: the conversation hanged up and smartlist is displayed, but on the phone, a call is ongoing with a black screen instead of the video from the Shield. Video from phone displays normally on phone.
- Expected result: both devices should hang up.
## Additional information
Tried to reproduce the other way: phone calling TV, but everything went fine.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/7PIN should not contain confusing characters2024-03-08T19:26:14ZPhilippe GorleyPIN should not contain confusing charactersSome fonts can make '1' and 'I' or '0' and 'O' hard to tell apart. Ring should not generate a PIN with these characters.
These characters could be replaced with others (such as '-' or '_') to keep the entropy level.Some fonts can make '1' and 'I' or '0' and 'O' hard to tell apart. Ring should not generate a PIN with these characters.
These characters could be replaced with others (such as '-' or '_') to keep the entropy level.Adrien BéraudAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/6[GNOME] Sound applications should only show ‘Jami Daemon’ once and 'Unknown' ...2024-03-08T19:26:14Zovari[GNOME] Sound applications should only show ‘Jami Daemon’ once and 'Unknown' should be renamed 'Jami'Environment:<br>
Linux Mint 18.3 Cinnamon 3.6.7 64-bit
Reproduce steps:<br>
Make an Audio Call with Ring.
Expected result:<br>
In ‘System Settings’ → ‘Sound’ → ‘Applications’ tab, the ‘Ring Daemon’ should only show once.
Actual result...Environment:<br>
Linux Mint 18.3 Cinnamon 3.6.7 64-bit
Reproduce steps:<br>
Make an Audio Call with Ring.
Expected result:<br>
In ‘System Settings’ → ‘Sound’ → ‘Applications’ tab, the ‘Ring Daemon’ should only show once.
Actual result:<br>
In ‘System Settings’ → ‘Sound’ → ‘Applications’ tab, the ‘Ring Daemon’ shows twice. Please see attached image.
![RingDaemon](/uploads/4f2ea954c6a246cb3a0065473224c600/RingDaemon.png)
When Ring is not open:
```
$ ps aux | grep dring
ovari 4013 0.0 0.0 26708 948 pts/0 S+ 08:19 0:00 grep --color=auto dring
```
When Ring is open (no call has been made):
```
$ ps aux | grep dring
ovari 4029 12.2 1.6 1219232 31688 ? Sl 08:19 0:00 /usr/lib/ring/dring
ovari 4122 0.0 0.0 26708 1016 pts/0 S+ 08:19 0:00 grep --color=auto dring
```
Cross-reference:<br>
https://tuleap.ring.cx/plugins/tracker/?aid=1881
Thank youhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/5daemon: call goes to failure instead of over2024-03-08T19:26:14ZJami Botdaemon: call goes to failure instead of overIssue generated from Tuleap's migration script.
**Originally submitted by: Alexandre Lision (alision)**
<p>Steps to reproduce:</p>
<p>- make a call</p>
<p>- Bob hangs up</p>
<p>- Alice can go to Failure instead of Over (i...Issue generated from Tuleap's migration script.
**Originally submitted by: Alexandre Lision (alision)**
<p>Steps to reproduce:</p>
<p>- make a call</p>
<p>- Bob hangs up</p>
<p>- Alice can go to Failure instead of Over (it does not happen every time I think)</p>
<p> </p>
<p>This is the log generated:</p>
<pre>
<strong>1457970175.894|0x70000021d000|tls\_session.cpp:638 ] [TLS] shutdown
1457970175.894|0x1019b7000|siptransport.cpp:209 ] pjsip transport@0x1031c4088 TLS to 208.88.110.46:7170 -> DISCONNECTED
1457970175.894|0x1019b7000|sipcall.cpp:205 ] call:12405873968647423475] Ending call because underlying SIP transport was closed
1457970175.894|0x1019b7000|call.cpp:144 ] [call:12405873968647423475] state change 1/4, cnx 4/0, code 54
1457970175.894|0x1019b7000|call.cpp:163 ] [call:12405873968647423475] emit client call state change FAILURE, code 54
1457970175.894|0x1019b7000|manager.cpp:1778 ] [call:12405873968647423475] Failed
1457970175.894|0x1019b7000|corelayer.cpp:226 ] START STREAM
1457970175.894|0x1019b7000|call\_factory.cpp:39 ] Removing call 12405873968647423475
1457970175.894|0x1019b7000|call\_factory.cpp:43 ] Remaining 0 SIP call(s)
1457970175.895|0x1019b7000|call.cpp:144 ] [call:12405873968647423475] state change 4/5, cnx 0/0, code 0
1457970175.895|0x1019b7000|call.cpp:163 ] [call:12405873968647423475] emit client call state change OVER, code 0</strong></pre>
<p>The problem seems to be in the daemon, it emits first a FAILURE state changed before a OVER. LRC puts the call in failed and does nothing when the OVER signal is received:</p>
<p>Log in LRC:</p>
<pre>
<strong>Call State Changed for call "12405873968647423475" . New state : "FAILURE"
Call found Call(0x6000002321e0) "Talking"
Calling stateChanged "FAILURE" -> 6 on call with state "Talking" . Become "Failed"
Call State Changed for call "12405873968647423475" . New state : "OVER"
Call found Call(0x6000002321e0) "Failed"
Origin and destination states are identical "Failed" "Failed" doing nothing Call(0x6000002321e0)
Calling stateChanged "OVER" -> 7 on call with state "Failed" . Become "Failed"
</strong></pre>Guillaume RoguezGuillaume Roguezhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/4Improve message engine API2024-03-08T19:26:14ZJami BotImprove message engine APIIssue generated from Tuleap's migration script.
**Originally submitted by: Alexandre Lision (alision)**
<p>- Current daemon API exposes message status as strings which causes a lot of string comparisons.</p>
<p>- change callback na...Issue generated from Tuleap's migration script.
**Originally submitted by: Alexandre Lision (alision)**
<p>- Current daemon API exposes message status as strings which causes a lot of string comparisons.</p>
<p>- change callback name AccountMessageStatus -> AccountMessageStatusChanged, and add the account it's linked with and the uri it is send to.</p>
<p> </p>
<p>This changes will also impact LRC</p>https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/3remove IAX account and usage of libiax2024-03-08T19:26:14ZJami Botremove IAX account and usage of libiaxIssue generated from Tuleap's migration script.
**Originally submitted by: Guillaume Roguez (guillaume)**
libiax in current form has a licence not compatible with our GPLv3 licence.
As IAX account has not been updated and no more supp...Issue generated from Tuleap's migration script.
**Originally submitted by: Guillaume Roguez (guillaume)**
libiax in current form has a licence not compatible with our GPLv3 licence.
As IAX account has not been updated and no more support is done on it since first Ring release,
and there is no significant usage of it in the community, the Ring Team has decided to remove it from sources.
daemon, lrc and all clients are impacted by this ticket.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/2ring-daemon fails to build with opendht 1.2.1 using clang2024-03-08T19:26:13ZJami Botring-daemon fails to build with opendht 1.2.1 using clangIssue generated from Tuleap's migration script.
**Originally submitted by: Yuri (yurivict)**
I am getting these errors from clang-38 with both current ring-lrc and 1.0.0 ring-lrc:
```
In file included from configurationmanager.cpp:4...Issue generated from Tuleap's migration script.
**Originally submitted by: Yuri (yurivict)**
I am getting these errors from clang-38 with both current ring-lrc and 1.0.0 ring-lrc:
```
In file included from configurationmanager.cpp:40:
/usr/ports/net-im/ring-daemon/work/ring-daemon-56ec56f/src/ringdht/ringaccount.h:347:42: error: no member named 'Dht' in namespace 'dht'; did you mean 'dht'?
void saveNodes(const std::vector<dht::Dht::NodeExport>&) const;
\^\~\~\~\~\~\~\~
dht
/usr/local/include/opendht/default\_types.h:36:11: note: 'dht' declared here
namespace dht {
\^
In file included from configurationmanager.cpp:40:
/usr/ports/net-im/ring-daemon/work/ring-daemon-56ec56f/src/ringdht/ringaccount.h:348:43: error: no member named 'Dht' in namespace 'dht'; did you mean 'dht'?
void saveValues(const std::vector<dht::Dht::ValuesExport>&) const;
\^\~\~\~\~\~\~\~
dht
```
Spotted on FreeBSD.Adrien BéraudAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/1daemon: account maintenance regression2024-03-08T19:26:13ZJami Botdaemon: account maintenance regressionIssue generated from Tuleap's migration script.
**Originally submitted by: Guillaume Roguez (guillaume)**
Migration/Maintenance system is broken: not able to recreate a new device if ring\_device.\* files missing (ex: filesystem corrupt...Issue generated from Tuleap's migration script.
**Originally submitted by: Guillaume Roguez (guillaume)**
Migration/Maintenance system is broken: not able to recreate a new device if ring\_device.\* files missing (ex: filesystem corruption).
Was tested on GNU/Linux-GNOME and Win32 platforms, using lasted sources.
I only indicate GNU/Linux-GNOME below.
\* Environment:
daemon: 1ed6a0f video: disable auto quality by default
lrc: 68c8ad0 AccountModel: separate selected and chosen account
gnome:
\* Reproduce steps:
- Create a new ring account
- stop ring
- delete ring\_device.\* files associated to this account
- restart ring
\* Expected result:
- the client ask for the password
- the client shows the normal screen after correct password given, with new ring device generated
\* Actual result:
- the client loops in password askingAdrien BéraudAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/971"jamid" received signal SIGABRT, Aborted.2024-03-08T19:26:08ZCyrille Béraud"jamid" received signal SIGABRT, Aborted.`1709906012.321|57318|conversation.cpp :1675] Sync e43a7778189cc4adc94185c8db7e96c8d1097ed7 with 9138aa43a57c4cb0c77409837637d62e2c8731f176699e38c8c892a8f884f151
Thread 2 "jamid" received signal SIGABRT, Aborted.
[Switching to Th...`1709906012.321|57318|conversation.cpp :1675] Sync e43a7778189cc4adc94185c8db7e96c8d1097ed7 with 9138aa43a57c4cb0c77409837637d62e2c8731f176699e38c8c892a8f884f151
Thread 2 "jamid" received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffff39ff6c0 (LWP 319436)]
__pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
44 ./nptl/pthread_kill.c: Aucun fichier ou dossier de ce type.
(gdb) bt
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3 0x00007ffff66428e6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007ffff66268b7 in __GI_abort () at ./stdlib/abort.c:79
#5 0x00007ffff6627750 in __libc_message (fmt=fmt@entry=0x7ffff67c38d3 "*** %s ***: terminated\n") at ../sysdeps/posix/libc_fatal.c:150
#6 0x00007ffff6737c9b in __GI___fortify_fail (msg=msg@entry=0x7ffff67c8a98 "bit out of range 0 - FD_SETSIZE on fd_set") at ./debug/fortify_fail.c:24
#7 0x00007ffff6737792 in __GI___fdelt_chk (d=<optimized out>) at ./debug/fdelt_chk.c:26
#8 0x0000555555f41224 in dhtnet::upnp::NatPmp::readResponse(natpmp_t&, natpmpresp_t&) ()
#9 0x0000555555f42790 in dhtnet::upnp::NatPmp::getIgdPublicAddress() ()
#10 0x0000555555f430e3 in dhtnet::upnp::NatPmp::initNatPmp() ()
#11 0x0000555555f47075 in dhtnet::upnp::NatPmp::searchForIgd() ()
#12 0x0000555555f43b99 in asio::detail::wait_handler<dhtnet::upnp::NatPmp::searchForIgd()::{lambda(std::error_code const&)#1}, asio::any_io_executor>::do_complete(void*, asio::detail::scheduler_operation*, std::error_code const&, unsigned long) ()
#13 0x0000555555f2115e in asio::detail::scheduler::run(std::error_code&) [clone .isra.0] ()
#14 0x0000555555f214bf in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dhtnet::upnp::UPnPContext::createIoContext(std::shared_ptr<asio::io_context> const&, std::shared_ptr<dht::log::Logger> const&)::{lambda()#1}> > >::_M_run() ()
#15 0x00007ffff6ae6333 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#16 0x00007ffff6697b5a in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:444
#17 0x00007ffff67285fc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
(gdb)
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3 0x00007ffff66428e6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007ffff66268b7 in __GI_abort () at ./stdlib/abort.c:79
#5 0x00007ffff6627750 in __libc_message (fmt=fmt@entry=0x7ffff67c38d3 "*** %s ***: terminated\n") at ../sysdeps/posix/libc_fatal.c:150
#6 0x00007ffff6737c9b in __GI___fortify_fail (msg=msg@entry=0x7ffff67c8a98 "bit out of range 0 - FD_SETSIZE on fd_set") at ./debug/fortify_fail.c:24
#7 0x00007ffff6737792 in __GI___fdelt_chk (d=<optimized out>) at ./debug/fdelt_chk.c:26
#8 0x0000555555f41224 in dhtnet::upnp::NatPmp::readResponse(natpmp_t&, natpmpresp_t&) ()
#9 0x0000555555f42790 in dhtnet::upnp::NatPmp::getIgdPublicAddress() ()
#10 0x0000555555f430e3 in dhtnet::upnp::NatPmp::initNatPmp() ()
#11 0x0000555555f47075 in dhtnet::upnp::NatPmp::searchForIgd() ()
#12 0x0000555555f43b99 in asio::detail::wait_handler<dhtnet::upnp::NatPmp::searchForIgd()::{lambda(std::error_code const&)#1}, asio::any_io_executor>::do_complete(void*, asio::detail::scheduler_operation*, std::error_code const&, unsigned long) ()
#13 0x0000555555f2115e in asio::detail::scheduler::run(std::error_code&) [clone .isra.0] ()
#14 0x0000555555f214bf in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dhtnet::upnp::UPnPContext::createIoContext(std::shared_ptr<asio::io_context> const&, std::shared_ptr<dht::log::Logger> const&)::{lambda()#1}> > >::_M_run() ()
#15 0x00007ffff6ae6333 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#16 0x00007ffff6697b5a in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:444
#17 0x00007ffff67285fc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
(gdb)
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3 0x00007ffff66428e6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007ffff66268b7 in __GI_abort () at ./stdlib/abort.c:79
#5 0x00007ffff6627750 in __libc_message (fmt=fmt@entry=0x7ffff67c38d3 "*** %s ***: terminated\n") at ../sysdeps/posix/libc_fatal.c:150
#6 0x00007ffff6737c9b in __GI___fortify_fail (msg=msg@entry=0x7ffff67c8a98 "bit out of range 0 - FD_SETSIZE on fd_set") at ./debug/fortify_fail.c:24
#7 0x00007ffff6737792 in __GI___fdelt_chk (d=<optimized out>) at ./debug/fdelt_chk.c:26
#8 0x0000555555f41224 in dhtnet::upnp::NatPmp::readResponse(natpmp_t&, natpmpresp_t&) ()
#9 0x0000555555f42790 in dhtnet::upnp::NatPmp::getIgdPublicAddress() ()
#10 0x0000555555f430e3 in dhtnet::upnp::NatPmp::initNatPmp() ()
#11 0x0000555555f47075 in dhtnet::upnp::NatPmp::searchForIgd() ()
#12 0x0000555555f43b99 in asio::detail::wait_handler<dhtnet::upnp::NatPmp::searchForIgd()::{lambda(std::error_code const&)#1}, asio::any_io_executor>::do_complete(void*, asio::detail::scheduler_operation*, std::error_code const&, unsigned long) ()
#13 0x0000555555f2115e in asio::detail::scheduler::run(std::error_code&) [clone .isra.0] ()
#14 0x0000555555f214bf in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dhtnet::upnp::UPnPContext::createIoContext(std::shared_ptr<asio::io_context> const&, std::shared_ptr<dht::log::Logger> const&)::{lambda()#1}> > >::_M_run() ()
#15 0x00007ffff6ae6333 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#16 0x00007ffff6697b5a in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:444
#17 0x00007ffff67285fc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
(gdb)
`Adrien BéraudSébastien BlinAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/970Video camera stream is black when hardware acceleration is enabled2024-03-08T13:26:13ZPaul Le Guen de KerneizonVideo camera stream is black when hardware acceleration is enabled## How to report a bug
## One bug = one bug report
If you have multiple issues, please file separate bug reports. It will be much easier to track bugs that way.
## Avoid duplicates
Search for similar problem - update existing issue i...## How to report a bug
## One bug = one bug report
If you have multiple issues, please file separate bug reports. It will be much easier to track bugs that way.
## Avoid duplicates
Search for similar problem - update existing issue instead of creating new one.
## Bug report form
## Describe your environment
Please specify the following:
- OS: Ubuntu 22.04.4 LTS
- Jami version: 202402141827
- What build you are using: jami.net
## Steps to reproduce
1. Enable hardware acceleration in parameters with 960x540 resolution
2. Start a video call
- Actual result: My video camera stream is black on the Jami screen of other contacts in the meeting. However, I can see myself on my Jami screen. Must disable hardware acceleration to solve the problem or change the video resolution to 1280x720
- Expected result: Other people can see my camera video stream instead of a black screen.
## Additional information
- With Jami enable with `--debug`, this log appeared:
```
[1709890977.592|52761|accel.cpp :298 ] Failed to push frame to GPU: Invalid argument
[1709890977.593|52761|media_encoder.cpp :438 ] Fail to get frame
[1709890977.593|52761|video_sender.cpp :87 ] encoding failed
```
- The issue appears whatever camera I use
- My laptop is a Lenovo P14S with AMD GPU and same hardware
- We achieve to reproduce the same bug with Fedora 39
On contact side:
![Screenshot_from_2024-03-08_11-29-49](/uploads/f93d51095c449899708f64255c9f4850/Screenshot_from_2024-03-08_11-29-49.png)
On my side:
![Screenshot_from_2024-03-08_11-29-48](/uploads/f5672232032c2ce2a9671ebf44825c2e/Screenshot_from_2024-03-08_11-29-48.png)
For retrieving logs, cf [this page](https://git.jami.net/savoirfairelinux/ring-project/wikis/tutorials/Bug-report-guide#logs).https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/870pupnp avoid select() for sockets2024-03-06T16:25:35ZSébastien Blinpupnp avoid select() for sockets`select()` uses FD_SET() that can lead to random crashes unrelated to the number of files authorized per process.
This is used by `pupnp`, this may result in some backtraces like:
```
*** buffer overflow detected ***: terminated
Threa...`select()` uses FD_SET() that can lead to random crashes unrelated to the number of files authorized per process.
This is used by `pupnp`, this may result in some backtraces like:
```
*** buffer overflow detected ***: terminated
Thread 242 "jami" received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffe6cf81640 (LWP 246791)]
__pthread_kill_implementation (no_tid=0, signo=6, threadid=140730726618688) at ./nptl/pthread_kill.c:44
44 ./nptl/pthread_kill.c: No such file or directory.
(gdb) bt
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=140730726618688)
at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (signo=6, threadid=140730726618688) at ./nptl/pthread_kill.c:78
#2 __GI___pthread_kill (threadid=140730726618688, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3 0x00007ffff2442476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007ffff24287f3 in __GI_abort () at ./stdlib/abort.c:79
#5 0x00007ffff24896f6 in __libc_message
(action=action@entry=do_abort, fmt=fmt@entry=0x7ffff25db943 "*** %s ***: terminated\n")
at ../sysdeps/posix/libc_fatal.c:155
#6 0x00007ffff253676a in __GI___fortify_fail
(msg=msg@entry=0x7ffff25db8e9 "buffer overflow detected") at ./debug/fortify_fail.c:26
#7 0x00007ffff25350c6 in __GI___chk_fail () at ./debug/chk_fail.c:28
#8 0x00007ffff25366ab in __fdelt_chk (d=<optimized out>) at ./debug/fdelt_chk.c:25
#9 0x00007ffff3961625 in sock_read_write
(info=info@entry=0x7ffe6cf7aa00, buffer=0x7fff854dc120 "GET /dyndev/uuid:2d27b940-da93-441d-b519-acf1fbd1d460 HTTP/1.1\r\nHOST: 192.168.1.1:5431\r\nDATE: Tue, 11 Jul 2023 16:38:42 GMT\r\nCONNECTION: close\r\nUSER-AGENT: Linux/5.19.0-46-generic, UPnP/1.0, Portable "..., bufsize=bufsize@entry=232, timeoutSecs=timeoutSecs@entry=0x7ffe6cf7a9ec, bRead=bRead@entry=0) at src/genlib/net/sock.c:187
#10 0x00007ffff396183c in sock_write
(info=info@entry=0x7ffe6cf7aa00, buffer=<optimized out>, bufsize=bufsize@entry=232, timeoutSecs=timeoutSecs@entry=0x7ffe6cf7a9ec) at src/genlib/net/sock.c:292
#11 0x00007ffff396480c in http_SendMessage
(info=info@entry=0x7ffe6cf7aa00, TimeOut=TimeOut@entry=0x7ffe6cf7a9ec, fmt=0x7ffff44dda77 "",
fmt@entry=0x7ffff44dda76 "b") at src/genlib/net/http/httpreadwrite.c:698
#12 0x00007ffff3964913 in http_RequestAndResponse
(destination=destination@entry=0x7ffe6cf7ab10, request=0x7fff854dc120 "GET /dyndev/uuid:2d27b940-da93-441d-b519-acf1fbd1d460 HTTP/1.1\r\nHOST: 192.168.1.1:5431\r\nDATE: Tue, 11 Jul 2023 16:38:42 GMT\r\nCONNECTION: close\r\nUSER-AGENT: Linux/5.19.0-46-generic, UPnP/1.0, Portable "..., request_length=232, req_method=req_method@entry=HTTPMETHOD_GET, timeout_secs=<optimized out>,
timeout_secs@entry=30, response=response@entry=0x7ffe6cf7abe0)
at src/genlib/net/http/httpreadwrite.c:788
#13 0x00007ffff3965eb0 in http_Download
(url_str=<optimized out>, timeout_secs=timeout_secs@entry=30, document=document@entry=0x7ffe6cf7ae48, doc_length=doc_length@entry=0x7ffe6cf7ae20, content_type=content_type@entry=0x7ffe6cf7ae50 "\006") at src/genlib/net/http/httpreadwrite.c:897
#14 0x00007ffff39574d0 in UpnpDownloadUrlItem
(url=<optimized out>, outBuf=outBuf@entry=0x7ffe6cf7ae48, contentType=contentType@entry=0x7ffe6cf7ae50 "\006") at src/api/upnpapi.c:3500
#15 0x00007ffff3957545 in UpnpDownloadXmlDoc (url=<optimized out>, xmlDoc=0x7ffe6cf7af48)
at src/api/upnpapi.c:3519
#16 0x00007ffff327342e in jami::upnp::PUPnP::downLoadIgdDescription(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
(this=0x7fff9c001f00, locationUrl="http://192.168.1.1:5431/dyndev/uuid:2d27b940-da93-441d-b519-acf1fbd1d460") at connectivity/upnp/protocol/pupnp/pupnp.cpp:840
#17 0x00007ffff3272ce3 in operator()() const (__closure=0x7fff9c015f50)
at connectivity/upnp/protocol/pupnp/pupnp.cpp:831
#18 0x00007ffff327cf16 in std::__invoke_impl<void, jami::upnp::PUPnP::processDiscoverySearchResult(const string&, const string&, const jami::IpAddr&)::<lambda()>&>(std::__invoke_other, struct {...} &)
(__f=...) at /usr/include/c++/11/bits/invoke.h:61
#19 0x00007ffff327b883 in std::__invoke_r<void, jami::upnp::PUPnP::processDiscoverySearchResult(const string&, const string&, const jami::IpAddr&)::<lambda()>&>(struct {...} &) (__fn=...)
at /usr/include/c++/11/bits/invoke.h:111
--Type <RET> for more, q to quit, c to continue without paging--
#20 0x00007ffff327a739 in std::_Function_handler<void(), jami::upnp::PUPnP::processDiscoverySearchResult(const string&, const string&, const jami::IpAddr&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/11/bits/std_function.h:290
#21 0x00007ffff38118a7 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
at /home/sblin/Projects/jami-project/client-qt/daemon/src/.libs/libjami.so.0
#22 0x00007ffff28dc2b3 in () at /lib/x86_64-linux-gnu/libstdc++.so.6
#23 0x00007ffff2494b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#24 0x00007ffff2526a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
(gdb)
```
Instead of this, it should use `poll()` to avoid this kind of limitation.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/968Fix sporadic failures2024-03-05T17:58:43ZSébastien BlinFix sporadic failures```
1) test: jami::test::ConversationTest::testIsComposing (F) line: 986 conversation/conversation.cpp
assertion failed
- Expression: cv.wait_for(lk, 30s, [&]() { return bobData.composing; })
```
```
1) test: jami::test::ConversationM...```
1) test: jami::test::ConversationTest::testIsComposing (F) line: 986 conversation/conversation.cpp
assertion failed
- Expression: cv.wait_for(lk, 30s, [&]() { return bobData.composing; })
```
```
1) test: jami::test::ConversationMembersEventTest::testAddAcceptOfflineThenConnects (F) line: 613 conversation/conversationMembersEvent.cpp
assertion failed
- Expression: cv.wait_for(lk, 60s, [&]() { return !bobData.conversationId.empty(); })
```
```
!!!FAILURES!!!
Test Results:
Run: 4 Failures: 3 Errors: 0
1) test: jami::test::TypersTest::testSetIsComposing (F) line: 203 conversation/typers.cpp
assertion failed
- Expression: cv.wait_for(lk, 5s, [&]() { return bobData.composing[aliceUri]; })
2) test: jami::test::TypersTest::testTimeout (F) line: 229 conversation/typers.cpp
assertion failed
- Expression: cv.wait_for(lk, 5s, [&]() { return bobData.composing[aliceUri]; })
3) test: jami::test::TypersTest::testTypingRemovedOnMemberRemoved (F) line: 254 conversation/typers.cpp
assertion failed
- Expression: cv.wait_for(lk, 5s, [&]() { return aliceData.composing[bobUri]; })
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/949composingStatusChanged should be fully managed daemon side2024-03-05T13:50:09ZSébastien BlincomposingStatusChanged should be fully managed daemon sideActually, the daemon only forward the reception of the status change, but a lot of logic is implemented client side:
1. The preference to send/receive typing indicators MUST be moved in daemon (like read status)
2. The 12s timeout shoul...Actually, the daemon only forward the reception of the status change, but a lot of logic is implemented client side:
1. The preference to send/receive typing indicators MUST be moved in daemon (like read status)
2. The 12s timeout should be managed by the daemon
3. If a member of a conversation is removed while typing should be managed by the daemonSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/951Typing indicator still active after member has been kicked out of swarm2024-03-05T13:50:07ZFrançois-Simon Fauteux-ChapleauTyping indicator still active after member has been kicked out of swarm**Scenario**
- Alice creates a swarm and invites Bob and Carol to join
- Bob and Carol accept the invitation and open the swarm
- Alice opens the "Details" panel, right-clicks on Bob's name and clicks on "Kick member"
- Bob starts typin...**Scenario**
- Alice creates a swarm and invites Bob and Carol to join
- Bob and Carol accept the invitation and open the swarm
- Alice opens the "Details" panel, right-clicks on Bob's name and clicks on "Kick member"
- Bob starts typing a message in the swarm he just got kicked out of
**Result**
Both Alice and Carol still see a typing indicator ("Bob is typing...").
Note: As expected, Bob no longer sees typing indicators for Alice/Carol after being kicked out. The bug only occurs in one direction (from Bob to the remaining members of the swarm).Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/829Homogeneize features in video-conferences and 1:1 calls2024-03-04T18:51:02ZovariHomogeneize features in video-conferences and 1:1 calls(sblin):
+ Add voice-activity, multi-stream, raiseHand and other features for video-conferences in 1:1 calls
---
Original post:
Leon: Linux Mint 20.3 Cinnamon jami-client-qt deb edition from jami.net<br>
Pat: iPad jami 3.28 from app...(sblin):
+ Add voice-activity, multi-stream, raiseHand and other features for video-conferences in 1:1 calls
---
Original post:
Leon: Linux Mint 20.3 Cinnamon jami-client-qt deb edition from jami.net<br>
Pat: iPad jami 3.28 from apple store<br>
Merv: macOS jami 2.10 from apple store
Leon, Pat and Merv all delete each other and afterwards add each other as a contact. This is to make each conversion a Swarm as advised in [Taranis, a major release of Jami](https://jami.net/taranis-a-major-release-of-jami/).
1. Leon makes an audio call with Pat (no raise/lower hand button)
1. Leon adds Merv to audio call so there is a 3-way audio conversation (still no raise/lower hand button)
1. Enable video and the raise/lower hand button appears for Leon and Pat; however there is no raise/lower hand button for Merv and Merv can not see when Leon or Pat raise their hand.
Thank youSébastien BlinSébastien Blin2024-03-04https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/956ut_conversationMembersEvent: sporadic failures2024-03-04T18:11:59ZSébastien Blinut_conversationMembersEvent: sporadic failures```
1) test: jami::test::ConversationMembersEventTest::testAddAcceptOfflineThenConnects (F) line: 600 conversation/conversationMembersEvent.cpp
assertion failed
- Expression: cv.wait_for(lk, 60s, [&]() { return !bobData.conversationId.em...```
1) test: jami::test::ConversationMembersEventTest::testAddAcceptOfflineThenConnects (F) line: 600 conversation/conversationMembersEvent.cpp
assertion failed
- Expression: cv.wait_for(lk, 60s, [&]() { return !bobData.conversationId.empty(); })2) test: jami::test::ConversationMembersEventTest::testMemberCannotBanOther (F) line: 920 conversation/conversationMembersEvent.cpp
assertion failed
- Expression: cv.wait_for(lk, 30s, [&]() { return aliceData.errorDetected; })3) test: jami::test::ConversationMembersEventTest::testBanUnbanGotFirstConv (F) line: 1592 conversation/conversationMembersEvent.cpp
assertion failed
- Expression: cv.wait_for(lk, 30s, [&]() { return getMessage(bobData, msgId) && getMessage(bob2Data, msgId); })
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/961newOutgoingCall => no call for host (make newOutgoingCall Asyng and change ca...2024-02-28T20:04:42ZSébastien BlinnewOutgoingCall => no call for host (make newOutgoingCall Asyng and change call creation)https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/966Merge bind and attach methods2024-02-28T15:12:19ZSébastien BlinMerge bind and attach methods