jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2023-01-20T17:32:27Zhttps://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_NONEhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/758crash when blocking contact when account is not active2022-09-27T14:21:38ZKateryna Kostiukcrash when blocking contact when account is not activesteps to reproduce
- create a Jami account with contacts
- disable account
- block a contact
- Jami crashed
Reproduced on iOS and macOS qt-client
Additionally, after those steps, iOS crashed every time when trying to enable account.steps to reproduce
- create a Jami account with contacts
- disable account
- block a contact
- Jami crashed
Reproduced on iOS and macOS qt-client
Additionally, after those steps, iOS crashed every time when trying to enable account.Kateryna KostiukKateryna Kostiukhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/756Unable to select a camera capture resolution other than 640x4802022-09-02T17:18:22ZAndreas TraczykUnable to select a camera capture resolution other than 640x480Regardless of the chosen video settings, the format will be 640x480 with the max supported rate for that resolution.
Seen on Windows: Version (BETA): 202208261700Regardless of the chosen video settings, the format will be 640x480 with the max supported rate for that resolution.
Seen on Windows: Version (BETA): 202208261700Andreas TraczykAndreas Traczykhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/755Crash(Windows only?) during video call2023-01-04T19:50:51ZAndreas TraczykCrash(Windows only?) during video callOccasional crashes occur at some point during a video call.
Seen on Windows: Version (BETA): 202208261700
```
> [Inline Frame] yuv2rgb_write(unsigned char *) Line 1644 C
[Inline Frame] yuv2rgb_2_c_template(SwsContext *) Line 1768 C
...Occasional crashes occur at some point during a video call.
Seen on Windows: Version (BETA): 202208261700
```
> [Inline Frame] yuv2rgb_write(unsigned char *) Line 1644 C
[Inline Frame] yuv2rgb_2_c_template(SwsContext *) Line 1768 C
yuv2x2rgb10_2_c(SwsContext * c, const short * * buf, const short * * ubuf, const short * * vbuf, const short * * abuf, unsigned char * dest, int dstW, int yalpha, int uvalpha, int y) Line 1872 C
packed_vscale(SwsContext * c, SwsFilterDescriptor * desc, int sliceY, int sliceH) Line 157 C
swscale(SwsContext * c, const unsigned char * * src, int * srcStride, int srcSliceY, int srcSliceH, unsigned char * * dst, int * dstStride, int dstSliceY, int dstSliceH) Line 501 C
scale_internal(SwsContext * c, const unsigned char * const * srcSlice, const int * srcStride, int srcSliceY, int srcSliceH, unsigned char * const * dstSlice, const int * dstStride, int dstSliceY, int dstSliceH) Line 1046 C
sws_scale(SwsContext * c, const unsigned char * const * srcSlice, const int * srcStride, int srcSliceY, int srcSliceH, unsigned char * const * dst, const int * dstStride) Line 1215 C
jami::video::VideoScaler::scale(const AVFrame * input_frame, AVFrame * output_frame) Line 74 C++
[Inline Frame] jami::video::SinkClient::sendFrameTransformed(AVFrame * frame) Line 365 C++
jami::video::SinkClient::update(jami::Observable<std::shared_ptr<DRing::MediaFrame>> * __formal, const std::shared_ptr<DRing::MediaFrame> & frame_p) Line 464 C++
jami::Observable<std::shared_ptr<DRing::MediaFrame>>::notify(std::shared_ptr<DRing::MediaFrame> data) Line 137 C++
jami::video::VideoGenerator::publishFrame(std::shared_ptr<DRing::VideoFrame> frame) Line 56 C++
[External Code]
[Inline Frame] std::_Func_class<void,std::shared_ptr<DRing::MediaFrame> &&>::operator()(std::shared_ptr<DRing::MediaFrame> &&) Line 968 C++
jami::MediaDecoder::decode(AVPacket & packet) Line 699 C++
[Inline Frame] std::_Func_class<enum jami::DecodeStatus,AVPacket &>::operator()(AVPacket &) Line 968 C++
jami::MediaDemuxer::decode() Line 410 C++
jami::MediaDecoder::decode() Line 714 C++
jami::video::VideoReceiveThread::decodeFrame() Line 206 C++
[Inline Frame] std::_Func_class<void>::operator()() Line 968 C++
jami::ThreadLoop::mainloop(std::thread::id & tid, const std::function<bool __cdecl(void)> setup, const std::function<void __cdecl(void)> process, const std::function<void __cdecl(void)> cleanup) Line 38 C++
[External Code]
```Andreas TraczykAndreas Traczykhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/754Better handling of SyncMsg2022-08-18T19:21:16ZSébastien BlinBetter handling of SyncMsgin the daemon, SyncMsg can be big, for now it's limited to UINT16_MAX bytes, but ideally we want this to be generic.
`SyncModule::Impl::syncInfos` we should write juste enough data in SyncMsg to get the limit and split in multiple messa...in the daemon, SyncMsg can be big, for now it's limited to UINT16_MAX bytes, but ideally we want this to be generic.
`SyncModule::Impl::syncInfos` we should write juste enough data in SyncMsg to get the limit and split in multiple messages if necessaryhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/753daemon-agent: double free2022-10-04T14:52:33ZSébastien Blindaemon-agent: double freeAgent fails since a few days
```
=================================================================
==168118==ERROR: AddressSanitizer: attempting double-free on 0x615000898580 in thread T0:
#0 0x7f6efe80651f in operator delete(void*...Agent fails since a few days
```
=================================================================
==168118==ERROR: AddressSanitizer: attempting double-free on 0x615000898580 in thread T0:
#0 0x7f6efe80651f in operator delete(void*) ../../../../src/libsanitizer/asan/asan_new_delete.cc:165
#1 0x7f6efcb65d2b in __gnu_cxx::new_allocator<std::function<void ()> >::deallocate(std::function<void ()>*, unsigned long) /usr/include/c++/9/ext/new_allocator.h:128
#2 0x7f6efcb65d2b in std::allocator_traits<std::allocator<std::function<void ()> > >::deallocate(std::allocator<std::function<void ()> >&, std::function<void ()>*, unsigned long) /usr/include/c++/9/bits/alloc_traits.h:469
#3 0x7f6efcb65d2b in std::_Deque_base<std::function<void ()>, std::allocator<std::function<void ()> > >::_M_deallocate_node(std::function<void ()>*) /usr/include/c++/9/bits/stl_deque.h:627
#4 0x7f6efcb65d2b in std::_Deque_base<std::function<void ()>, std::allocator<std::function<void ()> > >::_M_destroy_nodes(std::function<void ()>**, std::function<void ()>**) /usr/include/c++/9/bits/stl_deque.h:761
#5 0x7f6efcb65d2b in std::_Deque_base<std::function<void ()>, std::allocator<std::function<void ()> > >::~_Deque_base() /usr/include/c++/9/bits/stl_deque.h:683
#6 0x7f6efcb65d2b in std::deque<std::function<void ()>, std::allocator<std::function<void ()> > >::~deque() /usr/include/c++/9/bits/stl_deque.h:1072
#7 0x7f6efcb65d2b in std::queue<std::function<void ()>, std::deque<std::function<void ()>, std::allocator<std::function<void ()> > > >::~queue() /usr/include/c++/9/bits/stl_queue.h:96
#8 0x7f6efcb65d2b in dht::ThreadPool::stop() /foo/contrib/native/opendht/src/thread_pool.cpp:109
#9 0x7f6efcb65db6 in dht::ThreadPool::join() /foo/contrib/native/opendht/src/thread_pool.cpp:116
#10 0x7f6efbe54ae3 in jami::Manager::finish() /foo/src/manager.cpp:902
#11 0x7f6efbfe6d01 in DRing::fini() /foo/src/ring_api.cpp:99
#12 0x7f6efb01d8a6 (/lib/x86_64-linux-gnu/libc.so.6+0x468a6)
#13 0x7f6efb01da5f in exit (/lib/x86_64-linux-gnu/libc.so.6+0x46a5f)
#14 0x5597e4a2b8aa in c_handler /foo/contrib/native/guile/libguile/continuations.c:441
#15 0x5597e49f757c in catch_post_unwind_handler /foo/contrib/native/guile/libguile/throw.c:118
#16 0x5597e49873e0 in scm_c_with_exception_handler /foo/contrib/native/guile/libguile/exceptions.c:167
#17 0x5597e49f779c in scm_c_catch /foo/contrib/native/guile/libguile/throw.c:168
#18 0x5597e4a2b69b in scm_i_with_continuation_barrier /foo/contrib/native/guile/libguile/continuations.c:368
#19 0x5597e4a2b979 in scm_c_with_continuation_barrier /foo/contrib/native/guile/libguile/continuations.c:464
#20 0x5597e49f53da in with_guile /foo/contrib/native/guile/libguile/threads.c:645
#21 0x7f6efe6484c1 in GC_call_with_stack_base extra/../misc.c:2106
#22 0x5597e49f54d3 in scm_i_with_guile /foo/contrib/native/guile/libguile/threads.c:688
#23 0x5597e49f5517 in scm_with_guile /foo/contrib/native/guile/libguile/threads.c:694
#24 0x5597e48bf474 in main src/main.cpp:94
#25 0x7f6efaffb082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082)
#26 0x5597e48beded in _start (/foo/test/agent/.libs/agent.exe+0xc8ded)
0x615000898580 is located 0 bytes inside of 512-byte region [0x615000898580,0x615000898780)
freed by thread T0 here:
#0 0x7f6efe80651f in operator delete(void*) ../../../../src/libsanitizer/asan/asan_new_delete.cc:165
#1 0x7f6efcb65f94 in __gnu_cxx::new_allocator<std::function<void ()> >::deallocate(std::function<void ()>*, unsigned long) /usr/include/c++/9/ext/new_allocator.h:128
#2 0x7f6efcb65f94 in std::allocator_traits<std::allocator<std::function<void ()> > >::deallocate(std::allocator<std::function<void ()> >&, std::function<void ()>*, unsigned long) /usr/include/c++/9/bits/alloc_traits.h:469
#3 0x7f6efcb65f94 in std::_Deque_base<std::function<void ()>, std::allocator<std::function<void ()> > >::_M_deallocate_node(std::function<void ()>*) /usr/include/c++/9/bits/stl_deque.h:627
#4 0x7f6efcb65f94 in std::_Deque_base<std::function<void ()>, std::allocator<std::function<void ()> > >::_M_destroy_nodes(std::function<void ()>**, std::function<void ()>**) /usr/include/c++/9/bits/stl_deque.h:761
#5 0x7f6efcb65f94 in std::_Deque_base<std::function<void ()>, std::allocator<std::function<void ()> > >::~_Deque_base() /usr/include/c++/9/bits/stl_deque.h:683
#6 0x7f6efcb65f94 in std::deque<std::function<void ()>, std::allocator<std::function<void ()> > >::~deque() /usr/include/c++/9/bits/stl_deque.h:1072
#7 0x7f6efcb65f94 in std::queue<std::function<void ()>, std::deque<std::function<void ()>, std::allocator<std::function<void ()> > > >::~queue() /usr/include/c++/9/bits/stl_queue.h:96
#8 0x7f6efcb65f94 in dht::ThreadPool::~ThreadPool() /foo/contrib/native/opendht/src/thread_pool.cpp:55
#9 0x7f6efb01d8a6 (/lib/x86_64-linux-gnu/libc.so.6+0x468a6)
previously allocated by thread T0 here:
#0 0x7f6efe805587 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cc:104
#1 0x7f6efcb66979 in __gnu_cxx::new_allocator<std::function<void ()> >::allocate(unsigned long, void const*) /usr/include/c++/9/ext/new_allocator.h:114
#2 0x7f6efcb66979 in std::allocator_traits<std::allocator<std::function<void ()> > >::allocate(std::allocator<std::function<void ()> >&, unsigned long) /usr/include/c++/9/bits/alloc_traits.h:443
#3 0x7f6efcb66979 in std::_Deque_base<std::function<void ()>, std::allocator<std::function<void ()> > >::_M_allocate_node() /usr/include/c++/9/bits/stl_deque.h:620
#4 0x7f6efcb66979 in std::_Deque_base<std::function<void ()>, std::allocator<std::function<void ()> > >::_M_create_nodes(std::function<void ()>**, std::function<void ()>**) /usr/include/c++/9/bits/stl_deque.h:745
#5 0x7f6efcb66979 in std::_Deque_base<std::function<void ()>, std::allocator<std::function<void ()> > >::_M_initialize_map(unsigned long) /usr/include/c++/9/bits/stl_deque.h:719
#6 0x7f6efcb65b44 in std::_Deque_base<std::function<void ()>, std::allocator<std::function<void ()> > >::_Deque_base() /usr/include/c++/9/bits/stl_deque.h:510
#7 0x7f6efcb65b44 in std::deque<std::function<void ()>, std::allocator<std::function<void ()> > >::deque() /usr/include/c++/9/bits/stl_deque.h:915
#8 0x7f6efcb65b44 in std::queue<std::function<void ()>, std::deque<std::function<void ()>, std::allocator<std::function<void ()> > > >::queue<std::deque<std::function<void ()>, std::allocator<std::function<void ()> > >, void>() /usr/include/c++/9/bits/stl_queue.h:161
#9 0x7f6efcb65b44 in dht::ThreadPool::stop() /foo/contrib/native/opendht/src/thread_pool.cpp:109
#10 0x7f6efcb65e69 in dht::ThreadPool::join() /foo/contrib/native/opendht/src/thread_pool.cpp:116
#11 0x7f6efcb65e69 in dht::ThreadPool::~ThreadPool() /foo/contrib/native/opendht/src/thread_pool.cpp:57
#12 0x7f6efb01d8a6 (/lib/x86_64-linux-gnu/libc.so.6+0x468a6)
SUMMARY: AddressSanitizer: double-free ../../../../src/libsanitizer/asan/asan_new_delete.cc:165 in operator delete(void*)
==168118==ABORTING
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/752Windows: offer full fps range for video camera2022-12-23T20:29:35ZSébastien BlinWindows: offer full fps range for video cameraEg from https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/747
```
$ ffmpeg -f dshow -list_options true -i video="ManyCam Virtual Webcam"
[dshow @ 000001F46BD265C0] DirectShow video device options (from video devices)
[dsho...Eg from https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/747
```
$ ffmpeg -f dshow -list_options true -i video="ManyCam Virtual Webcam"
[dshow @ 000001F46BD265C0] DirectShow video device options (from video devices)
[dshow @ 000001F46BD265C0] Pin "Capture" (alternative pin name "0")
[dshow @ 000001F46BD265C0] pixel_format=yuyv422 min s=1920x1080 fps=0.015625 max s=1920x1080 fps=60.0002
[dshow @ 000001F46BD265C0] pixel_format=yuyv422 min s=1600x1200 fps=0.015625 max s=1600x1200 fps=60.0002
```
Jami only displays 60fps (max fps). However with some modification we can offer the range 1,5,10,15...60
I think it's not important as anyway the virtual camera will probably be encoded to 60fps by the original app anyway, and codec will already do optimize, so the data reduction will be minor.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/751Green dot should be gone if you remove / block a contact2022-08-14T21:15:36ZElysGreen dot should be gone if you remove / block a contactIf just one Jami user (Device A) removes another Jami user (Device B) no one (and no device?) should be able see the green dot of the removed user
Example:
Alice: Android user; Bob: Windows 10 user
- Just Alice removes Bob
- However -...If just one Jami user (Device A) removes another Jami user (Device B) no one (and no device?) should be able see the green dot of the removed user
Example:
Alice: Android user; Bob: Windows 10 user
- Just Alice removes Bob
- However - Bob can still see the green dot of Alice in his contact list
As soon as Alice and/or Bob re-adds Bob/Alice the green dot should be visible again for all contacts (if no one exits Jami or if all or one peer exit and open Jami again)https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/750Wrong username in contact list after adding an account and import leads to "S...2024-02-09T19:58:29ZElysWrong username in contact list after adding an account and import leads to "Swarm: Is false"?Not sure if you can reproduce but I think these were the steps I reproduced this bug (maybe I need to change my description and the steps later)
- Jami (Windows 10): Click add account
- Jami (Windows 10): I now add my own account (I alr...Not sure if you can reproduce but I think these were the steps I reproduced this bug (maybe I need to change my description and the steps later)
- Jami (Windows 10): Click add account
- Jami (Windows 10): I now add my own account (I already have the same user account on my android device)
- I use the option "Import from another device"
- Now all my contacts from the android device are also transferred except one contact (I have three contacts in this test; My own user account "test1"; another user account"test2"; and a "real" contact)
- However the other user account "test2" does not show up but a version like 7b2d4af12345... ( I didn't check if matches the "test2" account)
- I delete the 7b2d4af12345... contact
- After some time (over 30 seconds or more?) I get an invitation (Windows 10) of the user account "test2" with the "real" name "test2"(but I think also the Android version of Jami sent me an invitation) (Maybe related?: https://git.jami.net/savoirfairelinux/jami-project/-/issues/1449#note_36195 ) so no 7b2d4af12345... etc.
- Even if I accept (just Windows 10 or even both: Android and Windows 10) I just see "You have accepted the conversation request. Waiting until "test2" connects to synchoronize the conversation"
- Now I exit Jami just Windows 10
- Suddenly "test2" is in contact list **but my own account is gone **(just in the contact list of course)
- As soon as I exit Jami (Windows 10) and enter again my own account in the contact list is visible again
So the issues should be at least that I get a 89dfs0if... contact in the contact list instead of a user name and sometimes
Note: Android: I never deleted the "real"contact (just one in past so I get "Swarm: Is true") but my other account "test2" was often deleted and re-added so maybe that's also the issue? (Although I reproduced (another) issue if I use the Windows 10 client)
----
another issue?
In the contact list: my own account "test1" and my other account "test2" show "Swarm: Is false";
However my third contact shows "Swarm: Is true"
This happend after I followed the steps mentioned abovehttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/749Same account: Green dot shows up although there is no second device (contact ...2022-08-05T19:48:48ZElysSame account: Green dot shows up although there is no second device (contact list)Not sure if it's actually a bug but I try to describe
I want to make a call "samerusername"(Windows 10) <-> "samerusername"(Android)
I have my own account in the contact list (both devices)
I just open the Windows 10 client
Althoug m...Not sure if it's actually a bug but I try to describe
I want to make a call "samerusername"(Windows 10) <-> "samerusername"(Android)
I have my own account in the contact list (both devices)
I just open the Windows 10 client
Althoug my second device (Android) did not launch Jami my own account in the contact list has a green dot (not just above)
I think in the past (non-swarm?) my own account in the contact list never showed a green dot if I did not launch Jami on the second device
However: Android: still same issue https://git.jami.net/savoirfairelinux/jami-client-android/-/issues/994https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/748Custom ringtone path not assembled correctly2022-08-05T15:01:32ZPietroCustom ringtone path not assembled correctlyHi again,
I built `jami_20220726.1515.da8d1da.tar.gz` and installed it "locally" with the `python build.py --install` command.
I select a custom ringtone from the QT interface, located here:
```
/home/madre/mucca.opus
```
but the log...Hi again,
I built `jami_20220726.1515.da8d1da.tar.gz` and installed it "locally" with the `python build.py --install` command.
I select a custom ringtone from the QT interface, located here:
```
/home/madre/mucca.opus
```
but the logs report that the file
```
/home/madre/jamibuild/jami-project/install/daemon/share/jami/ringtones//home/madre/mucca.opus
```
is non existent (for obvious reasons, notice the double `//`).
If I manually create the folder shown above and place in there the ringtone everything works as expected.
I guess it's a simple problem with the contruction of the path.Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/747Puiblish new plugins (translated + ffmpeg5)2022-09-09T15:17:00ZSébastien BlinPuiblish new plugins (translated + ffmpeg5)Sébastien BlinAline Gondim SantosSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/746One-sided turn issue2022-08-05T03:09:22ZSébastien BlinOne-sided turn issue# Scenario
(Not on all devices, seems a timing issue)
+ Alice got TURN disabled (ipv4 only, no upnp)
+ Bob got TURN enabled
+ Bob calls TURN
# Expected
+ TURN should be used
# Current result
+ Bob negotiation's failed (normal), but...# Scenario
(Not on all devices, seems a timing issue)
+ Alice got TURN disabled (ipv4 only, no upnp)
+ Bob got TURN enabled
+ Bob calls TURN
# Expected
+ TURN should be used
# Current result
+ Bob negotiation's failed (normal), but he doesn't wait any TURN connection (controlling_passive_timeout)
---
# Second scenario
+ First call fails sometimes
## Observations
+ Peer stop to connect to the TURN server too soon:
```
[1659635463.681|10859|manager.cpp :261 ]13:51:03.681 0x7ff984184290 Check 2: [1] 192.168.49.92:9-->192.252.140.236:19442: connection failed after 8 attempts
[1659635463.681|10859|manager.cpp :261 ]13:51:03.681 0x7ff984184290 Check 2: [1] 192.168.49.92:9-->192.252.140.236:19442: state changed from Pending to Failed
```
However, the peer is only creating the permission one second after:
```
[1659635464.702|23173|manager.cpp :261 ]13:51:04.702 tcprel0x7fa41412a670 .TX 124 bytes STUN message to 192.252.140.236:3478:
--- begin STUN message ---
STUN CreatePermission request
```
Because the first put encrypted on a hash is slower than the othersSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/745Add some unit tests for plugins2022-09-09T12:56:18ZSébastien BlinAdd some unit tests for pluginsAline Gondim SantosAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/744[enhancement] add ringing time before autoreplay2022-08-03T11:55:44ZPietro[enhancement] add ringing time before autoreplayHi there,
thanks for this nice software. I'm currently using it to get in touch with my mom, that can no longer handle the mobile phone.
I activated the autoanswer option and everything works great except for one thing: there is no ring...Hi there,
thanks for this nice software. I'm currently using it to get in touch with my mom, that can no longer handle the mobile phone.
I activated the autoanswer option and everything works great except for one thing: there is no ringing time.
It would be very helpful to have a few seconds of ringtone to notify the recipient of the incoming call.
I achieved this very easily, by just adding some sleep time before the auto-answer:
```
diff --git a/src/manager.cpp b/src/manager.cpp
index 582bbc012..3e436a8e8 100644
--- a/src/manager.cpp
+++ b/src/manager.cpp
@@ -2541,7 +2541,7 @@ Manager::ManagerPimpl::processIncomingCall(const std::string& accountId, Call& i
});
} else if (autoAnswer_ || account->isAutoAnswerEnabled()) {
dht::ThreadPool::io().run(
- [this, incomCall = incomCall.shared_from_this()] { base_.answerCall(*incomCall); });
+ [this, incomCall = incomCall.shared_from_this()] { sleep(9); base_.answerCall(*incomCall); });
} else if (currentCall && currentCall->getCallId() != incomCallId) {
// Test if already calling this person
if (currentCall->getAccountId() == account->getAccountID()
```
Are you interested in this option? I'm not sure I can code it through both the deamon and the gui, but I know C++ and QML so I may just need some directions on the structure of the code.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/743Issue if two peers make a call at the same time (to each other)2023-03-31T15:56:51ZElysIssue if two peers make a call at the same time (to each other)Alice: Android (EMUI 12) 20220615-01
Bob: Windows 10: Jami (beta-)Version 202206231612
Steps to reproduce:
BOTH peers - BOB AND Alice tap the make video call button at the same time to call each other
It does not matter if Bob (the W...Alice: Android (EMUI 12) 20220615-01
Bob: Windows 10: Jami (beta-)Version 202206231612
Steps to reproduce:
BOTH peers - BOB AND Alice tap the make video call button at the same time to call each other
It does not matter if Bob (the Windows 10 user) accepts the call or not - Alice will always get the call
However:
Bob will never receive the call (the call fails)
Alice now makes a video call (Alice -> Bob) - although Bob never received the call
Maybe the developers can also try out the following scenarios:
- One peer makes an audio call the other peer makes a video call AT THE SAME TIME ("username1" <-> "username2")
- other OS: for example Windows 10 <-> Windows 10; or Android <-> Android, or Ubuntu >-> Windows 10 etc.
- "sameusername" <-> "sameusername"
- "username1" <-> "username2"
- and other situationsSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/742Jami nightly 20220705.1215 does not open. "Erreur de segmentation".2023-03-24T17:13:13ZFrancewhoaJami nightly 20220705.1215 does not open. "Erreur de segmentation".**Summary**
Using Jami for Linux, using GNOME, Jami does not open.
or
Using Jami for Linux, using Terminal/Console to open Jami, Terminal display this error message : `Erreur de segmentation`
**Steps to Reproduce**
1. Using Debian ...**Summary**
Using Jami for Linux, using GNOME, Jami does not open.
or
Using Jami for Linux, using Terminal/Console to open Jami, Terminal display this error message : `Erreur de segmentation`
**Steps to Reproduce**
1. Using Debian 10 Buster, using Jami's `nightly` repository at https://dl.jami.net install the package `jami` and all its packages decencies. Double check that you installed the Jami version **before** `20220705.1215.0da2583~dfsg1-1`.
1. Reboot device
1. Using Debian 10 Buster, using GNOME, open Jami. Jami does open and works very well.
1. Still using Debian 10 Buster, using Terminal, execute those 2 command lines to update all packages:
`sudo aptitude update`
`sudo aptitude safe-upgrade`
1. Terminal log extracts:
```
Résolution des dépendances…
Les paquets suivants seront ENLEVÉS :
jami-libclient{u} linux-headers-4.19.0-20-common{u}
Les paquets suivants seront mis à jour :
```
```
Préparation du dépaquetage de .../jami_20220705.1215.0da2583~dfsg1-1_amd64.deb ...
Dépaquetage de jami (20220705.1215.0da2583~dfsg1-1) sur (20220516.0214.9b42ad3~dfsg1-1) ...
Préparation du dépaquetage de .../jami-daemon_20220705.1215.0da2583~dfsg1-1_amd64.deb ...
Dépaquetage de jami-daemon (20220705.1215.0da2583~dfsg1-1) sur (20220516.0214.9b42ad3~dfsg1-1) ...
Préparation du dépaquetage de .../libqt-jami_6.2.3-2_amd64.deb ...
Dépaquetage de libqt-jami (6.2.3-2) sur (6.2.3-1) ...
```
```
Paramétrage de jami-daemon (20220705.1215.0da2583~dfsg1-1) ...
```
```
Paramétrage de libqt-jami (6.2.3-2) ...
```
```
Paramétrage de jami (20220705.1215.0da2583~dfsg1-1) ...
```
6. Jami is now updated to version "20220705.1215.0da2583~dfsg1-1"
1. Using Debian, using GNOME, open Jami. Jami does not open. This is the 1st challenge.
1. Using Debian, using GNOME, using Terminal, execute this command to open Jami:
`jami`
1. Terminal display this error message `Erreur de segmentation` on the last line. This is the 2nd challenge:
```
Warning: Ignoring WAYLAND_DISPLAY on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Using Qt runtime version: 6.2.3
"notify server name: gnome-shell, vendor: GNOME, version: 3.30.2, spec: 1.2"
qt.webenginecontext:
GLImplementation: desktop
Surface Type: OpenGL
Surface Profile: NoProfile
Surface Version: 3.1
Using Default SG Backend: yes
Using Software Dynamic GL: no
Using Angle: no
Init Parameters:
* application-name Jami
* browser-subprocess-path /usr/lib/libqt-jami/libexec/QtWebEngineProcess
* disable-features DnsOverHttpsUpgrade,ConsolidatedMovementXY,InstalledApp,BackgroundFetch,WebOTP,WebPayments,WebUSB,PictureInPicture
* disable-setuid-sandbox
* disable-speech-api
* disable-web-security
* enable-features NetworkServiceInProcess,TracingServiceInProcess
* enable-main-frame-before-activation
* enable-threaded-compositing
* gpu-preferences UAAAAAAAAAAoAAAQAAAAAAAAAAAAAAAAAABgAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAA=
* in-process-gpu
* lang fr-CA
* num-raster-threads 4
* single-process
* use-gl desktop
"Using locale: fr_CA"
11:27:49.693 os_core_unix.c !pjlib 2.11 for POSIX initialized
Daemon is running
Erreur de segmentation
```
9. The needed end result is that using GNOME, Jami opens. Or using Terminal, Jami opens without error message in Terminal
**Using**
- jami repository configuration: `deb [signed-by=/usr/share/keyrings/jami-archive-keyring.gpg] https://dl.jami.net/nightly/debian_10/ jami main`
- jami version 20220705.1215.0da2583~dfsg1-1
- jami-daemon 20220705.1215.0da2583~dfsg1-1
- libqt-jami 6.2.3-2
- Debian 10 Buster
- Linux Kernel "5.10.103-1~bpo10+1 (2022-03-08) x86_64 GNU/Linux" or Linux Kernel "4.19.249-2 (2022-06-30) x86_64 GNU/Linux". Same error message with both Kernel versions. Related [comment #36454](https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/742#note_36454).
- GNOME 3.30.2
- Display by Wayland
- All of the above is 64 bitshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/740Build fail: issue with ice_transport.cpp2022-06-22T20:31:46ZEnricoBuild fail: issue with ice_transport.cppI attempted to build jami-daemon on openSUSE Tumbleweed.
The project repository can be found here: https://build.opensuse.org/package/show/home:iDesmI:jami/jami-daemon
I'll attach the build log:
[_log-jami-daemon.txt](/uploads/fd190a2639...I attempted to build jami-daemon on openSUSE Tumbleweed.
The project repository can be found here: https://build.opensuse.org/package/show/home:iDesmI:jami/jami-daemon
I'll attach the build log:
[_log-jami-daemon.txt](/uploads/fd190a263971d22ceb9b40aa2f3f3a13/_log-jami-daemon.txt)
There seems to be a problem in compiling ice_transport.cpphttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/738Swarm: infinite loading loop and incorrect merge check2022-06-27T19:40:37ZSébastien BlinSwarm: infinite loading loop and incorrect merge check# Scenario
+ Migrate an account
+ Do a merge commit right after this
# Expected
The repository should have correct informations
# Current result
The repository is malformed and causes infinite loading messages loop
# Detected probl...# Scenario
+ Migrate an account
+ Do a merge commit right after this
# Expected
The repository should have correct informations
# Current result
The repository is malformed and causes infinite loading messages loop
# Detected problems
+ LRC should not call loadingMessages in loop in case of an error
+ we should check the author of the merge commit
+ we should never create a merge commit after a migration without adding the certificateSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/737Broken connectivity on Arch Linux2022-06-01T18:48:07ZVladimir StoiakinBroken connectivity on Arch LinuxWhenever I try to make a video call it fails after "Search..." phase.
The callee is marked with a green dot correctly.
Text messages also do not reach the callee.
<details><summary>The excerpt from the log</summary>
```
[1653846676...Whenever I try to make a video call it fails after "Search..." phase.
The callee is marked with a green dot correctly.
Text messages also do not reach the callee.
<details><summary>The excerpt from the log</summary>
```
[1653846676.299| 9353|sipcall.cpp :134 ] [call:4013872961000470] Create a new [OUTGOING] SIP call with 2 media
[1653846676.300| 9353|audio_rtp_session.cpp:56 ] Created Audio RTP session: 0x5632448c0350 - call Id 4013872961000470
[1653846676.300| 9353|ringbuffer.cpp :55 ] Create new RingBuffer 4013872961000470
[1653846676.300| 9353|sipcall.cpp :1903 ] [call:4013872961000470] Added media @0: type [AUDIO] enabled [YES] muted [NO] label [audio_0] source [camera://Micron_Built-in_iSight] src type [CAPTURE_DEVICE] secure [YES]
[1653846676.300| 9353|video_rtp_session.cpp:70 ] [0x5632448c09b0] Video RTP session created for call 4013872961000470
[1653846676.300| 9353|sipcall.cpp :1903 ] [call:4013872961000470] Added media @1: type [VIDEO] enabled [YES] muted [NO] label [video_0] source [camera://Micron_Built-in_iSight] src type [CAPTURE_DEVICE] secure [YES]
[1653846676.300| 9353|sipcall.cpp :1909 ] [call:4013872961000470] Created 2 Media streams
[1653846676.300| 9353|ice_transport.cpp :311 ] [ice:0x563244f9ffc0] Creating IceTransport session for "4013872961000470"
[1653846676.300| 9353|sipcall.cpp :3102 ] [call:4013872961000470] Successfully created media ICE transport [ice:0x563243972230]
[1653846676.300| 9353|sipcall.cpp :3263 ] [call:4013872961000470] Setting ICE session [0x563243972230]
[1653846676.300| 9353|jamiaccount.cpp :458 ] [Account 503280347b0c15bf] Calling DHT peer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[1653846676.300| 9353|contact_list.cpp :68 ] Can't set certificate status for existing contacts xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[1653846676.300| 9353|call.cpp :239 ] [call:4013872961000470] state change 0/0, cnx 0/1, code 0
[1653846676.301| 9403|jamiaccount.cpp :3440 ] [Account 503280347b0c15bf] Store DHT public IPv6 address : [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]
[1653846676.301| 9403|jamiaccount.cpp :3429 ] [Account 503280347b0c15bf] Store DHT public IPv4 address : xxx.xxx.xxx.xxx
[1653846676.301| 9403|sipcall.cpp :3124 ] [call:4013872961000470] Init media ICE transport
[1653846676.301| 9403|ice_transport.cpp :385 ] [ice:0x563244f9ffc0] Initializing the session - comp count 4 - as a master
[1653846676.301| 9403|ice_transport.cpp :426 ] [ice:0x563244f9ffc0] Add host candidates
[1653846676.301| 9403|ice_transport.cpp :908 ] [ice:0x563244f9ffc0] added host stun config for UDP transport
[1653846676.301| 9403|ice_transport.cpp :908 ] [ice:0x563244f9ffc0] added host stun config for UDP transport
[1653846676.302| 9403|ice_transport.cpp :908 ] [ice:0x563244f9ffc0] added host stun config for UDP transport
[1653846676.302| 9403|ice_transport.cpp :987 ] [ice:0x563244f9ffc0] Add srflx reflexive candidates [xxx.xxx.xxx.xxx:23880 : xxx.xxx.xxx.xxx:23880] for comp 1
[1653846676.302| 9403|ice_transport.cpp :987 ] [ice:0x563244f9ffc0] Add srflx reflexive candidates [xxx.xxx.xxx.xxx:21023 : xxx.xxx.xxx.xxx:21023] for comp 2
[1653846676.302| 9403|ice_transport.cpp :987 ] [ice:0x563244f9ffc0] Add srflx reflexive candidates [xxx.xxx.xxx.xxx:22157 : xxx.xxx.xxx.xxx:22157] for comp 3
[1653846676.302| 9403|ice_transport.cpp :987 ] [ice:0x563244f9ffc0] Add srflx reflexive candidates [xxx.xxx.xxx.xxx:22635 : xxx.xxx.xxx.xxx:22635] for comp 4
[1653846676.302| 9403|ice_transport.cpp :448 ] [ice:0x563244f9ffc0] Added generic srflx candidates:
[1653846676.302| 9403|ice_transport.cpp :298 ] [ice (UDP)] added turn server 'xxx.xxx.xxx.xxx', port 3478
[1653846676.323| 9353|sipcall.cpp :134 ] [call:700765802007248] Create a new [OUTGOING] SIP call with 2 media
[1653846676.324| 9353|audio_rtp_session.cpp:56 ] Created Audio RTP session: 0x5632450587b0 - call Id 700765802007248
[1653846676.324| 9353|ringbuffer.cpp :55 ] Create new RingBuffer 700765802007248
[1653846676.324| 9353|sipcall.cpp :1903 ] [call:700765802007248] Added media @0: type [AUDIO] enabled [YES] muted [NO] label [audio_0] source [camera://Micron_Built-in_iSight] src type [CAPTURE_DEVICE] secure [YES]
[1653846676.325| 9353|video_rtp_session.cpp:70 ] [0x56324506f280] Video RTP session created for call 700765802007248
[1653846676.325| 9353|sipcall.cpp :1903 ] [call:700765802007248] Added media @1: type [VIDEO] enabled [YES] muted [NO] label [video_0] source [camera://Micron_Built-in_iSight] src type [CAPTURE_DEVICE] secure [YES]
[1653846676.325| 9353|sipcall.cpp :1909 ] [call:700765802007248] Created 2 Media streams
[1653846676.326| 9353|call.cpp :451 ] [call:4013872961000470] add subcall 700765802007248
[1653846676.326| 9353|sipcall.cpp :3263 ] [call:700765802007248] Setting ICE session [0x563243972230]
[1653846676.327| 9353|manager.cpp :600 ] ----- Switch current call id to '4013872961000470' -----
[1653846676.332| 9403|sipcall.cpp :134 ] [call:2321592708100061] Create a new [OUTGOING] SIP call with 2 media
[1653846676.336| 9403|audio_rtp_session.cpp:56 ] Created Audio RTP session: 0x7f7a90566c20 - call Id 2321592708100061
[1653846676.336| 9403|ringbuffer.cpp :55 ] Create new RingBuffer 2321592708100061
[1653846676.336| 9403|sipcall.cpp :1903 ] [call:2321592708100061] Added media @0: type [AUDIO] enabled [YES] muted [NO] label [audio_0] source [camera://Micron_Built-in_iSight] src type [CAPTURE_DEVICE] secure [YES]
[1653846676.336| 9403|video_rtp_session.cpp:70 ] [0x7f7a905827b0] Video RTP session created for call 2321592708100061
[1653846676.336| 9403|sipcall.cpp :1903 ] [call:2321592708100061] Added media @1: type [VIDEO] enabled [YES] muted [NO] label [video_0] source [camera://Micron_Built-in_iSight] src type [CAPTURE_DEVICE] secure [YES]
[1653846676.340| 9403|sipcall.cpp :1909 ] [call:2321592708100061] Created 2 Media streams
[1653846676.342| 9403|call.cpp :239 ] [call:2321592708100061] state change 0/0, cnx 0/1, code 0
[1653846676.344| 9403|call.cpp :451 ] [call:4013872961000470] add subcall 2321592708100061
[1653846676.348| 9403|sipcall.cpp :3263 ] [call:2321592708100061] Setting ICE session [0x563243972230]
[1653846676.350| 9403|jamiaccount.cpp :576 ] [call 4013872961000470] No channeled socket with this peer. Send request
[1653846676.351| 9403|jamiaccount.cpp :3867 ] [Account 503280347b0c15bf] Request SIP connection to peer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx on device xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[1653846676.351| 9403|jamiaccount.cpp :3890 ] [Account 503280347b0c15bf] Already connecting to xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[1653846676.354| 9403|account_manager.cpp:669 ] Found 1 devices
[1653846676.400| 9433|ice_transport.cpp :687 ] [ice:0x563244f9ffc0] UDP initialization success
[1653846676.402| 9433|ice_transport.cpp :752 ] [ice:0x563244f9ffc0] as master
[1653846676.403| 9433|ice_transport.cpp :883 ] [ice:0x563244f9ffc0] (local) ufrag=3e0b867d, pwd=486809bb7f95927e18d2aac5
[1653846688.110| 9405|connectionmanager.cpp:334 ] no response from DHT to E2E request.
[1653846688.110| 9405|ice_transport.cpp :316 ] [ice:0x7f7a902a4ee0] destroying 0x7f7a902aeac8
[1653846688.611| 9405|ice_transport.cpp :331 ] [ice:0x7f7a902a4ee0] Destroying ice_strans 0x7f7a902aeac8
[1653846689.112| 9405|ice_transport.cpp :649 ] [ice:0x7f7a902a4ee0] Timer heap flushed after 500 ms
[1653846689.112| 9405|ice_transport.cpp :363 ] [ice:0x7f7a902a4ee0] done destroying
[1653846689.112| 9405|call.cpp :239 ] [call:2321592708100061] state change 0/5, cnx 1/0, code 0
[1653846689.112| 9405|call.cpp :239 ] [call:700765802007248] state change 0/5, cnx 0/0, code 6
[1653846689.112| 9387|call.cpp :521 ] [call:4013872961000470] subcall 2321592708100061 failed
[1653846689.112| 9387|call.cpp :546 ] [call:4013872961000470] remains 1 subcall(s)
[1653846689.112| 9387|manager.cpp :2007 ] [call:2321592708100061] Sub-call failed
[1653846689.112| 9387|manager.cpp :1642 ] [call:2321592708100061] Remove local audio
[1653846689.112| 9387|ringbufferpool.cpp:262 ] Unbind call 2321592708100061 from all bound calls
[1653846689.113| 9387|sipcall.cpp :1507 ] [call:2321592708100061] removeCall()
[1653846689.113| 9387|call_factory.cpp :72 ] Removing call 2321592708100061
[1653846689.113| 9387|call_factory.cpp :75 ] Remaining 2 call
[1653846689.113| 9387|call.cpp :239 ] [call:2321592708100061] state change 5/6, cnx 0/0, code 0
[1653846689.113| 9387|audio_rtp_session.cpp:218 ] [0x7f7a90566c20] Stopping receiver
[1653846689.113| 9387|audio_rtp_session.cpp:65 ] Destroyed Audio RTP session: 0x7f7a90566c20 - call Id 2321592708100061
[1653846689.113| 9387|ringbuffer.cpp :60 ] Destroy RingBuffer 2321592708100061
[1653846689.113| 9387|video_rtp_session.cpp:222 ] [0x7f7a905827b0] Stop video RTP sender: input [] - muted [NO]
[1653846689.113| 9387|video_rtp_session.cpp:286 ] [0x7f7a905827b0] Stopping receiver
[1653846689.113| 9387|video_rtp_session.cpp:76 ] [0x7f7a905827b0] Video RTP session destroyed
[1653846689.113| 9387|call.cpp :521 ] [call:4013872961000470] subcall 700765802007248 failed
[1653846689.113| 9387|call.cpp :239 ] [call:4013872961000470] state change 0/5, cnx 1/0, code 5
[1653846689.113| 9387|call.cpp :273 ] [call:4013872961000470] emit client call state change FAILURE, code 5
[1653846689.113| 9387|sipcall.cpp :1507 ] [call:4013872961000470] removeCall()
[1653846689.113| 9387|call_factory.cpp :72 ] Removing call 4013872961000470
[1653846689.113| 9387|call_factory.cpp :75 ] Remaining 1 call
[1653846689.113| 9387|call.cpp :239 ] [call:4013872961000470] state change 5/6, cnx 0/0, code 0
[1653846689.113| 9387|sipcall.cpp :3015 ] - Call 4013872961000470 with xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@ring.dht:
[1653846689.113| 9387|sipcall.cpp :3016 ] - Duration: 0 us
[1653846689.113| 9387|sipcall.cpp :3018 ] - Media: type [AUDIO] enabled [YES] muted [NO] label [audio_0] source [camera://Micron_Built-in_iSight] src type [CAPTURE_DEVICE] secure [YES]
[1653846689.113| 9387|sipcall.cpp :3018 ] - Media: type [VIDEO] enabled [YES] muted [NO] label [video_0] source [camera://Micron_Built-in_iSight] src type [CAPTURE_DEVICE] secure [YES]
[1653846689.113| 9387|call.cpp :273 ] [call:4013872961000470] emit client call state change OVER, code 0
[1653846689.114| 9387|manager.cpp :2007 ] [call:700765802007248] Sub-call failed
[1653846689.114| 9387|manager.cpp :1642 ] [call:700765802007248] Remove local audio
[1653846689.114| 9387|ringbufferpool.cpp:262 ] Unbind call 700765802007248 from all bound calls
[1653846689.114| 9387|sipcall.cpp :1507 ] [call:700765802007248] removeCall()
[1653846689.114| 9387|call_factory.cpp :72 ] Removing call 700765802007248
[1653846689.114| 9387|call_factory.cpp :75 ] Remaining 0 call
[1653846689.114| 9387|call.cpp :239 ] [call:700765802007248] state change 5/6, cnx 0/0, code 0
[1653846689.114| 9387|audio_rtp_session.cpp:218 ] [0x5632450587b0] Stopping receiver
[1653846689.114| 9387|audio_rtp_session.cpp:65 ] Destroyed Audio RTP session: 0x5632450587b0 - call Id 700765802007248
[1653846689.114| 9387|ringbuffer.cpp :60 ] Destroy RingBuffer 700765802007248
[1653846689.114| 9387|video_rtp_session.cpp:222 ] [0x56324506f280] Stop video RTP sender: input [] - muted [NO]
[1653846689.114| 9387|video_rtp_session.cpp:286 ] [0x56324506f280] Stopping receiver
[1653846689.114| 9387|video_rtp_session.cpp:76 ] [0x56324506f280] Video RTP session destroyed
[1653846689.114| 9387|audio_rtp_session.cpp:218 ] [0x5632448c0350] Stopping receiver
[1653846689.114| 9387|audio_rtp_session.cpp:65 ] Destroyed Audio RTP session: 0x5632448c0350 - call Id 4013872961000470
[1653846689.114| 9387|ringbuffer.cpp :60 ] Destroy RingBuffer 4013872961000470
[1653846689.114| 9387|video_rtp_session.cpp:222 ] [0x5632448c09b0] Stop video RTP sender: input [] - muted [NO]
[1653846689.114| 9387|video_rtp_session.cpp:286 ] [0x5632448c09b0] Stopping receiver
[1653846689.114| 9387|video_rtp_session.cpp:76 ] [0x5632448c09b0] Video RTP session destroyed
[1653846689.115| 9405|ice_transport.cpp :316 ] [ice:0x563244f9ffc0] destroying 0x7f7a90404e18
```
</details>
Seems connected with a recent update of opendht to 2.4.4.