savoirfairelinux issueshttps://git.jami.net/groups/savoirfairelinux/-/issues2024-01-09T17:48:34Zhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1465Swarm-history: Use history loaded by daemon2024-01-09T17:48:34ZSébastien BlinSwarm-history: Use history loaded by daemonhttps://review.jami.net/q/topic:swarm-history
# TODO
+ Use `loadConversation` instead of `loadConversationMessages`
+ Use `SwarmLoaded` instead of `conversationLoaded`
+ This gives the following structure:
```
struct SwarmMessage
{
...https://review.jami.net/q/topic:swarm-history
# TODO
+ Use `loadConversation` instead of `loadConversationMessages`
+ Use `SwarmLoaded` instead of `conversationLoaded`
+ This gives the following structure:
```
struct SwarmMessage
{
std::string id;
std::string type;
std::string linearizedParent;
std::map<std::string, std::string> body;
std::vector<std::map<std::string, std::string>> reactions;
std::vector<std::map<std::string, std::string>> editions;
};
```
Containing the reactions, editions (previous bodies) directly inside the message
+ Remove custom logic to linearize the history, filter merge messages (they are removed by the daemon), build reaction/editions
+ Use new signals `SwarmMessageReceived`, `SwarmMessageUpdated` (if edited, deleted or parent changes), `ReactionAdded`, `ReactionRemoved` to update the view/reactionsSébastien BlinAndreas TraczykSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-client-ios/-/issues/311Swarm-history: Use history loaded by daemon2024-01-29T19:26:40ZSébastien BlinSwarm-history: Use history loaded by daemonhttps://review.jami.net/q/topic:swarm-history
# TODO
+ Use `loadConversation` instead of `loadConversationMessages`
+ Use `SwarmLoaded` instead of `conversationLoaded`
+ This gives the following structure:
```
struct SwarmMessage
{
...https://review.jami.net/q/topic:swarm-history
# TODO
+ Use `loadConversation` instead of `loadConversationMessages`
+ Use `SwarmLoaded` instead of `conversationLoaded`
+ This gives the following structure:
```
struct SwarmMessage
{
std::string id;
std::string type;
std::string linearizedParent;
std::map<std::string, std::string> body;
std::vector<std::map<std::string, std::string>> reactions;
std::vector<std::map<std::string, std::string>> editions;
};
```
Containing the reactions, editions (previous bodies) directly inside the message
+ Remove custom logic to linearize the history, filter merge messages (they are removed by the daemon), build reaction/editions
+ Use new signals `SwarmMessageReceived`, `SwarmMessageUpdated` (if edited, deleted or parent changes), `ReactionAdded`, `ReactionRemoved` to update the view/reactionshttps://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1494Swarm-history: Use history loaded by daemon2024-01-25T19:45:27ZSébastien BlinSwarm-history: Use history loaded by daemonhttps://review.jami.net/q/topic:swarm-history
# TODO
+ Use `loadConversation` instead of `loadConversationMessages`
+ Use `SwarmLoaded` instead of `conversationLoaded`
+ This gives the following structure:
```
struct SwarmMessage
{
...https://review.jami.net/q/topic:swarm-history
# TODO
+ Use `loadConversation` instead of `loadConversationMessages`
+ Use `SwarmLoaded` instead of `conversationLoaded`
+ This gives the following structure:
```
struct SwarmMessage
{
std::string id;
std::string type;
std::string linearizedParent;
std::map<std::string, std::string> body;
std::vector<std::map<std::string, std::string>> reactions;
std::vector<std::map<std::string, std::string>> editions;
};
```
Containing the reactions, editions (previous bodies) directly inside the message
+ Remove custom logic to linearize the history, filter merge messages (they are removed by the daemon), build reaction/editions
+ Use new signals `SwarmMessageReceived`, `SwarmMessageUpdated` (if edited, deleted or parent changes), `ReactionAdded`, `ReactionRemoved` to update the view/reactionsAlexander Lussier-CullenAlexander Lussier-Cullenhttps://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1491ResourcesCompat logs some warnings2024-01-26T13:48:29ZPierre NicolasResourcesCompat logs some warningsFailed to inflate ColorStateList, leaving it to the framework
at cx.ring.databinding.FragConversationBinding.inflate(FragConversationBinding.java:234)
[log_error](/uploads/dc94463840d9eb9390e208748f3b5618/log_error)Failed to inflate ColorStateList, leaving it to the framework
at cx.ring.databinding.FragConversationBinding.inflate(FragConversationBinding.java:234)
[log_error](/uploads/dc94463840d9eb9390e208748f3b5618/log_error)Pierre NicolasPierre Nicolashttps://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1490Wrong alignment of deleted a message with other messages2024-01-26T13:47:39ZEmma FalkiewitzWrong alignment of deleted a message with other messages**This bug happens on new chatview development branch.**
The avatar is certainly put to gone but it should be invisible or visible in swarm conversation.
![image](/uploads/f70c86ef47a04a24eb30476628f1e1c6/image.png)**This bug happens on new chatview development branch.**
The avatar is certainly put to gone but it should be invisible or visible in swarm conversation.
![image](/uploads/f70c86ef47a04a24eb30476628f1e1c6/image.png)https://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1489New deleted message layout2024-02-07T22:05:14ZEmma FalkiewitzNew deleted message layoutCurrently we have:
![image](/uploads/203bcb5195b5cb0b53f10da4b29a3705/image.png)
We want:
![image](/uploads/d43f2b0ecd58be21f07bf0c6d08cc7de/image.png)
![image](/uploads/47aade0e8cf9d6bebf638379c543dd8b/image.png)Currently we have:
![image](/uploads/203bcb5195b5cb0b53f10da4b29a3705/image.png)
We want:
![image](/uploads/d43f2b0ecd58be21f07bf0c6d08cc7de/image.png)
![image](/uploads/47aade0e8cf9d6bebf638379c543dd8b/image.png)https://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1488File alignment is not correct in one-to-one conversation2024-01-31T21:59:36ZEmma FalkiewitzFile alignment is not correct in one-to-one conversation**This bug happens on new chatview development branch.**
It does not work in one-to-one conversation.
![Screenshot_20231219-170617_Jami](/uploads/41a0cf8efa7c58e4148f5a86616f5f54/Screenshot_20231219-170617_Jami.jpg)**This bug happens on new chatview development branch.**
It does not work in one-to-one conversation.
![Screenshot_20231219-170617_Jami](/uploads/41a0cf8efa7c58e4148f5a86616f5f54/Screenshot_20231219-170617_Jami.jpg)https://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1486Typing indicator alignment is not good2024-01-31T22:00:20ZEmma FalkiewitzTyping indicator alignment is not good**This bug happens on new chatview development branch.**
The problem is just not fixed entirely.
Group is correct :
![image](/uploads/6883d8826d4768896f88758236e07f49/image.png)
But one to one conversation no:
![image](/uploads/5bee...**This bug happens on new chatview development branch.**
The problem is just not fixed entirely.
Group is correct :
![image](/uploads/6883d8826d4768896f88758236e07f49/image.png)
But one to one conversation no:
![image](/uploads/5bee94e2d5a91f74f890cb1e14c37dee/image.png)https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/929Need some help with videoWriter in debug_utils.h2023-12-19T22:55:35ZJingwei ZhangNeed some help with videoWriter in debug_utils.hJust need a exampke of how to dump the decoded video in jami daemon. the generated docuements are not helping at all.
Thanks a lotJust need a exampke of how to dump the decoded video in jami daemon. the generated docuements are not helping at all.
Thanks a lothttps://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1485Magnetization between call and messages is not working well2024-01-31T21:12:48ZEmma FalkiewitzMagnetization between call and messages is not working well**This bug happens on new chatview development branch.**
![Screenshot_20231219-144126](/uploads/6d40ab592d6868d7d757602b90066b72/Screenshot_20231219-144126.png)**This bug happens on new chatview development branch.**
![Screenshot_20231219-144126](/uploads/6d40ab592d6868d7d757602b90066b72/Screenshot_20231219-144126.png)https://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1484Deleted a message background is not well recycled2024-01-30T21:24:42ZEmma FalkiewitzDeleted a message background is not well recycledThis bug happens on new chatview development branch.
The background is not set if it's an incoming deleted message.This bug happens on new chatview development branch.
The background is not set if it's an incoming deleted message.Emma FalkiewitzEmma Falkiewitzhttps://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1483Magnetization deleted a message is not working2024-01-31T21:13:47ZEmma FalkiewitzMagnetization deleted a message is not working**This bug happens on new chatview development branch.**
## Additional information
The magnetization is not set for deleted messages.
![image](/uploads/034e90e30ef2ab46b98cbab78fefc4f3/image.png)
![image](/uploads/af793ec26e7b4e8d8b10...**This bug happens on new chatview development branch.**
## Additional information
The magnetization is not set for deleted messages.
![image](/uploads/034e90e30ef2ab46b98cbab78fefc4f3/image.png)
![image](/uploads/af793ec26e7b4e8d8b10cbb6ff34d490/image.png)Emma FalkiewitzEmma Falkiewitzhttps://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1482Chat bubble background color is not well recycled2024-01-31T21:12:16ZEmma FalkiewitzChat bubble background color is not well recycled**This bug happens on new chatview development branch.**
Problem detected in deleted message (see in code).
Search for another problems elsewhere also.
![Screenshot_20231219-170541_Jami](/uploads/209857a54498d39603edd769571ed262/Screen...**This bug happens on new chatview development branch.**
Problem detected in deleted message (see in code).
Search for another problems elsewhere also.
![Screenshot_20231219-170541_Jami](/uploads/209857a54498d39603edd769571ed262/Screenshot_20231219-170541_Jami.jpg)
![Screenshot_20231219-170643_Jami](/uploads/c308639fa131d28582b0a7701e792ce3/Screenshot_20231219-170643_Jami.jpg)Emma FalkiewitzEmma Falkiewitzhttps://git.jami.net/savoirfairelinux/jami-jams/-/issues/134Improve JenkinsFile config CI pipeline2024-01-08T14:19:11ZHervé BassinotImprove JenkinsFile config CI pipelinehttps://git.jami.net/savoirfairelinux/jami-client-ios/-/issues/310add option to reply to message2024-01-29T19:26:58ZKateryna Kostiukadd option to reply to messageKateryna KostiukKateryna Kostiukhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1461Outgoing emoji: when the message is only an emoji it should be aligned to the...2023-12-20T12:46:29ZCapucine BerthetOutgoing emoji: when the message is only an emoji it should be aligned to the right![Capture_d_écran_du_2023-12-19_09-45-57](/uploads/e579f5e30a3f87e82e46c6352dcbbff2/Capture_d_écran_du_2023-12-19_09-45-57.png)![Capture_d_écran_du_2023-12-19_09-45-57](/uploads/e579f5e30a3f87e82e46c6352dcbbff2/Capture_d_écran_du_2023-12-19_09-45-57.png)Capucine BerthetCapucine Berthethttps://git.jami.net/savoirfairelinux/jami-client-ios/-/issues/309ringtone continue playing after call canceled2023-12-18T16:30:22ZKateryna Kostiukringtone continue playing after call canceledIt was reproduced for call from qt-client on macOS to iPhone. Call between two qt-client works as expected.
steps to reproduce:
- place a call from qt-client on macOS to iPhone
- decline call on iPhone
- ringtone continue playing on ...It was reproduced for call from qt-client on macOS to iPhone. Call between two qt-client works as expected.
steps to reproduce:
- place a call from qt-client on macOS to iPhone
- decline call on iPhone
- ringtone continue playing on macOSKateryna KostiukKateryna Kostiukhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/928heap-use-after-free in turn_sock (TCP)2024-01-09T16:26:58ZSébastien Blinheap-use-after-free in turn_sock (TCP)### Describe the bug
No precise scenario, but ASAN crash detected randomly:
```
=================================================================
==15049==ERROR: AddressSanitizer: heap-use-after-free on address 0x0002b00b5648 at pc 0x0...### Describe the bug
No precise scenario, but ASAN crash detected randomly:
```
=================================================================
==15049==ERROR: AddressSanitizer: heap-use-after-free on address 0x0002b00b5648 at pc 0x0001056f5610 bp 0x00029dd327b0 sp 0x00029dd327a8
#0 0x1056f560c in stun_on_request_complete+0xc8c (Jami:arm64+0x102a8560c)
#1 0x1056ea7f4 in stun_tsx_on_complete+0x2a8 (Jami:arm64+0x102a7a7f4)
#2 0x1056f2498 in retransmit_timer_callback+0x12c (Jami:arm64+0x102a82498)
#3 0x105685fec in pj_timer_heap_poll+0x468 (Jami:arm64+0x102a15fec)
#4 0x104a4acbc in dhtnet::IceTransport::Impl::handleEvents(unsigned int)+0x110 (Jami:arm64+0x101ddacbc)
#5 0x104a65a5c in void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, dhtnet::IceTransport::Impl::initIceInstance(dhtnet::IceTransportOptions const&)::$_6>>(void*)+0x154 (Jami:arm64+0x101df5a5c)
#6 0x186caf030 in _pthread_start+0x84 (libsystem_pthread.dylib:arm64e+0x7030)
#7 0x186ca9e38 in thread_start+0x4 (libsystem_pthread.dylib:arm64e+0x1e38)
0x0002b00b5648 is located 200 bytes inside of 256-byte region [0x0002b00b5580,0x0002b00b5680)
freed by thread T1102 here:
#0 0x111b5ace0 in wrap_free+0x98 (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x52ce0)
#1 0x1056738d4 in pj_pool_destroy_int+0xbc (Jami:arm64+0x102a038d4)
#2 0x105674788 in cpool_release_pool+0xec (Jami:arm64+0x102a04788)
#3 0x105704130 in dataconn_on_data_read+0x180 (Jami:arm64+0x102a94130)
#4 0x105663b48 in ioqueue_on_read_complete+0x39c (Jami:arm64+0x1029f3b48)
#5 0x1056537a4 in ioqueue_dispatch_read_event+0x700 (Jami:arm64+0x1029e37a4)
#6 0x1056587bc in pj_ioqueue_poll+0x900 (Jami:arm64+0x1029e87bc)
#7 0x104a4ad9c in dhtnet::IceTransport::Impl::handleEvents(unsigned int)+0x1f0 (Jami:arm64+0x101ddad9c)
#8 0x104a65a5c in void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, dhtnet::IceTransport::Impl::initIceInstance(dhtnet::IceTransportOptions const&)::$_6>>(void*)+0x154 (Jami:arm64+0x101df5a5c)
#9 0x186caf030 in _pthread_start+0x84 (libsystem_pthread.dylib:arm64e+0x7030)
#10 0x186ca9e38 in thread_start+0x4 (libsystem_pthread.dylib:arm64e+0x1e38)
previously allocated by thread T1102 here:
#0 0x111b5aba4 in wrap_malloc+0x94 (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x52ba4)
#1 0x105660234 in default_block_alloc+0x50 (Jami:arm64+0x1029f0234)
#2 0x105672d68 in pj_pool_allocate_find+0x110 (Jami:arm64+0x102a02d68)
#3 0x105672f94 in pj_pool_calloc+0x7c (Jami:arm64+0x102a02f94)
#4 0x1056633a4 in pj_activesock_create+0x254 (Jami:arm64+0x1029f33a4)
#5 0x105700f6c in turn_on_connection_attempt+0x9d0 (Jami:arm64+0x102a90f6c)
#6 0x1056f59e8 in stun_on_rx_indication+0xe4 (Jami:arm64+0x102a859e8)
#7 0x1056e9914 in pj_stun_session_on_rx_pkt+0x69c (Jami:arm64+0x102a79914)
#8 0x1056fb5e4 in pj_turn_session_on_rx_pkt2+0x1ec (Jami:arm64+0x102a8b5e4)
#9 0x1056fb2f8 in pj_turn_session_on_rx_pkt+0x10c (Jami:arm64+0x102a8b2f8)
#10 0x105703930 in on_data_read_asock+0x468 (Jami:arm64+0x102a93930)
#11 0x105663a5c in ioqueue_on_read_complete+0x2b0 (Jami:arm64+0x1029f3a5c)
#12 0x1056537a4 in ioqueue_dispatch_read_event+0x700 (Jami:arm64+0x1029e37a4)
#13 0x1056587bc in pj_ioqueue_poll+0x900 (Jami:arm64+0x1029e87bc)
#14 0x104a4ad9c in dhtnet::IceTransport::Impl::handleEvents(unsigned int)+0x1f0 (Jami:arm64+0x101ddad9c)
#15 0x104a65a5c in void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, dhtnet::IceTransport::Impl::initIceInstance(dhtnet::IceTransportOptions const&)::$_6>>(void*)+0x154 (Jami:arm64+0x101df5a5c)
#16 0x186caf030 in _pthread_start+0x84 (libsystem_pthread.dylib:arm64e+0x7030)
#17 0x186ca9e38 in thread_start+0x4 (libsystem_pthread.dylib:arm64e+0x1e38)
```
What I see:
+ `turn_sock.c:dataconn_on_data_read` is called with status = 120054 & size = 0
+ This causes a dataconn_cleanup on the connection
+ `turn_session.c:stun_on_request_complete` is then called with method = PJ_STUN_CONNECTION_BIND_METHOD & status = 370004
I guess dataconn_cleanup is called again in turn_on_connection_bind_status but I'm not sure yet.
### Steps to reproduce
None detected yet
### PJSIP version
2.13
### Context
+ macOS, but I guess all platforms should get the same bug
+ Custom patched version, but turn_session/turn_sock should be the same.
### Log, call stack, etc
```shell
cf first part
```
https://github.com/pjsip/pjproject/issues/3776Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/dhtnet/-/issues/13Finish DVPN2024-03-09T00:41:19ZSébastien BlinFinish DVPNhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1459Investigate performance bottlenecks2024-02-29T20:09:34ZSébastien BlinInvestigate performance bottlenecksClient-qt can be slow to show. It should be nearly instantaneous, bottleneck must be identified
# Done status
Identify the bottlenecks and report it here (join performance reports here).
# Tools
Any profiler (Qt Profiler, Flamegraph,...Client-qt can be slow to show. It should be nearly instantaneous, bottleneck must be identified
# Done status
Identify the bottlenecks and report it here (join performance reports here).
# Tools
Any profiler (Qt Profiler, Flamegraph, benchmarks. etc)Andreas TraczykAndreas Traczyk