savoirfairelinux issueshttps://git.jami.net/groups/savoirfairelinux/-/issues2021-04-27T16:15:08Zhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/241Swarm: follow design changes for invites2021-04-27T16:15:08ZSébastien BlinSwarm: follow design changes for invitesSupport default invitations:
![swarm-invitation](/uploads/95754926cfb1b6959903a535c371c791/swarm-invitation.png)
Invitations with title:
![swarm-invitation2](/uploads/74b70fa1643facfcf07eabfe47617df6/swarm-invitation2.png)Support default invitations:
![swarm-invitation](/uploads/95754926cfb1b6959903a535c371c791/swarm-invitation.png)
Invitations with title:
![swarm-invitation2](/uploads/74b70fa1643facfcf07eabfe47617df6/swarm-invitation2.png)Swarm-chatCharlotte HoffmannSébastien BlinKateryna KostiukCharlotte Hoffmann2021-03-03https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/428Re-work network congestion detection2023-02-06T20:57:50ZPierre LespagnolRe-work network congestion detectionIn some cases the congestion detection is not efficient, increase the sensibility of the algorithm will help to detect more congestions.In some cases the congestion detection is not efficient, increase the sensibility of the algorithm will help to detect more congestions.BacklogPierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/479Re-enable FEC!2021-03-19T17:44:58ZSébastien BlinRe-enable FEC!https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/518Recording: avoid dead lock with conference2021-04-16T13:43:10ZAline Gondim SantosRecording: avoid dead lock with conferenceAlice call rdv point. She is alone in the rdv conference.
Alice tries to record the call. She will not succeed recording and the call continues normally.
Alice hangup and get stuck.Alice call rdv point. She is alone in the rdv conference.
Alice tries to record the call. She will not succeed recording and the call continues normally.
Alice hangup and get stuck.Aline Gondim SantosAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/531Crash in sendTextMessage2021-04-27T19:15:54ZSébastien BlinCrash in sendTextMessage```
backtrace:
#00 pc 000000000004dc24 /apex/com.android.runtime/lib64/bionic/libc.so (abort+164)
#00 pc 000000000009ce88 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libc++_shared.so (abort_m...```
backtrace:
#00 pc 000000000004dc24 /apex/com.android.runtime/lib64/bionic/libc.so (abort+164)
#00 pc 000000000009ce88 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libc++_shared.so (abort_message) (SourceCode: /buildbot/src/android/ndk-release-r21/external/libcxx/../../external/libcxxabi/src/abort_message.cpp:76)
#00 pc 000000000009d07c /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libc++_shared.so (demangling_terminate_handler()) (SourceCode: /buildbot/src/android/ndk-release-r21/external/libcxx/../../external/libcxxabi/src/cxa_default_handlers.cpp:62)
#00 pc 00000000000aead0 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libc++_shared.so (std::__terminate(void (*)())) (SourceCode: /buildbot/src/android/ndk-release-r21/external/libcxx/../../external/libcxxabi/src/cxa_handlers.cpp:59)
#00 pc 00000000000ae0fc /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libc++_shared.so (__cxxabiv1::failed_throw(__cxxabiv1::__cxa_exception*)) (SourceCode: /buildbot/src/android/ndk-release-r21/external/libcxx/../../external/libcxxabi/src/cxa_exception.cpp:152)
#00 pc 00000000000ae058 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libc++_shared.so (__cxa_throw) (SourceCode: /buildbot/src/android/ndk-release-r21/external/libcxx/../../external/libcxxabi/src/cxa_exception.cpp:284)
#00 pc 000000000009c1dc /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libc++_shared.so (std::__ndk1::__throw_system_error(int, char const*)) (SourceCode: /buildbot/src/android/ndk-release-r21/external/libcxx/src/system_error.cpp:287)
#00 pc 0000000000473c50 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libring.so (std::__ndk1::unique_lock<std::__ndk1::mutex>::unlock()) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__mutex_base:265)
#00 pc 0000000000473c50 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libring.so (jami::JamiAccount::sendTextMessage(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, 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&, unsigned long, bool)::$_67::operator()(dht::Hash<20ul> const&) const::'lambda'(bool)::operator()(bool) const) (SourceCode: /var/lib/jenkins/workspace/packaging-deploy-android-pipeline/ring-project/client-android/../daemon/src/jamidht/jamiaccount.cpp:3597)
#00 pc 0000000000473c50 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libring.so (decltype(std::__ndk1::forward<jami::JamiAccount::sendTextMessage(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, 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&, unsigned long, bool)::$_67::operator()(dht::Hash<20ul> const&) const::'lambda'(bool)&>(fp)(std::__ndk1::forward<bool>(fp0))) std::__ndk1::__invoke<jami::JamiAccount::sendTextMessage(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, 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&, unsigned long, bool)::$_67::operator()(dht::Hash<20ul> const&) const::'lambda'(bool)&, bool>(jami::JamiAccount::sendTextMessage(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, 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&, unsigned long, bool)::$_67::operator()(dht::Hash<20ul> const&) const::'lambda'(bool)&, bool&&)) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/type_traits:3501)
#00 pc 0000000000473c50 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libring.so (void std::__ndk1::__invoke_void_return_wrapper<void>::__call<jami::JamiAccount::sendTextMessage(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, 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&, unsigned long, bool)::$_67::operator()(dht::Hash<20ul> const&) const::'lambda'(bool)&, bool>(jami::JamiAccount::sendTextMessage(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, 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&, unsigned long, bool)::$_67::operator()(dht::Hash<20ul> const&) const::'lambda'(bool)&, bool&&)) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__functional_base:348)
#00 pc 0000000000473c50 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libring.so (std::__ndk1::__function::__alloc_func<jami::JamiAccount::sendTextMessage(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, 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&, unsigned long, bool)::$_67::operator()(dht::Hash<20ul> const&) const::'lambda'(bool), std::__ndk1::allocator<jami::JamiAccount::sendTextMessage(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, 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&, unsigned long, bool)::$_67::operator()(dht::Hash<20ul> const&) const::'lambda'(bool)>, void (bool)>::operator()(bool&&)) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/functional:1540)
#00 pc 0000000000473c50 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libring.so (std::__ndk1::__function::__func<jami::JamiAccount::sendTextMessage(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, 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&, unsigned long, bool)::$_67::operator()(dht::Hash<20ul> const&) const::'lambda'(bool), std::__ndk1::allocator<jami::JamiAccount::sendTextMessage(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, 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&, unsigned long, bool)::$_67::operator()(dht::Hash<20ul> const&) const::'lambda'(bool)>, void (bool)>::operator()(bool&&)) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/functional:1714)
#00 pc 00000000006f0c80 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libring.so (std::__ndk1::__function::__func<std::__ndk1::__bind<std::__ndk1::function<void (bool)>, std::__ndk1::placeholders::__ph<1> const&>, std::__ndk1::allocator<std::__ndk1::__bind<std::__ndk1::function<void (bool)>, std::__ndk1::placeholders::__ph<1> const&> >, void (bool, std::__ndk1::vector<std::__ndk1::shared_ptr<dht::Node>, std::__ndk1::allocator<std::__ndk1::shared_ptr<dht::Node> > > const&)>::operator()(bool&&, std::__ndk1::vector<std::__ndk1::shared_ptr<dht::Node>, std::__ndk1::allocator<std::__ndk1::shared_ptr<dht::Node> > > const&))
#00 pc 0000000000713a38 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libring.so (std::__ndk1::__function::__func<dht::DhtRunner::bindOpDoneCallback(std::__ndk1::function<void (bool, std::__ndk1::vector<std::__ndk1::shared_ptr<dht::Node>, std::__ndk1::allocator<std::__ndk1::shared_ptr<dht::Node> > > const&)>&&)::$_6, std::__ndk1::allocator<dht::DhtRunner::bindOpDoneCallback(std::__ndk1::function<void (bool, std::__ndk1::vector<std::__ndk1::shared_ptr<dht::Node>, std::__ndk1::allocator<std::__ndk1::shared_ptr<dht::Node> > > const&)>&&)::$_6>, void (bool, std::__ndk1::vector<std::__ndk1::shared_ptr<dht::Node>, std::__ndk1::allocator<std::__ndk1::shared_ptr<dht::Node> > > const&)>::operator()(bool&&, std::__ndk1::vector<std::__ndk1::shared_ptr<dht::Node>, std::__ndk1::allocator<std::__ndk1::shared_ptr<dht::Node> > > const&)) (SourceCode: dhtrunner.cpp)
#00 pc 0000000000732724 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libring.so (std::__ndk1::__function::__func<dht::DhtProxyClient::put(dht::Hash<20ul> const&, std::__ndk1::shared_ptr<dht::Value>, std::__ndk1::function<void (bool, std::__ndk1::vector<std::__ndk1::shared_ptr<dht::Node>, std::__ndk1::allocator<std::__ndk1::shared_ptr<dht::Node> > > const&)>, std::__ndk1::chrono::time_point<std::__ndk1::chrono::steady_clock, std::__ndk1::chrono::duration<long long, std::__ndk1::ratio<1l, 1000000000l> > >, bool)::$_5::operator()(bool) const::'lambda'(), std::__ndk1::allocator<dht::DhtProxyClient::put(dht::Hash<20ul> const&, std::__ndk1::shared_ptr<dht::Value>, std::__ndk1::function<void (bool, std::__ndk1::vector<std::__ndk1::shared_ptr<dht::Node>, std::__ndk1::allocator<std::__ndk1::shared_ptr<dht::Node> > > const&)>, std::__ndk1::chrono::time_point<std::__ndk1::chrono::steady_clock, std::__ndk1::chrono::duration<long long, std::__ndk1::ratio<1l, 1000000000l> > >, bool)::$_5::operator()(bool) const::'lambda'()>, void ()>::operator()()) (SourceCode: dht_proxy_client.cpp)
#00 pc 0000000000725a38 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libring.so (dht::DhtProxyClient::periodic(unsigned char const*, unsigned long, dht::SockAddr, std::__ndk1::chrono::time_point<std::__ndk1::chrono::steady_clock, std::__ndk1::chrono::duration<long long, std::__ndk1::ratio<1l, 1000000000l> > > const&))
#00 pc 0000000000739618 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libring.so (dht::DhtProxyClient::periodic(unsigned char const*, unsigned long, sockaddr const*, unsigned int, std::__ndk1::chrono::time_point<std::__ndk1::chrono::steady_clock, std::__ndk1::chrono::duration<long long, std::__ndk1::ratio<1l, 1000000000l> > > const&))
#00 pc 000000000070baa0 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libring.so (dht::DhtRunner::loop_())
#00 pc 0000000000713078 /data/app/~~gpEGz9izymetwpYzDyHGhw==/cx.ring-6Dl8MU7JomtuXJ_732xHGQ==/lib/arm64/libring.so (void* std::__ndk1::__thread_proxy<std::__ndk1::tuple<std::__ndk1::unique_ptr<std::__ndk1::__thread_struct, std::__ndk1::default_delete<std::__ndk1::__thread_struct> >, dht::DhtRunner::run(dht::DhtRunner::Config const&, dht::DhtRunner::Context&&)::$_3> >(void*)) (SourceCode: dhtrunner.cpp)
#00 pc 00000000000b4fb4 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
#00 pc 000000000004fb64 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/526TURN caching issue2021-04-27T19:16:40ZSébastien BlinTURN caching issue# Scenario
+ Use Jami
+ Close the computer
+ Re-open it
+ A connectivity change occurs and TURN is re-cached.
# Expected
If the TURN is available, the cache should be correctly updated
# Current
Sometimes the cache is deleted
# Rea...# Scenario
+ Use Jami
+ Close the computer
+ Re-open it
+ A connectivity change occurs and TURN is re-cached.
# Expected
If the TURN is available, the cache should be correctly updated
# Current
Sometimes the cache is deleted
# Reason
NM is giving the connectivity change before that the network is really available, so the resolution can give a "network unreachable". Instead of that, we should wait that the DHT is connected (so that we are ready to use Jami).Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/278Packaging: build qt for our .deb2021-04-28T14:27:58ZSébastien BlinPackaging: build qt for our .debAmin BandaliAmin Bandalihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/513malloc(): unaligned tcache chunk detected in ftp_server2021-04-28T14:35:16ZSébastien Blinmalloc(): unaligned tcache chunk detected in ftp_server```
] [FTP] file closed, rx 101 on 101
[1618325820.589|13013|p2p.cpp :352 ] Channel down for incoming transfer with id(10909450105909471284)
[1618325820.589|10975|ftp_server.cpp :66 ] [FTP] server closed
malloc(): unalign...```
] [FTP] file closed, rx 101 on 101
[1618325820.589|13013|p2p.cpp :352 ] Channel down for incoming transfer with id(10909450105909471284)
[1618325820.589|10975|ftp_server.cpp :66 ] [FTP] server closed
malloc(): unaligned tcache chunk detected
--Type <RET> for more, q to quit, c to continue without paging--
Thread 252 "dring" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffc0ff9640 (LWP 13013)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
49 ../sysdeps/unix/sysv/linux/raise.c: Aucun fichier ou dossier de ce type.
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#1 0x00007ffff717b864 in __GI_abort () at abort.c:79
#2 0x00007ffff71de736 in __libc_message (action=action@entry=do_abort,
fmt=fmt@entry=0x7ffff7303b9c "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#3 0x00007ffff71e708c in malloc_printerr (
str=str@entry=0x7ffff73066d0 "malloc(): unaligned tcache chunk detected")
at malloc.c:5628
#4 0x00007ffff71ec42c in tcache_get (tc_idx=<optimized out>) at malloc.c:3103
#5 GI_libc_malloc (bytes=513) at malloc.c:3221
#6 0x00007ffff7559cac in operator new(unsigned long) ()
from /lib/x86_64-linux-gnu/libstdc++.so.6
#7 0x00007ffff75f37d5 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) ()
from /lib/x86_64-linux-gnu/libstdc++.so.6
#8 0x00007ffff75e9a23 in std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) ()
from /lib/x86_64-linux-gnu/libstdc++.so.6
#9 0x00007ffff75f1aaa in std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#10 0x00007ffff75e3ee4 in std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) ()
from /lib/x86_64-linux-gnu/libstdc++.so.6
--Type <RET> for more, q to quit, c to continue without paging--
#11 0x00007ffff75e41cc in std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00005555559f5a5e in contextHeader (file=0x555556a0e3bf "ftp_server.cpp",
line=213) at logger.cpp:131
#13 0x00005555559f5ee8 in jami::Logger::vlog (level=7,
file=0x555556a0e3bf "ftp_server.cpp", line=213, linefeed=true,
format=0x5555569c725b "%s", ap=0x7fffc0ff59c0) at logger.cpp:277
#14 0x00005555559f5de5 in jami::Logger::log (level=7,
file=0x555556a0e3bf "ftp_server.cpp", line=213, linefeed=true,
format=0x5555569c725b "%s") at logger.cpp:226
#15 0x00005555557492a3 in jami::Logger::~Logger (this=0x7fffc0ff5b30,
__in_chrg=<optimized out>) at ./logger.h:109
#16 0x0000555555a346f5 in jami::FtpServer::handleHeader (this=0x7fff60009780,
key="Content-Length", value="101") at ftp_server.cpp:213
#17 0x0000555555a345cc in jami::FtpServer::parseLine (this=0x7fff60009780,
line="Content-Length: 101") at ftp_server.cpp:206
#18 0x0000555555a343d0 in jami::FtpServer::parseStream (this=0x7fff60009780,
buffer="Content-Length: 101\nDisplay-Name: profile.vcf\nOffset: 0\n\n")
at ftp_server.cpp:184
#19 0x0000555555a34141 in jami::FtpServer::write (this=0x7fff60009780,
buffer="Content-Length: 101\nDisplay-Name: profile.vcf\nOffset: 0\n\n")
at ftp_server.cpp:148
--Type <RET> for more, q to quit, c to continue without paging--
#20 0x0000555555bc11e5 in operator() (__closure=0x7fffc0ff6020,
buf=0x7fff10005560 "Content-Length: 101\nDisplay-Name: profile.vcf\nOffset: 0\n\nvcf", len=57) at channeled_transfers.cpp:81
#21 0x0000555555bc2097 in std::invoke_impl<long unsigned int, jami::ChanneledIncomingTransfer::ChanneledIncomingTransfer(const std::shared_ptr<jami::ChannelSocket>&, const std::shared_ptr<jami::FtpServer>&, jami::OnStateChangedCb&&)::<lambda(const uint8_t*, size_t)>&, unsigned char const*, long unsigned int>(std::invoke_other, struct {...} &) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#22 0x0000555555bc20fd in std::invoke_r<long int, jami::ChanneledIncomingTransfer::ChanneledIncomingTransfer(const std::shared_ptr<jami::ChannelSocket>&, const std::shared_ptr<jami::FtpServer>&, jami::OnStateChangedCb&&)::<lambda(const uint8_t*, size_t)>&, unsigned char const*, long unsigned int>(struct {...} &) (
fn=...) at /usr/include/c++/10/bits/invoke.h:113
#23 0x0000555555bc1acd in std::_Function_handler<long int(unsigned char const*, long unsigned int), jami::ChanneledIncomingTransfer::ChanneledIncomingTransfer(const std::shared_ptr<jami::ChannelSocket>&, const std::shared_ptr<jami::FtpServer>&, jami::OnStateChangedCb&&)::<lambda(const uint8_t*, size_t)> >::Minvoke(const std::_Any_data &, const unsigned char *&&, unsigned long &&) (
functor=...,
args#0=@0x7fffc0ff5f50: 0x7fff10005560 "Content-Length: 101\nDisplay-Name: profile.vcf\nOffset: 0\n\nvcf", __args#1=@0x7fffc0ff5f48: 57)
at /usr/include/c++/10/bits/std_function.h:291
#24 0x00005555558c2775 in std::function<long (unsigned char const*, unsigned lon--Type <RET> for more, q to quit, c to continue without paging--
g)>::operator()(unsigned char const*, unsigned long) const (
this=0x7fffc0ff6020,
args#0=0x7fff10005560 "Content-Length: 101\nDisplay-Name: profile.vcf\nOffset: 0\n\nvcf", args#1=57) at /usr/include/c++/10/bits/std_function.h:622
#25 0x00005555558bb4cf in jami::MultiplexedSocket::Impl::handleChannelPacket (
this=0x7ffefc06a960, channel=9901, pkt=...) at multiplexed_socket.cpp:320
#26 0x00005555558ba37f in jami::MultiplexedSocket::Impl::eventLoop (
this=0x7ffefc06a960) at multiplexed_socket.cpp:192
#27 0x00005555558bfbd4 in jami::MultiplexedSocket::Impl::Impl(jami::MultiplexedSocket&, dht::Hash<20ul> const&, std::unique_ptr<jami::TlsSocketEndpoint, std::default_delete<jami::TlsSocketEndpoint> >)::{lambda()#1}::operator()() const (
__closure=0x7ffefc066fd8) at multiplexed_socket.cpp:50
#28 0x00005555558d7c30 in std::invoke_impl<void, jami::MultiplexedSocket::Impl::Impl(jami::MultiplexedSocket&, dht::Hash<20ul> const&, std::unique_ptr<jami::TlsSocketEndpoint, std::default_delete<jami::TlsSocketEndpoint> >)::{lambda()#1}>(std::invoke_other, jami::MultiplexedSocket::Impl::Impl(jami::MultiplexedSocket&, dht::Hash<20ul> const&, std::unique_ptr<jami::TlsSocketEndpoint, std::default_delete<jami::TlsSocketEndpoint> >)::{lambda()#1}&&) (__f=...)
at /usr/include/c++/10/bits/invoke.h:60
#29 0x00005555558d7bd9 in std::invoke<jami::MultiplexedSocket::Impl::Impl(jami::MultiplexedSocket&, dht::Hash<20ul> const&, std::unique_ptr<jami::TlsSocketEndpoint, std::default_delete<jami::TlsSocketEndpoint> >)::{lambda()#1}>(jami::MultiplexedSocket::Impl::Impl(jami::MultiplexedSocket&, dht::Hash<20ul> const&, std:--Type <RET> for more, q to quit, c to continue without paging--
:unique_ptr<jami::TlsSocketEndpoint, std::default_delete<jami::TlsSocketEndpoint> >)::{lambda()#1}&&) (fn=...) at /usr/include/c++/10/bits/invoke.h:95
#30 0x00005555558d7b7a in std::thread::_Invoker<std::tuple<jami::MultiplexedSocket::Impl::Impl(jami::MultiplexedSocket&, dht::Hash<20ul> const&, std::unique_ptr<jami::TlsSocketEndpoint, std::default_delete<jami::TlsSocketEndpoint> >)::{lambda()#1}> >::Minvoke<0ul>(std::_Index_tuple<0ul>) (this=0x7ffefc066fd8)
at /usr/include/c++/10/thread:264
#31 0x00005555558d7b0e in std::thread::_Invoker<std::tuple<jami::MultiplexedSocket::Impl::Impl(jami::MultiplexedSocket&, dht::Hash<20ul> const&, std::unique_ptr<jami::TlsSocketEndpoint, std::default_delete<jami::TlsSocketEndpoint> >)::{lambda()#1}> >::operator()() (this=0x7ffefc066fd8)
at /usr/include/c++/10/thread:271
#32 0x00005555558d7a5a in std::thread::_State_impl<std::thread::_Invoker<std::tuple<jami::MultiplexedSocket::Impl::Impl(jami::MultiplexedSocket&, dht::Hash<20ul> const&, std::unique_ptr<jami::TlsSocketEndpoint, std::default_delete<jami::TlsSocketEndpoint> >)::{lambda()#1}> > >::Mrun() (this=0x7ffefc066fd0)
at /usr/include/c++/10/thread:215
#33 0x00007ffff7586694 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#34 0x00007ffff7be8450 in start_thread (arg=0x7fffc0ff9640)
at pthread_create.c:473
#35 0x00007ffff726cd53 in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb)
(gdb)
(gdb)
`̀ `Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/483SIP account: app freezes when finishing call2023-09-29T10:00:22ZKateryna KostiukSIP account: app freezes when finishing callBacklogMohamed ChibaniMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/557Fuzzing SIP over TLS2023-12-27T18:02:51ZSébastien BlinFuzzing SIP over TLS# Fuzzing SIP over TLS
Currently, I've made a lexer for SIP communication that allows one to construct an object and to manipulate a SIP message.
### Scenarios
#### Shuffle randomly the SIP message
This results in the call been hang ...# Fuzzing SIP over TLS
Currently, I've made a lexer for SIP communication that allows one to construct an object and to manipulate a SIP message.
### Scenarios
#### Shuffle randomly the SIP message
This results in the call been hang after some delay. We probably want to generate random fields instead.
#### Keep changing the SIP version
Version is changed randomly between SIP/1.0 and SIP/2.0.
#### TODO - Change the status code
### Bad SDP body
If the body content of a SDP request is invalid, an assertion failed. The null pointer seems to not be a problem because it's checked, however the caller should probably not call the function in the first place. Will investigate further.
In sdp.cpp:
```c++
583 assert(remoteSession_);
```
```
#0 0x00007ffff39fdd22 in raise () at /usr/lib/libc.so.6
#1 0x00007ffff39e7862 in abort () at /usr/lib/libc.so.6
#2 0x00007ffff39e7747 in _nl_load_domain.cold () at /usr/lib/libc.so.6
#3 0x00007ffff39f6616 in () at /usr/lib/libc.so.6
#4 0x000055555a84fa0e in jami::Sdp::processIncomingOffer(std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> > const&) (this=0x6110015f0080, mediaList=std::vector of length 1, capacity 1 = {...}) at sdp.cpp:583
#5 0x0000555559bc894e in jami::transaction_request_cb(pjsip_rx_data*) (rdata=0x625007721b08) at sipvoiplink.cpp:451
#6 0x000055555aeaf623 in pjsip_endpt_process_rx_data ()
#7 0x000055555aeaf856 in endpt_on_rx_msg ()
#8 0x000055555aeb685e in pjsip_tpmgr_receive_packet ()
#9 0x000055555a079ce0 in jami::tls::ChanneledSIPTransport::handleEvents() (this=0x625007721900) at /usr/include/c++/11.1.0/bits/channeled_transport.cpp:237
#10 0x000055555a070967 in operator()() const (__closure=0x603002aed2b0) at /usr/include/c++/11.1.0/bits/channeled_transport.cpp:150
#11 0x000055555a0809bd in std::__invoke_impl<void, jami::tls::ChanneledSIPTransport::ChanneledSIPTransport(pjsip_endpoint*, int, const std::shared_ptr<jami::ChannelSocket>&, const jami::IpAddr&, const jami::IpAddr&, jami::onShutdownCb&&)::<lambda(const uint8_t*, size_t)>::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/11.1.0/bits/invoke.h:61
#12 0x000055555a07ea22 in std::__invoke_r<void, jami::tls::ChanneledSIPTransport::ChanneledSIPTransport(pjsip_endpoint*, int, const std::shared_ptr<jami::ChannelSocket>&, const jami::IpAddr&, const jami::IpAddr&, jami::onShutdownCb&&)::<lambda(const uint8_t*, size_t)>::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/11.1.0/bits/invoke.h:111
#13 0x000055555a07d701 in std::_Function_handler<void(), jami::tls::ChanneledSIPTransport::ChanneledSIPTransport(pjsip_endpoint*, int, const std::shared_ptr<jami::ChannelSocket>&, const jami::IpAddr&, const jami::IpAddr&, jami::onShutdownCb&&)::<lambda(const uint8_t*, size_t)>::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/11.1.0/bits/std_function.h:291
#14 0x00005555596e546d in std::function<void ()>::operator()() const (this=0x603002aed2b0) at /usr/include/c++/11.1.0/bits/std_function.h:560
#15 0x0000555559a89730 in jami::ScheduledExecutor::loop() (this=0x625007723e10) at scheduled_executor.cpp:137
#16 0x0000555559a85e1e in operator()() const (__closure=0x603000073a88) at scheduled_executor.cpp:32
#17 0x0000555559a8f8be in std::__invoke_impl<void, jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(std::__invoke_other, struct {...} &&) (__f=...) at /usr/include/c++/11.1.0/bits/invoke.h:61
#18 0x0000555559a8f779 in std::__invoke<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(struct {...} &&) (__fn=...) at /usr/include/c++/11.1.0/bits/invoke.h:96
#19 0x0000555559a8f64e in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x603000073a88) at /usr/include/c++/11.1.0/bits/std_thread.h:253
#20 0x0000555559a8f584 in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::operator()(void) (this=0x603000073a88) at /usr/include/c++/11.1.0/bits/std_thread.h:260
#21 0x0000555559a8f53c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > > >::_M_run(void) (this=0x603000073a80) at /usr/include/c++/11.1.0/bits/std_thread.h:211
#22 0x00007ffff47333c4 in std::execute_native_thread_routine(void*) (__p=0x603000073a80) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:82
#23 0x00007ffff667a259 in start_thread () at /usr/lib/libpthread.so.0
#24 0x00007ffff3abf5e3 in clone () at /usr/lib/libc.so.6
```
#### Payload attack (SDP Huge value of Content-Length)
Alice duplicates the body of its SDP request N times. N grows at a rate of 2^M.
After some threshold, connection between peer can not be establish if iniated from Alice. Bob can still call Alice.
### Payload attack (SIP MESSAGE)
Alice spam bob with very huge message text.
The TLS connections seems to stop working and Bob receive the message text (short version) over the DHt instead.
### Sending none supported content-type (text/html, text/javascript, etc.)
The content-type is simply ignored. Call can be made.
#### TODO - Sending SIP request over none SIP channel (can be applied to other protocols as well)BacklogOlivier DionOlivier Dionhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/595Swarm 1:1 detect contact left2021-07-28T16:05:38ZSébastien BlinSwarm 1:1 detect contact left+ Change repo to include /invited
+ "Contact left" should be visible in getConversationMembers()
+ Add test
+ DO client changes+ Change repo to include /invited
+ "Contact left" should be visible in getConversationMembers()
+ Add test
+ DO client changesSwarm-chatSébastien BlinAndreas TraczykSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/596Swarm: removeContact should remove syncing conversations2021-07-28T21:14:57ZSébastien BlinSwarm: removeContact should remove syncing conversations+ Fix bug
+ Add test+ Fix bug
+ Add testSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-project/-/issues/874Export and import profile name when linking a new device2021-07-27T20:57:59ZovariExport and import profile name when linking a new device1. When linking a Jami account, the `Profile Name` does not come across.<br>
We have help people set up Jami on Windows and then their Android device and the `Profile Name` doesn't come across.<br>
![image](/uploads/c9abea3274cc724dc87cd...1. When linking a Jami account, the `Profile Name` does not come across.<br>
We have help people set up Jami on Windows and then their Android device and the `Profile Name` doesn't come across.<br>
![image](/uploads/c9abea3274cc724dc87cdd22934a3367/image.png)
2. It seems to be possible to have a different `Profile Name` on different devices for the same username.<br>
Can this name please be synchronized?<br>
If they call us on one device, their `Profile Name` shows as they have entered it on that device. If they call again using their other device, the name changes. This makes the UX not as good as it could be.
What do you think?
Thank youSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/509Bump pjproject to version 2.112021-07-23T15:16:28ZSébastien BlinBump pjproject to version 2.11https://git.jami.net/savoirfairelinux/ring-daemon/blob/master/contrib/src/pjproject/rules.mak
We're using pjproject 2.10, and we need to migrate our patches and remove the one already upstreamed.
Cf new features (like trickle ICE for m...https://git.jami.net/savoirfairelinux/ring-daemon/blob/master/contrib/src/pjproject/rules.mak
We're using pjproject 2.10, and we need to migrate our patches and remove the one already upstreamed.
Cf new features (like trickle ICE for medias?)Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/592Swarm: move last read per participant daemon' side2021-07-28T17:15:46ZSébastien BlinSwarm: move last read per participant daemon' side+ getMembers() should return last read
+ react to messageDisplayed/setMessageDisplayed
+ Add test
+ Add method to compute how many messages between two interactions
+ Update LRC
+ Update doc+ getMembers() should return last read
+ react to messageDisplayed/setMessageDisplayed
+ Add test
+ Add method to compute how many messages between two interactions
+ Update LRC
+ Update docSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/607ICE - missing srflx candidates in answer2021-08-17T20:05:31ZMohamed ChibaniICE - missing srflx candidates in answerServer reflexive candidates are not added in call answer if UPNP is disabled. This can cause ICE media negotiation failure if the peer is behind a NAT with TURN enabled, and UPNP disabled/unavailable.
Setup:
Endpoint A
TURN enabled
UPNP...Server reflexive candidates are not added in call answer if UPNP is disabled. This can cause ICE media negotiation failure if the peer is behind a NAT with TURN enabled, and UPNP disabled/unavailable.
Setup:
Endpoint A
TURN enabled
UPNP disabled
Endpoint B
TURN disabled
UPNP disabled
A calls B.
Results: failed (notice the absence of srflx cand in B's SDP answer)
Expected: success (connection pair A:relay <-> B:prflx
ICE fails because the TURN server does not authorize connection from prflx candidates because they are unknown to it (they be authorized if the B add the address as a srflx canddiate).
Note that the call is successful if B calls A (because the srflx are included in the offer).Mohamed ChibaniMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/602Deadlock with sendBeacon2021-08-17T20:19:30ZSébastien BlinDeadlock with sendBeacon[gdb.txt](/uploads/e9900d59f519af011c3af4eec22deb0c/gdb.txt)[gdb.txt](/uploads/e9900d59f519af011c3af4eec22deb0c/gdb.txt)Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-client-ios/-/issues/145Multistream support2021-11-18T03:23:36ZSébastien BlinMultistream supportAline Gondim SantosAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/603Extract conversation's code from jamiaccount2021-09-13T17:03:00ZSébastien BlinExtract conversation's code from jamiaccountJamiAccount is too big. Split this classJamiAccount is too big. Split this classSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/600TrustRequest: add signal for conversationRequest removed, and ensure it's cor...2021-08-09T14:35:49ZSébastien BlinTrustRequest: add signal for conversationRequest removed, and ensure it's correctly syncedRelated to https://git.jami.net/savoirfairelinux/ring-project/-/issues/1282Related to https://git.jami.net/savoirfairelinux/ring-project/-/issues/1282Swarm-chatSébastien BlinSébastien Blin