jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2021-01-30T01:53:41Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/388conference: occasional flicker of black frames / artifacts2021-01-30T01:53:41ZAdrien Béraudconference: occasional flicker of black frames / artifactsIteration 27Pierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/387Swarm: prune branch after fetch & validation2021-02-26T16:37:27ZSébastien BlinSwarm: prune branch after fetch & validationSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/386After swarm v1: remove p2p.cpp and related files, lot of clean can be done2022-11-26T22:44:00ZSébastien BlinAfter swarm v1: remove p2p.cpp and related files, lot of clean can be donehttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/385code smell: some cleanup is necessary in alsalayer2021-07-09T20:55:58ZSébastien Blincode smell: some cleanup is necessary in alsalayerIn src/media/audio/alsa/alsalayer.*
+ std::vector<AudioSample> playbackIBuff_; and captureIBuff_; are unused
+ status_ = AudioLayer::Status::Started; is locked but is atomic so shouldn't be necessaryIn src/media/audio/alsa/alsalayer.*
+ std::vector<AudioSample> playbackIBuff_; and captureIBuff_; are unused
+ status_ = AudioLayer::Status::Started; is locked but is atomic so shouldn't be necessaryhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/384Call: deadlock in SIPCall::SIPSessionReinvite()2021-01-20T15:17:07ZAmirhossein NaghshzanCall: deadlock in SIPCall::SIPSessionReinvite()Just after the peer accepted the call:
```
thread #14, name = 'DRing'
frame #0: 0x00007b569ab2e2a8 libc.so`syscall + 24
frame #1: 0x00007b569ab31f03 libc.so`__futex_wait_ex(void volatile*, bool, int, bool, timespec const*) + ...Just after the peer accepted the call:
```
thread #14, name = 'DRing'
frame #0: 0x00007b569ab2e2a8 libc.so`syscall + 24
frame #1: 0x00007b569ab31f03 libc.so`__futex_wait_ex(void volatile*, bool, int, bool, timespec const*) + 147
frame #2: 0x00007b569ab9cb4d libc.so`NonPI::MutexLockWithTimeout(pthread_mutex_internal_t*, bool, timespec const*) + 541
frame #3: 0x00007b53ade1d6c6 libc++_shared.so`std::__ndk1::recursive_mutex::lock() [inlined] std::__ndk1::__libcpp_recursive_mutex_lock(__m=<unavailable>) at __threading_support:244
frame #4: 0x00007b53ade1d6c1 libc++_shared.so`std::__ndk1::recursive_mutex::lock(this=<unavailable>) at mutex.cpp:71
frame #5: 0x00007b53ae257503 libring.so`std::__ndk1::lock_guard<std::__ndk1::recursive_mutex>::lock_guard(this=0x00007b53b03369b0, __m=0x00007b5518d611b0) at __mutex_base:99
frame #6: 0x00007b53ae626e9a libring.so`jami::SIPCall::~SIPCall(this=0x00007b5518d61100) at sipcall.cpp:112
frame #7: 0x00007b53ae3b6a28 libring.so`std::__ndk1::shared_ptr<jami::SIPCall> jami::CallFactory::newCall<jami::SIPCall, jami::JamiAccount>(this=0x00007b5518d61100)::ConcreteCall::~ConcreteCall() at call_factory.h:89
frame #8: 0x00007b53ae3b63d6 libring.so`std::__ndk1::__shared_ptr_emplace<std::__ndk1::shared_ptr<jami::SIPCall> jami::CallFactory::newCall<jami::SIPCall, jami::JamiAccount>(std::__ndk1::shared_ptr<jami::JamiAccount>, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, jami::Call::CallType, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > > const&)::ConcreteCall, std::__ndk1::allocator<std::__ndk1::shared_ptr<jami::SIPCall> jami::CallFactory::newCall<jami::SIPCall, jami::JamiAccount>(std::__ndk1::shared_ptr<jami::JamiAccount>, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, jami::Call::CallType, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > > const&)::ConcreteCall> >::__on_zero_shared(this=0x00007b5518d610e0) at memory:3581
frame #9: 0x00007b53ae246fdd libring.so`std::__ndk1::__shared_count::__release_shared(this=0x00007b5518d610e0) at memory:3415
frame #10: 0x00007b53ae246f7f libring.so`std::__ndk1::__shared_weak_count::__release_shared(this=0x00007b5518d610e0) at memory:3457
frame #11: 0x00007b53ae263f1c libring.so`std::__ndk1::shared_ptr<jami::SIPCall>::~shared_ptr(this=0x00007b5458d4b208) at memory:4393
frame #12: 0x00007b53ae2e5dc6 libring.so`jami::JamiAccount::onConnectedOutgoingCall(this=0x00007b5458d4b1d8)::$_9::~$_9() at jamiaccount.cpp:664
frame #13: 0x00007b53ae30a855 libring.so`std::__ndk1::__compressed_pair_elem<jami::JamiAccount::onConnectedOutgoingCall(std::__ndk1::shared_ptr<jami::SIPCall> const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, jami::IpAddr)::$_9, 0, false>::~__compressed_pair_elem(this=0x00007b5458d4b1d8) at memory:2133
frame #14: 0x00007b53ae30a938 libring.so`std::__ndk1::__compressed_pair<jami::JamiAccount::onConnectedOutgoingCall(std::__ndk1::shared_ptr<jami::SIPCall> const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, jami::IpAddr)::$_9, std::__ndk1::allocator<jami::JamiAccount::onConnectedOutgoingCall(std::__ndk1::shared_ptr<jami::SIPCall> const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, jami::IpAddr)::$_9> >::~__compressed_pair(this=0x00007b5458d4b1d8) at memory:2210
frame #15: 0x00007b53ae30b255 libring.so`std::__ndk1::__function::__alloc_func<jami::JamiAccount::onConnectedOutgoingCall(std::__ndk1::shared_ptr<jami::SIPCall> const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, jami::IpAddr)::$_9, std::__ndk1::allocator<jami::JamiAccount::onConnectedOutgoingCall(std::__ndk1::shared_ptr<jami::SIPCall> const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, jami::IpAddr)::$_9>, void (bool)>::destroy(this=0x00007b5458d4b1d8) at functional:1559
frame #16: 0x00007b53ae30a45b libring.so`std::__ndk1::__function::__func<jami::JamiAccount::onConnectedOutgoingCall(std::__ndk1::shared_ptr<jami::SIPCall> const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, jami::IpAddr)::$_9, std::__ndk1::allocator<jami::JamiAccount::onConnectedOutgoingCall(std::__ndk1::shared_ptr<jami::SIPCall> const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, jami::IpAddr)::$_9>, void (bool)>::destroy_deallocate(this=0x00007b5458d4b1d0) at functional:1706
frame #17: 0x00007b53ae25630a libring.so`std::__ndk1::__function::__value_func<void (bool)>::~__value_func(this=0x00007b5458d4ce70) at functional:1828
frame #18: 0x00007b53ae253e25 libring.so`std::__ndk1::function<void (bool)>::~function(this=0x00007b5458d4ce70) at functional:2460
frame #19: 0x00007b53ae6305f6 libring.so`jami::SIPCall::initIceMediaTransport(this=0x00007b5458d4ce60)::$_20::~$_20() at sipcall.cpp:1644
frame #20: 0x00007b53ae652285 libring.so`std::__ndk1::__compressed_pair_elem<jami::SIPCall::initIceMediaTransport(bool, std::__ndk1::optional<jami::IceTransportOptions>, unsigned int)::$_20, 0, false>::~__compressed_pair_elem(this=0x00007b5458d4ce60) at memory:2133
frame #21: 0x00007b53ae652368 libring.so`std::__ndk1::__compressed_pair<jami::SIPCall::initIceMediaTransport(bool, std::__ndk1::optional<jami::IceTransportOptions>, unsigned int)::$_20, std::__ndk1::allocator<jami::SIPCall::initIceMediaTransport(bool, std::__ndk1::optional<jami::IceTransportOptions>, unsigned int)::$_20> >::~__compressed_pair(this=0x00007b5458d4ce60) at memory:2210
frame #22: 0x00007b53ae652c85 libring.so`std::__ndk1::__function::__alloc_func<jami::SIPCall::initIceMediaTransport(bool, std::__ndk1::optional<jami::IceTransportOptions>, unsigned int)::$_20, std::__ndk1::allocator<jami::SIPCall::initIceMediaTransport(bool, std::__ndk1::optional<jami::IceTransportOptions>, unsigned int)::$_20>, void (bool)>::destroy(this=0x00007b5458d4ce60) at functional:1559
frame #23: 0x00007b53ae651e8b libring.so`std::__ndk1::__function::__func<jami::SIPCall::initIceMediaTransport(bool, std::__ndk1::optional<jami::IceTransportOptions>, unsigned int)::$_20, std::__ndk1::allocator<jami::SIPCall::initIceMediaTransport(bool, std::__ndk1::optional<jami::IceTransportOptions>, unsigned int)::$_20>, void (bool)>::destroy_deallocate(this=0x00007b5458d4ce50) at functional:1706
frame #24: 0x00007b53ae25630a libring.so`std::__ndk1::__function::__value_func<void (bool)>::~__value_func(this=0x00007b5598d491b0) at functional:1828
frame #25: 0x00007b53ae253e25 libring.so`std::__ndk1::function<void (bool)>::~function(this=0x00007b5598d491b0) at functional:2460
frame #26: 0x00007b53ae58b7fd libring.so`jami::IceTransport::Impl::~Impl(this=0x00007b5598d49170) at ice_transport.cpp:465
frame #27: 0x00007b53ae5a443b libring.so`std::__ndk1::default_delete<jami::IceTransport::Impl>::operator(this=0x00007b5418d5b8b0, __ptr=0x00007b5598d49170)(jami::IceTransport::Impl*) const at memory:2338
frame #28: 0x00007b53ae5a43bf libring.so`std::__ndk1::unique_ptr<jami::IceTransport::Impl, std::__ndk1::default_delete<jami::IceTransport::Impl> >::reset(this=0x00007b5418d5b8b0, __p=0x0000000000000000) at memory:2593
frame #29: 0x00007b53ae597ed9 libring.so`std::__ndk1::unique_ptr<jami::IceTransport::Impl, std::__ndk1::default_delete<jami::IceTransport::Impl> >::~unique_ptr(this=0x00007b5418d5b8b0) at memory:2547
frame #30: 0x00007b53ae58de75 libring.so`jami::IceTransport::~IceTransport(this=0x00007b5418d5b8b0) at ice_transport.cpp:981
frame #31: 0x00007b53ae66164b libring.so`std::__ndk1::default_delete<jami::IceTransport>::operator(this=0x00007b5518d7b0e0, __ptr=0x00007b5418d5b8b0)(jami::IceTransport*) const at memory:2338
frame #32: 0x00007b53ae658dcf libring.so`std::__ndk1::unique_ptr<jami::IceTransport, std::__ndk1::default_delete<jami::IceTransport> >::reset(this=0x00007b5518d7b0e0, __p=0x00007b5418d61350) at memory:2593
frame #33: 0x00007b53ae65974d libring.so`std::__ndk1::unique_ptr<jami::IceTransport, std::__ndk1::default_delete<jami::IceTransport> >::operator=(this=0x00007b5518d7b0e0, __u=0x00007b53b0336ea0) at memory:2512
frame #34: 0x00007b53ae628d2f libring.so`jami::SIPCall::initIceMediaTransport(this=0x00007b5518d7ad00, master=true, options=optional<jami::IceTransportOptions> @ 0x00007b53b03371b0, channel_num=4) at sipcall.cpp:1680
frame #35: 0x00007b53ae62865e libring.so`jami::SIPCall::SIPSessionReinvite(this=0x00007b5518d7ad00) at sipcall.cpp:315
frame #36: 0x00007b53ae62c40b libring.so`jami::SIPCall::switchInput(this=0x00007b5518d7ad00, resource="camera://1") at sipcall.cpp:869
frame #37: 0x00007b53ae51d9f0 libring.so`jami::Manager::switchInput(this=0x00007b53afe24678, call_id="7987882540241637", res="camera://1") at manager.cpp:2369
frame #38: 0x00007b53ae244e75 libring.so`DRing::switchInput(callID="7987882540241637", resource="camera://1") at callmanager.cpp:332
frame #39: 0x00007b53ae20b814 libring.so`::Java_cx_ring_daemon_RingserviceJNI_switchInput_1_1SWIG_10(jenv=0x00007b54c8d40530, jcls=<unavailable>, jarg1=<unavailable>, jarg2=0x00007b53b0337444) at ring_wrapper.cpp:8173
frame #40: 0x00007b5408689ec8 libart.so`art_quick_generic_jni_trampoline + 216
frame #41: 0x00007b540868a350 libart.so
```Iteration 26Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/383Checking for working udev doesn't work.2021-01-23T19:32:14ZFuchtelJockelChecking for working udev doesn't work.This doesn't catch the nonfunctional udev installation that flatpaks ship with.
```cpp
udev_ = udev_new();
if (!udev_)
goto udev_failed;
udev_mon_ = udev_monitor_new_from_netlink(udev_, "udev");
if (!udev_mon_)
...This doesn't catch the nonfunctional udev installation that flatpaks ship with.
```cpp
udev_ = udev_new();
if (!udev_)
goto udev_failed;
udev_mon_ = udev_monitor_new_from_netlink(udev_, "udev");
if (!udev_mon_)
goto udev_failed;
if (udev_monitor_filter_add_match_subsystem_devtype(udev_mon_, "video4linux", NULL))
goto udev_failed;
/* Enumerate existing devices */
devenum = udev_enumerate_new(udev_);
if (devenum == NULL)
goto udev_failed;
if (udev_enumerate_add_match_subsystem(devenum, "video4linux")) {
udev_enumerate_unref(devenum);
goto udev_failed;
}
```
Currently the flatpak version works using a patch but maybe this could be added as a build option or some of the checks are broken?
```
diff --git a/src/media/video/v4l2/video_device_monitor_impl.cpp b/src/media/video/v4l2/video_device_monitor_impl.cpp
index c6a4a2e9f..faa8f4179 100644
--- a/src/media/video/v4l2/video_device_monitor_impl.cpp
+++ b/src/media/video/v4l2/video_device_monitor_impl.cpp
@@ -126,7 +126,9 @@ VideoDeviceMonitorImpl::VideoDeviceMonitorImpl(VideoDeviceMonitor* monitor)
udev_enumerate_unref(devenum);
goto udev_failed;
}
-
+
+ goto udev_failed;
+
udev_monitor_enable_receiving(udev_mon_);
/* Note that we enumerate _after_ monitoring is enabled so that we do not
* loose device events occuring while we are enumerating. We could still
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/382Support multi-stream - remove the use of template for Call/SipCall classes2021-03-02T15:48:03ZMohamed ChibaniSupport multi-stream - remove the use of template for Call/SipCall classesThis is a refactoring and preparation activity for multi-stream support.This is a refactoring and preparation activity for multi-stream support.Mohamed ChibaniMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/381Swarm: add getConversationsInfo() with title + avatar + mode2021-04-21T19:13:20ZSébastien BlinSwarm: add getConversationsInfo() with title + avatar + mode# Done
+ Store title/subtitle/avatar into /profile.vcf
+ add commit type application/profile-update
+ Merge conflicts solver. Force merge profile with higher commit
+ add getConversationsInfos/setconversationInfos
+ Add details in conve...# Done
+ Store title/subtitle/avatar into /profile.vcf
+ add commit type application/profile-update
+ Merge conflicts solver. Force merge profile with higher commit
+ add getConversationsInfos/setconversationInfos
+ Add details in conversationsRequests()
+ Commit verification, verify that only profile.vcf is modified
+ Tests: check add profile, merge with conflicts, , check request in addContact & addConversationMember, only admin can update, no bad file, validateAdminUpdates
+ Check that only admin updates
+ Add docs
+ Clean TODOsSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/380Create and update an outgoing call with a provided list of media2021-04-14T14:35:15ZMohamed ChibaniCreate and update an outgoing call with a provided list of media
1- Allow to make an outgoing call with a provided list of media. This feature will allow adding an arbitrary number of media instead of limited to a max of 2 media.
2- Allow changing the media of an ongoing call without the need to te...
1- Allow to make an outgoing call with a provided list of media. This feature will allow adding an arbitrary number of media instead of limited to a max of 2 media.
2- Allow changing the media of an ongoing call without the need to terminate and start a new call.Mohamed ChibaniMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/379Fallback in video_device_monitor_impl.cpp dosn't work.2021-01-06T15:40:35ZFuchtelJockelFallback in video_device_monitor_impl.cpp dosn't work.Udev isn't supported inside a Flatpak sandbox and judging by the code inside video_device_monitor_impl.cpp it should automatically fall back to enumerating /dev/video# devices. For some reason this never gets executed and patching out th...Udev isn't supported inside a Flatpak sandbox and judging by the code inside video_device_monitor_impl.cpp it should automatically fall back to enumerating /dev/video# devices. For some reason this never gets executed and patching out the udev related code triggers some infinite loop. Since I'm not a c++ expert my patch could be at fault as well. Last where are the JAMI_ERR() calls going, I don't see anything in stdout?
[jami-daemon_no-udev.patch](/uploads/38771c8e43df7224822706aa8e2439e8/jami-daemon_no-udev.patch)https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/378Connectivity speed-up: detect tcp death connection by forcing a keep-alive on...2021-05-06T14:23:28ZSébastien BlinConnectivity speed-up: detect tcp death connection by forcing a keep-alive on a connectivityChange()?Will speed up the tcp death imho. Need to testWill speed up the tcp death imho. Need to testSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/377Swarm: POC - detected problems2021-01-04T18:39:27ZSébastien BlinSwarm: POC - detected problems+ Fast messaging: multiple channels got the same name. For example:
```
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name git://83b8efe4723f10680305db94bcb541fadebd5240/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1...+ Fast messaging: multiple channels got the same name. For example:
```
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name git://83b8efe4723f10680305db94bcb541fadebd5240/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name git://83b8efe4723f10680305db94bcb541fadebd5240/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name git://83b8efe4723f10680305db94bcb541fadebd5240/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name file://10367978848762943917
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name git://83b8efe4723f10680305db94bcb541fadebd5240/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name git://83b8efe4723f10680305db94bcb541fadebd5240/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name git://83b8efe4723f10680305db94bcb541fadebd5240/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828339.889|33053|multiplexed_socket.cpp:551 ] - Channel with name git://83b8efe4723f10680305db94bcb541fadebd5240/30fc5d556dd299d2cdc16fa7d621925a30ffa809
```
Should be unique, there is no reason to get so much time the same channel
+ Sometimes pull seems blocked, to investigate
+ Fast messaging: some clone failures:
```
[1608828673.275|33053|connectionmanager.cpp:387 ] Peer already connected. Add a new channel
[1608828673.392|41548|jamiaccount.cpp :2466 ] [Account 681cc7e42523b44d] New channel asked from 48c2bec426adc0a604f771df7ba324a7730facf3 with name git://48c2bec426adc0a604f771df7ba324a7730facf3/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828673.392|39557|jamiaccount.cpp :2466 ] [Account 681cc7e42523b44d] New channel asked from 48c2bec426adc0a604f771df7ba324a7730facf3 with name git://48c2bec426adc0a604f771df7ba324a7730facf3/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828673.393|38932|jamiaccount.cpp :2466 ] [Account 681cc7e42523b44d] New channel asked from 48c2bec426adc0a604f771df7ba324a7730facf3 with name git://48c2bec426adc0a604f771df7ba324a7730facf3/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828673.393|37630|jamiaccount.cpp :2466 ] [Account 681cc7e42523b44d] New channel asked from 48c2bec426adc0a604f771df7ba324a7730facf3 with name git://48c2bec426adc0a604f771df7ba324a7730facf3/30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828675.393|41548|conversationrepository.cpp:2041 ] Could not fetch remote repository for conversation 30fc5d556dd299d2cdc16fa7d621925a30ffa809: early EOF
[1608828675.393|41548|jamiaccount.cpp :4393 ] [Account 681cc7e42523b44d] Could not fetch new commit from 48c2bec426adc0a604f771df7ba324a7730facf3 for 30fc5d556dd299d2cdc16fa7d621925a30ffa809
[1608828676.393|38939|conversationrepository.cpp:2041 ] Could not fetch remote repository for conversation 30fc5d556dd299d2cdc16fa7d621925a30ffa809: invalid response
[1608828676.393|38939|jamiaccount.cpp :4393 ] [Account 681cc7e42523b44d] Could not fetch new commit from 48c2bec426adc0a604f771df7ba324a7730facf3 for 30fc5d556dd299d2cdc16fa7d621925a30ffa809
```
This early EOF should not be there. To investigateSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/376Conference: participant info takes a few seconds to update when a participant...2021-08-20T18:54:51ZAndreas TraczykConference: participant info takes a few seconds to update when a participant is removedThe body of the video mixer's source-info-update-callback gets queued into the main job queue behind some call destruction tasks and induces incorrect conference participant metadata in the interim.
- Why is call destruction so long?
- ...The body of the video mixer's source-info-update-callback gets queued into the main job queue behind some call destruction tasks and induces incorrect conference participant metadata in the interim.
- Why is call destruction so long?
- Dirty fix: use a thread pool?https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/375Swarm: add conversation removed signal2021-04-19T14:20:34ZSébastien BlinSwarm: add conversation removed signalSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/374swarm: call messages generated twice2020-12-22T20:01:21ZKateryna Kostiukswarm: call messages generated twiceSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/373Swarm: add API to get conversationLastError()2021-04-21T19:13:20ZSébastien BlinSwarm: add API to get conversationLastError()Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/372Screen sharing fail with Hardware Acceleration2021-02-17T19:40:08ZPierre LespagnolScreen sharing fail with Hardware Acceleration[logs.log](/uploads/353e1d23fb3c2001a563bf113a89a18f/logs.log)[logs.log](/uploads/353e1d23fb3c2001a563bf113a89a18f/logs.log)Pierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/371Shoud use device URI instead of account URI for conferenceInfo2022-01-24T16:46:04ZPierre LespagnolShoud use device URI instead of account URI for conferenceInfoPrevent conflicts when using same account with separate devices.Prevent conflicts when using same account with separate devices.Pierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/370The host is unmute when he creates a conference2021-01-19T17:31:41ZPierre LespagnolThe host is unmute when he creates a conferenceThe mute information for the host is not keptThe mute information for the host is not keptPierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/369Swarm: Christmas edition - beta build2021-01-04T20:00:06ZSébastien BlinSwarm: Christmas edition - beta buildIteration 25Sébastien BlinSébastien Blin