jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2021-04-27T19:16:40Zhttps://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-daemon/-/issues/525plugins Apple: uncompress jpl with minizip instead of libarchive2021-05-12T13:29:39ZAline Gondim Santosplugins Apple: uncompress jpl with minizip instead of libarchiveDaemon currently uses libarchive for installing plugins (uncompressing JPL files) in windows, GNU/Linux and Android builds.
In MacOS and IOS libarchive should be replaced by minizip.Daemon currently uses libarchive for installing plugins (uncompressing JPL files) in windows, GNU/Linux and Android builds.
In MacOS and IOS libarchive should be replaced by minizip.Aline Gondim SantosAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/523Flood for files seems to block2021-04-19T18:45:09ZSébastien BlinFlood for files seems to block# Scenario
+ Desktop sends 30 images to android client
+ At some point transfers are blocked# Scenario
+ Desktop sends 30 images to android client
+ At some point transfers are blockedSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/522Crash in multiplexed_socket2021-07-16T18:08:35ZSébastien BlinCrash in multiplexed_socket```
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> cx.ring <<<
backtrace:
#00 pc 000000000004e8fc /apex/com.android.runtime/lib64/bionic/libc.so (abort+180)
#00 pc 00000000000b28a4 /apex/com.a...```
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> cx.ring <<<
backtrace:
#00 pc 000000000004e8fc /apex/com.android.runtime/lib64/bionic/libc.so (abort+180)
#00 pc 00000000000b28a4 /apex/com.android.runtime/lib64/bionic/libc.so (__fortify_fatal(char const*, ...)+124)
#00 pc 00000000000b1d6c /apex/com.android.runtime/lib64/bionic/libc.so (HandleUsingDestroyedMutex(pthread_mutex_t*, char const*)+52)
#00 pc 00000000000b1bac /apex/com.android.runtime/lib64/bionic/libc.so (pthread_mutex_lock+172)
#00 pc 0000000000091b6c /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libc++_shared.so (std::__ndk1::__libcpp_mutex_lock(pthread_mutex_t*)) (SourceCode: /buildbot/src/android/ndk-release-r21/external/libcxx/include/__threading_support:264)
#00 pc 0000000000091b6c /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libc++_shared.so (std::__ndk1::mutex::lock()) (SourceCode: /buildbot/src/android/ndk-release-r21/external/libcxx/src/mutex.cpp:33)
#00 pc 0000000000484484 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (std::__ndk1::lock_guard<std::__ndk1::mutex>::lock_guard(std::__ndk1::mutex&)) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__mutex_base:99)
#00 pc 0000000000484484 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (jami::MultiplexedSocket::Impl::clearSockets()) (SourceCode: /var/lib/jenkins/workspace/packaging-deploy-android-pipeline/ring-project/client-android/../daemon/src/jamidht/multiplexed_socket.cpp:74)
#00 pc 0000000000482dc8 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (jami::MultiplexedSocket::Impl::shutdown()) (SourceCode: /var/lib/jenkins/workspace/packaging-deploy-android-pipeline/ring-project/client-android/../daemon/src/jamidht/multiplexed_socket.cpp:102)
#00 pc 0000000000482dc8 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (jami::MultiplexedSocket::Impl::eventLoop()::$_0::operator()(jami::tls::TlsSessionState) const) (SourceCode: /var/lib/jenkins/workspace/packaging-deploy-android-pipeline/ring-project/client-android/../daemon/src/jamidht/multiplexed_socket.cpp:160)
#00 pc 0000000000482dc8 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (decltype(std::__ndk1::forward<jami::MultiplexedSocket::Impl::eventLoop()::$_0&>(fp)(std::__ndk1::forward<jami::tls::TlsSessionState>(fp0))) std::__ndk1::__invoke<jami::MultiplexedSocket::Impl::eventLoop()::$_0&, jami::tls::TlsSessionState>(jami::MultiplexedSocket::Impl::eventLoop()::$_0&, jami::tls::TlsSessionState&&)) (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 0000000000482dc8 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (bool std::__ndk1::__invoke_void_return_wrapper<bool>::__call<jami::MultiplexedSocket::Impl::eventLoop()::$_0&, jami::tls::TlsSessionState>(jami::MultiplexedSocket::Impl::eventLoop()::$_0&, jami::tls::TlsSessionState&&)) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/__functional_base:317)
#00 pc 0000000000482dc8 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (std::__ndk1::__function::__alloc_func<jami::MultiplexedSocket::Impl::eventLoop()::$_0, std::__ndk1::allocator<jami::MultiplexedSocket::Impl::eventLoop()::$_0>, bool (jami::tls::TlsSessionState)>::operator()(jami::tls::TlsSessionState&&)) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/functional:1540)
#00 pc 0000000000482dc8 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (std::__ndk1::__function::__func<jami::MultiplexedSocket::Impl::eventLoop()::$_0, std::__ndk1::allocator<jami::MultiplexedSocket::Impl::eventLoop()::$_0>, bool (jami::tls::TlsSessionState)>::operator()(jami::tls::TlsSessionState&&)) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/functional:1714)
#00 pc 00000000005405a4 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (std::__ndk1::__function::__value_func<bool (jami::tls::TlsSessionState)>::operator()(jami::tls::TlsSessionState&&) const) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/functional:1867)
#00 pc 00000000005405a4 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (std::__ndk1::function<bool (jami::tls::TlsSessionState)>::operator()(jami::tls::TlsSessionState) const) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/functional:2473)
#00 pc 00000000005405a4 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (jami::TlsSocketEndpoint::Impl::onTlsStateChange(jami::tls::TlsSessionState)) (SourceCode: /var/lib/jenkins/workspace/packaging-deploy-android-pipeline/ring-project/client-android/../daemon/src/peer_connection.cpp:303)
#00 pc 00000000005e19c8 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (std::__ndk1::__function::__value_func<void (jami::tls::TlsSessionState)>::operator()(jami::tls::TlsSessionState&&) const) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/functional:1867)
#00 pc 00000000005e19c8 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (std::__ndk1::function<void (jami::tls::TlsSessionState)>::operator()(jami::tls::TlsSessionState) const) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/functional:2473)
#00 pc 00000000005e19c8 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (jami::tls::TlsSession::TlsSessionImpl::process()) (SourceCode: /var/lib/jenkins/workspace/packaging-deploy-android-pipeline/ring-project/client-android/../daemon/src/security/tls_session.cpp:1550)
#00 pc 000000000052c4b0 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (std::__ndk1::__function::__value_func<void ()>::operator()() const) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/functional:1867)
#00 pc 000000000052c4b0 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (std::__ndk1::function<void ()>::operator()() const) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/functional:2473)
#00 pc 000000000052c4b0 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (jami::ThreadLoop::mainloop(std::__ndk1::__thread_id&, std::__ndk1::function<bool ()>, std::__ndk1::function<void ()>, std::__ndk1::function<void ()>)) (SourceCode: /var/lib/jenkins/workspace/packaging-deploy-android-pipeline/ring-project/client-android/../daemon/src/threadloop.cpp:38)
#00 pc 000000000052d2c8 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (decltype(*(std::__ndk1::forward<jami::ThreadLoop*>(fp0)).*fp(std::__ndk1::forward<std::__ndk1::reference_wrapper<std::__ndk1::__thread_id> >(fp1), std::__ndk1::forward<std::__ndk1::function<bool ()> >(fp1), std::__ndk1::forward<std::__ndk1::function<void ()> >(fp1), std::__ndk1::forward<std::__ndk1::function<void ()> >(fp1))) std::__ndk1::__invoke<void (jami::ThreadLoop::*)(std::__ndk1::__thread_id&, std::__ndk1::function<bool ()>, std::__ndk1::function<void ()>, std::__ndk1::function<void ()>), jami::ThreadLoop*, std::__ndk1::reference_wrapper<std::__ndk1::__thread_id>, std::__ndk1::function<bool ()>, std::__ndk1::function<void ()>, std::__ndk1::function<void ()>, void>(void (jami::ThreadLoop::*&&)(std::__ndk1::__thread_id&, std::__ndk1::function<bool ()>, std::__ndk1::function<void ()>, std::__ndk1::function<void ()>), jami::ThreadLoop*&&, std::__ndk1::reference_wrapper<std::__ndk1::__thread_id>&&, std::__ndk1::function<bool ()>&&, std::__ndk1::function<void ()>&&, std::__ndk1::function<void ()>&&)) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/type_traits:3442)
#00 pc 000000000052d008 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/lib/arm64/libring.so (void std::__ndk1::__thread_execute<std::__ndk1::unique_ptr<std::__ndk1::__thread_struct, std::__ndk1::default_delete<std::__ndk1::__thread_struct> >, void (jami::ThreadLoop::*)(std::__ndk1::__thread_id&, std::__ndk1::function<bool ()>, std::__ndk1::function<void ()>, std::__ndk1::function<void ()>), jami::ThreadLoop*, std::__ndk1::reference_wrapper<std::__ndk1::__thread_id>, std::__ndk1::function<bool ()>, std::__ndk1::function<void ()>, std::__ndk1::function<void ()>, 2ul, 3ul, 4ul, 5ul, 6ul>(std::__ndk1::tuple<std::__ndk1::unique_ptr<std::__ndk1::__thread_struct, std::__ndk1::default_delete<std::__ndk1::__thread_struct> >, void (jami::ThreadLoop::*)(std::__ndk1::__thread_id&, std::__ndk1::function<bool ()>, std::__ndk1::function<void ()>, std::__ndk1::function<void ()>), jami::ThreadLoop*, std::__ndk1::reference_wrapper<std::__ndk1::__thread_id>, std::__ndk1::function<bool ()>, std::__ndk1::function<void ()>, std::__ndk1::function<void ()> >&, std::__ndk1::__tuple_indices<2ul, 3ul, 4ul, 5ul, 6ul>)) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/thread:273)
#00 pc 000000000052d008 /data/app/~~ZI9neFfa-1XWt5AQDcrqRw==/cx.ring-RqW2L2ps6QbTiEsFUfrIGQ==/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> >, void (jami::ThreadLoop::*)(std::__ndk1::__thread_id&, std::__ndk1::function<bool ()>, std::__ndk1::function<void ()>, std::__ndk1::function<void ()>), jami::ThreadLoop*, std::__ndk1::reference_wrapper<std::__ndk1::__thread_id>, std::__ndk1::function<bool ()>, std::__ndk1::function<void ()>, std::__ndk1::function<void ()> > >(void*)) (SourceCode: /opt/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/c++/v1/thread:283)
#00 pc 00000000000b0fe8 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
#00 pc 0000000000050958 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/521"dht::http" When There Should Not Be Any "http"2021-04-26T18:01:11Zvindicatorr"dht::http" When There Should Not Be Any "http"```
/<pathTo>/jami-daemon/src/jamidht/jamiaccount.h:694:54: error: ‘http’ in namespace ‘dht’ does not name a type
694 | std::function<void(const dht::http::Response& response)>);
| ...```
/<pathTo>/jami-daemon/src/jamidht/jamiaccount.h:694:54: error: ‘http’ in namespace ‘dht’ does not name a type
694 | std::function<void(const dht::http::Response& response)>);
| ^~~~
/<pathTo>/jami-daemon/src/jamidht/jamiaccount.h:694:68: error: expected unqualified-id before ‘&’ token
694 | std::function<void(const dht::http::Response& response)>);
| ^
/<pathTo>/jami-daemon/src/jamidht/jamiaccount.h:694:68: error: expected ‘)’ before ‘&’ token
694 | std::function<void(const dht::http::Response& response)>);
| ~ ^
| )
/<pathTo>/jami-daemon/src/jamidht/jamiaccount.h:694:70: error: expected template-argument before ‘response’
694 | std::function<void(const dht::http::Response& response)>);
| ^~~~~~~~
/<pathTo>/jami-daemon/src/jamidht/jamiaccount.h:694:70: error: expected ‘>’ before ‘response’
/<pathTo>/jami-daemon/src/jamidht/jamiaccount.h:694:78: error: expected ‘;’ at end of member declaration
694 | std::function<void(const dht::http::Response& response)>);
| ^
| ;
/<pathTo>/jami-daemon/src/jamidht/jamiaccount.h:694:79: error: expected unqualified-id before ‘>’ token
694 | std::function<void(const dht::http::Response& response)>);
|
...
```
opendht
`$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -DOPENDHT_STATIC=OFF -DOPENDHT_TOOLS=ON -DOPENDHT_SYSTEMD=ON -DOPENDHT_LTO=ON -DOPENDHT_SANITIZE=ON -DOPENDHT_INDEX=ON -DOPENDHT_TESTS=OFF -DOPENDHT_DOCUMENTATION=OFF 2>&1 | tee cmake.log`
Does this relate to "http.cpp" not being built? Both proxies are off, thus OPENDHT_HTTP=off.
daemon
```
$ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --without-natpmp --without-upnp --disable-ringns 2>&1 | tee configure.log
$ DISABLE_CONTRIB_DOWNLOADS="TRUE" make 2>&1 | tee make.log
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/519Sometimes TLS connection fail cause of excessive EAGAIN2023-01-24T16:27:13ZSébastien BlinSometimes TLS connection fail cause of excessive EAGAIN```
[1618579385.330|27295|tls_session.cpp :887 ] [TLS] EAGAIN from transport, retry#98
[1618579385.340|27295|tls_session.cpp :887 ] [TLS] EAGAIN from transport, retry#99
[1618579385.350|27295|tls_session.cpp :887 ] [TLS] EAGAIN ...```
[1618579385.330|27295|tls_session.cpp :887 ] [TLS] EAGAIN from transport, retry#98
[1618579385.340|27295|tls_session.cpp :887 ] [TLS] EAGAIN from transport, retry#99
[1618579385.350|27295|tls_session.cpp :887 ] [TLS] EAGAIN from transport, retry#100
[1618579385.361|27295|tls_session.cpp :890 ] [TLS] excessive retry detected, aborting
[1618579385.361|27295|tls_session.cpp :898 ] [TLS] transport failure on tx: errno = 5
[1618579385.361|27295|tls_session.cpp :1162 ] [TLS] handshake failed: Error in the push function.
```Sébastien BlinSébastien Blinhttps://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/517Remove hacky underlyingIce()2021-12-29T18:52:33ZSébastien BlinRemove hacky underlyingIce()underlyingIce() is hacky. This method should not exists and the chain should be clean.
However this issue is quite complex, because the socket can be cut pretty everywhere in the chain and it should correctly close all the layer.
The m...underlyingIce() is hacky. This method should not exists and the chain should be clean.
However this issue is quite complex, because the socket can be cut pretty everywhere in the chain and it should correctly close all the layer.
The most hacky part is in TlsSocketEndpoint::ImplBackloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/516SDP/ICE - Parse an SDP that comply to RFC-52452021-07-09T14:46:39ZMohamed ChibaniSDP/ICE - Parse an SDP that comply to RFC-5245The SDP/ICE parser must be able to parse ICE candidates for component ID incremented per media. Example:
m=audio\
a=candidate:Hc0a80032 1 UDP 2130706431 192.168.0.50 53065 typ host\
a=candidate:Hc0a80032 2 UDP 2130706431 192.168.0.50 1...The SDP/ICE parser must be able to parse ICE candidates for component ID incremented per media. Example:
m=audio\
a=candidate:Hc0a80032 1 UDP 2130706431 192.168.0.50 53065 typ host\
a=candidate:Hc0a80032 2 UDP 2130706431 192.168.0.50 13033 typ host\
m=video\
a=candidate:Hc0a80032 1 UDP 2130706431 192.168.0.50 35060 typ host\
a=candidate:Hc0a80032 2 UDP 2130706431 192.168.0.50 32011 typ hostMohamed ChibaniMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/515Alsa: underrun issue2021-07-16T18:08:17ZSébastien BlinAlsa: underrun issuehttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/514Swarm: verify sync (import account or new devices)2021-04-19T13:21:38ZSébastien BlinSwarm: verify sync (import account or new devices)Sébastien BlinSébastien Blinhttps://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/512jamiaccount: multiple sendTextMessage must init only one ice request if no co...2021-04-19T13:21:33ZSébastien Blinjamiaccount: multiple sendTextMessage must init only one ice request if no connection with the peerIn JamiAccount::sendTextMessage ; requestSIPConnection() is called multiple times and this should only init one ICE, but it seems it's not the case
# Scenario
+ Add a connection between alice and bob
+ cut bob connectivity
+ alice send...In JamiAccount::sendTextMessage ; requestSIPConnection() is called multiple times and this should only init one ICE, but it seems it's not the case
# Scenario
+ Add a connection between alice and bob
+ cut bob connectivity
+ alice sends 4 messages
+ after timeout, it restarts a lot of conncetion + no response (cf erase after JAMI_WARN("Timeout when send a message, close current connection");)Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/511ICE components ID numbering - Comply to RFC-5245 and RFC-84452021-04-14T16:23:23ZMing Rui ZhangICE components ID numbering - Comply to RFC-5245 and RFC-8445Component ID must be incremented per media starting from 1 as specified in https://tools.ietf.org/html/rfc5245#section-15.1:
```
<component-id>: is a positive integer between 1 and 256 that
identifies the specific component of th...Component ID must be incremented per media starting from 1 as specified in https://tools.ietf.org/html/rfc5245#section-15.1:
```
<component-id>: is a positive integer between 1 and 256 that
identifies the specific component of the media stream for which
this is a candidate. It MUST start at 1 and MUST increment by 1
for each component of a particular candidate. For media streams
based on RTP, candidates for the actual RTP media MUST have a
component ID of 1, and candidates for RTCP MUST have a component
ID of 2. Other types of media streams that require multiple
components MUST develop specifications that define the mapping of
components to component IDs. See Section 14 for additional
discussion on extending ICE to new media streams.
```
Also in https://tools.ietf.org/html/rfc8445Ming Rui ZhangMing Rui Zhanghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/510Upnp Controller - Create instance only when needed2021-04-19T13:21:34ZMohamed ChibaniUpnp Controller - Create instance only when neededUPNP Cotroller instance used by the Account class (and derived classes) must be created only if needed. Currently, the creation is done in enableUpnp(bool) method which is called when the account data are stored or loaded. The required c...UPNP Cotroller instance used by the Account class (and derived classes) must be created only if needed. Currently, the creation is done in enableUpnp(bool) method which is called when the account data are stored or loaded. The required change is to particularly prevent creating UPNP controller instance when storing the account data.Mohamed ChibaniMohamed Chibanihttps://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/508plugins: add MACOSX ABI to plugin installation options2021-04-08T18:53:40ZAline Gondim Santosplugins: add MACOSX ABI to plugin installation optionsInstallation function needs to know host details to properly extract plugins libraries from the jpl archive.Installation function needs to know host details to properly extract plugins libraries from the jpl archive.Aline Gondim SantosAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/507Unable to kick local participant from rendez-vous2024-01-26T12:42:50ZPierre LespagnolUnable to kick local participant from rendez-vous# Scenario
- Bob join RDV-Bob (2 accounts same device)
- Bob join RDV-Alice
- Alice join RDV-Alice (2 accounts same device)
- Bob kick Alice from conference
# Expected result
- Alice is kicked from RDV-Alice
# Current result
- Alice is...# Scenario
- Bob join RDV-Bob (2 accounts same device)
- Bob join RDV-Alice
- Alice join RDV-Alice (2 accounts same device)
- Bob kick Alice from conference
# Expected result
- Alice is kicked from RDV-Alice
# Current result
- Alice is not kicked
# Logs
```
Invalid conference state in detach participant: current "ACTIVE_DETACHED" - expected "ACTIVE_ATTACHED"
```Pierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/506plugins: set handlers activation order2021-04-01T12:53:01ZAline Gondim Santosplugins: set handlers activation orderUser should be able to change the order each handler is called from the observable notify.User should be able to change the order each handler is called from the observable notify.BacklogAline Gondim SantosAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/505Update missing at the end of sub- conference2021-04-13T13:37:58ZPierre LespagnolUpdate missing at the end of sub- conference# Scenario
- Bob join Bob-RDV (2 accounts same device)
- Alice join Bob-RDV
- Bob create conference with Bob-RDV and Roger
- Bob ends conference
# Current result
- Alice doesn't receive the update and see remaining layout from Bob and R...# Scenario
- Bob join Bob-RDV (2 accounts same device)
- Alice join Bob-RDV
- Bob create conference with Bob-RDV and Roger
- Bob ends conference
# Current result
- Alice doesn't receive the update and see remaining layout from Bob and RogerPierre LespagnolPierre Lespagnol