jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2019-09-10T18:40:32Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/97replace restbed by restinio2019-09-10T18:40:32ZAdrien Béraudreplace restbed by restinio# Parts
+ OpenDHT: https://github.com/savoirfairelinux/opendht/pull/403 (merged)
+ Jami-daemon: https://review.jami.net/#/c/ring-daemon/+/11959/ (in review)
# Tasks
+ ~~[Find an alternative](https://github.com/binarytrails/ring-for-th...# Parts
+ OpenDHT: https://github.com/savoirfairelinux/opendht/pull/403 (merged)
+ Jami-daemon: https://review.jami.net/#/c/ring-daemon/+/11959/ (in review)
# Tasks
+ ~~[Find an alternative](https://github.com/binarytrails/ring-for-the-web/tree/master/Server/Cpp#libraries)~~
+ ~~Test async over a threadpool~~
+ ~~Basic methods & threading~~
+ ~~Compile OpenDHT in c++14~~
+ ~~[Add RESTinio to OpenDHT](https://github.com/binarytrails/opendht/tree/proxy_restinio)~~
+ ~~[Fix flush happening after async scope](https://github.com/Stiffstream/restinio/issues/22)~~
+ ~~Server: Get,Put,Info,Stats,Options,PutEncrypted,PutSigned,Subscribe,Filter,Listen,Push~~
+ ~~Server: Cancel disconnected listeners by [detecting a closed connection](https://github.com/Stiffstream/restinio/issues/28), Replace Thread~~
+ ~~Server: Replace Scheduler task by Asio Timer making the entire server on one io_context that is run on one thread.~~
+ ~~Make an async RESTinio client with callbacks & integrate http_parser~~
+ ~~Rewrite client side with an in-house std::async client library~~
+ ~~Adapt and test the behavior of proxy client to new async design~~
+ ~~Verify that keep alive is working~~
+ ~~Patch for [ISSUE-552](https://git.jami.net/savoirfairelinux/ring-client-android/issues/552): Configure the server to send keep alive every X min when X < 15 min)~~
+ ~~[Make the RESTful API backward compatible to non-standard HTTP methods](https://github.com/Stiffstream/restinio/issues/26)~~
+ ~~[Redirect server logging](https://github.com/savoirfairelinux/opendht/pull/403/commits/330ad8ed120d35ecaa76446fdd36796ac2fecdfb)~~
+ ~~IPV6 support: client & [server](https://github.com/Stiffstream/restinio/issues/30)~~
+ ~~Make dhtproxytests pass~~
+ ~~Add docker setup for restinio & http_parser fork for Travis-CI~~
+ ~~Benchmark the proxy server~~
+ ~~Replace Jami-daemon nameserver RESTbed by new OpenDHT Async Client~~
+ ~~Add OpenSSL to OpenDHT CMake & Autotools~~
+ ~~Implement OpenSSL in http lib (bridge GNUTLS Identity/Cert to OpenSSL in Asio)~~
+ ~~Implement HTTPS in DHTProxy (upstream is HTTP)~~
+ ~~Use HTTP or HTTPS depending on generated dht:crypto:Identity (-i)~~
+ ~~Write Docker files for OpenDHT with Travis CI~~
+ ~~Integrate to the daemon autotools build system along with contribs (fmt, http_parser, restinio, ssl)~~
+ ~~Cross-compile on Jenkins: Linux, Arm, OSx, Windows~~
# Benchmark
10'000 requests with concurrency of 20 requests
Compiled with:
```
cmake -DOPENDHT_TESTS=ON -DOPENDHT_PROXY_SERVER=ON -DOPENDHT_PROXY_CLIENT=ON -DCMAKE_INSTALL_PREFIX=/usr -DOPENDHT_PROXY_SERVER_IDENTITY=ON -DOPENDHT_DOCUMENTATION=Off -DOPENDHT_PUSH_NOTIFICATIONS=ON -DCMAKE_BUILD_TYPE=Release ../
```
**Summary**
- max_pipelined_requests: 16
- concurrent_accepts_count: 15
| REST framework | Requests per second |
| ------ | ------ |
| RESTbed (multi-threded) | 12'677 |
| RESTinio (one io_context thread) | 18'834 |
| RESTinio (io_context on thread pool) | 12'719 |
- max_pipelined_requests: 7
- concurrent_accepts_count: 6
| REST framework | Requests per second |
| ------ | ------ |
| RESTbed (multi-threded) | 12'677 |
| RESTinio (one io_context thread) | 17'472 |
| RESTinio (io_context on thread pool) | 11'800 |
**Restbed**: multi-threaded
```
Server Software:
Server Hostname: 127.0.0.1
Server Port: 8080
Document Path: /
Document Length: 180 bytes
Concurrency Level: 20
Time taken for tests: 0.789 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 2870000 bytes
HTML transferred: 1800000 bytes
Requests per second: 12677.48 [#/sec] (mean)
Time per request: 1.578 [ms] (mean)
Time per request: 0.079 [ms] (mean, across all concurrent requests)
Transfer rate: 3553.16 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 0.2 1 3
Processing: 0 1 0.4 1 13
Waiting: 0 1 0.3 1 10
Total: 1 2 0.5 1 13
WARNING: The median and mean for the total time are not within a normal deviation
These results are probably not that reliable.
Percentage of the requests served within a certain time (ms)
50% 1
66% 1
75% 2
80% 2
90% 2
95% 2
98% 3
99% 4
100% 13 (longest request)
```
**Restinio**
- max_pipelined_requests: 16
- concurrent_accepts_count: 15
one thread for one io_context
```
Server Software: RESTinio
Server Hostname: 127.0.0.1
Server Port: 8080
Document Path: /
Document Length: 172 bytes
Concurrency Level: 20
Time taken for tests: 0.531 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 3130000 bytes
HTML transferred: 1720000 bytes
Requests per second: 18833.85 [#/sec] (mean)
Time per request: 1.062 [ms] (mean)
Time per request: 0.053 [ms] (mean, across all concurrent requests)
Transfer rate: 5756.83 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.2 0 3
Processing: 0 1 0.3 1 7
Waiting: 0 1 0.3 1 6
Total: 1 1 0.4 1 8
Percentage of the requests served within a certain time (ms)
50% 1
66% 1
75% 1
80% 1
90% 1
95% 2
98% 2
99% 2
100% 8 (longest request)
```
io_context on thread pool
```
Server Software: RESTinio
Server Hostname: 127.0.0.1
Server Port: 8080
Document Path: /
Document Length: 172 bytes
Concurrency Level: 20
Time taken for tests: 0.786 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 3130000 bytes
HTML transferred: 1720000 bytes
Requests per second: 12718.92 [#/sec] (mean)
Time per request: 1.572 [ms] (mean)
Time per request: 0.079 [ms] (mean, across all concurrent requests)
Transfer rate: 3887.72 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 0.2 1 3
Processing: 0 1 0.7 1 14
Waiting: 0 1 0.6 1 14
Total: 1 2 0.8 1 15
WARNING: The median and mean for the total time are not within a normal deviation
These results are probably not that reliable.
Percentage of the requests served within a certain time (ms)
50% 1
66% 1
75% 1
80% 2
90% 2
95% 3
98% 4
99% 5
100% 15 (longest request)
```
- max_pipelined_requests: 7
- concurrent_accepts_count: 6
one thread for one io_context
```
Server Software: RESTinio
Server Hostname: 127.0.0.1
Server Port: 8080
Document Path: /
Document Length: 172 bytes
Concurrency Level: 20
Time taken for tests: 0.572 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 3130000 bytes
HTML transferred: 1720000 bytes
Requests per second: 17472.10 [#/sec] (mean)
Time per request: 1.145 [ms] (mean)
Time per request: 0.057 [ms] (mean, across all concurrent requests)
Transfer rate: 5340.59 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.2 0 7
Processing: 0 1 0.4 1 8
Waiting: 0 1 0.3 1 7
Total: 1 1 0.5 1 9
Percentage of the requests served within a certain time (ms)
50% 1
66% 1
75% 1
80% 1
90% 1
95% 2
98% 2
99% 2
100% 9 (longest request)
```
io_context on thread pool
```
Server Software: RESTinio
Server Hostname: 127.0.0.1
Server Port: 8080
Document Path: /
Document Length: 172 bytes
Concurrency Level: 20
Time taken for tests: 0.847 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 3130000 bytes
HTML transferred: 1720000 bytes
Requests per second: 11800.02 [#/sec] (mean)
Time per request: 1.695 [ms] (mean)
Time per request: 0.085 [ms] (mean, across all concurrent requests)
Transfer rate: 3606.84 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 0.4 1 6
Processing: 0 1 1.0 1 17
Waiting: 0 1 0.8 1 16
Total: 1 2 1.1 1 19
Percentage of the requests served within a certain time (ms)
50% 1
66% 1
75% 2
80% 2
90% 3
95% 4
98% 6
99% 7
100% 19 (longest request)
```Iteration 15Vsevolod IvanovVsevolod Ivanovhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/165H264 bug under Windows 102019-10-07T18:39:29ZFernanda MachadoH264 bug under Windows 10I'm having a huge problem using H264 video codec under Windows 10. It works for a while and after 1min or so it freezes the image. If I turn the image off and on again it works again, but won't last long.
I manage to solve that using the...I'm having a huge problem using H264 video codec under Windows 10. It works for a while and after 1min or so it freezes the image. If I turn the image off and on again it works again, but won't last long.
I manage to solve that using the VP8 codec, but it has a lower quality.
FYI, I'm running it on an Omnen HP, i7-7700HQ 2.8Ghz, 16Gb Ram, NVidia Geforce GTX 1050. I believe this should be enough. Also, I use ManyCam to join 4 webcams.
I hope I'm in the right place to ask for some help, as I really intend to use Jami to teach my online piano lessons.Iteration 16 (POC prep)Andreas TraczykAndreas Traczykhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/163Can't search amarok@ns.jami.net2019-09-28T15:10:48ZSébastien BlinCan't search amarok@ns.jami.netIteration 16 (POC prep)Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/159Clean logs from jams + split account2019-10-07T17:43:14ZSébastien BlinClean logs from jams + split accountIteration 16 (POC prep)https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/156[Split account]Backup account with password is broken2019-09-28T15:11:02ZSébastien Blin[Split account]Backup account with password is brokenIteration 16 (POC prep)Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/155Jams: Auth error should stop account creation2019-09-28T15:11:04ZSébastien BlinJams: Auth error should stop account creationAnd a deadlock occursAnd a deadlock occursIteration 16 (POC prep)Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/154Account manager: new account is generated when reloading the daemon with a Ja...2019-09-28T15:10:50ZSébastien BlinAccount manager: new account is generated when reloading the daemon with a Jams account (and previous one is removed)Iteration 16 (POC prep)Adrien BéraudAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/153[jami-account] non-functional shared_ptr logger2019-09-28T15:10:56ZVsevolod Ivanov[jami-account] non-functional shared_ptr loggerlogger passed to opendht, no logs present in std outlogger passed to opendht, no logs present in std outIteration 16 (POC prep)Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/152[Account Split]All accounts scrapped if ctrl+c is pressed during frozen conn...2019-09-28T15:11:03ZSébastien Blin[Account Split]All accounts scrapped if ctrl+c is pressed during frozen connection to JAMSIteration 16 (POC prep)Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/151[upnp]Connectivity change segfault sometimes2019-09-19T15:58:23ZSébastien Blin[upnp]Connectivity change segfault sometimesIteration 16 (POC prep)Eden AbitbolEden Abitbolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/149[opendht] handle 100-continue in http request2019-09-17T14:41:30ZSébastien Blin[opendht] handle 100-continue in http requesthttps://github.com/savoirfairelinux/opendht/pull/436https://github.com/savoirfairelinux/opendht/pull/436Iteration 16 (POC prep)Vsevolod IvanovVsevolod Ivanovhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/148[opendht] custom request lookups like https://whatever doesn't work + double ...2019-09-17T14:41:38ZSébastien Blin[opendht] custom request lookups like https://whatever doesn't work + double scheme- ~~double prefix due to https enforcing~~
- ~~debug https lookup issue without the forcing the https prefix~~
https://review.jami.net/c/ring-daemon/+/12541
fixed with: https://github.com/savoirfairelinux/opendht/pull/436- ~~double prefix due to https enforcing~~
- ~~debug https lookup issue without the forcing the https prefix~~
https://review.jami.net/c/ring-daemon/+/12541
fixed with: https://github.com/savoirfairelinux/opendht/pull/436Iteration 16 (POC prep)Vsevolod IvanovVsevolod Ivanovhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/147[Split account]Import from device crash on multiple platforms2019-09-28T15:10:58ZSébastien Blin[Split account]Import from device crash on multiple platformsIteration 16 (POC prep)Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/175im::sendSipMessage race condition & hang on PJDialogLock2019-11-13T22:26:16ZSébastien Blinim::sendSipMessage race condition & hang on PJDialogLockSometimes when a SIP call is answering, pjsip seems to hang on a lock.
This will needs some investigation, for now, just use try_lockSometimes when a SIP call is answering, pjsip seems to hang on a lock.
This will needs some investigation, for now, just use try_lockNew release 1Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/169video bandwidth auto-adapt2019-11-18T15:30:14ZAdrien Béraudvideo bandwidth auto-adaptNew release 1Pierre LespagnolPierre Lespagnol2019-10-31https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/168Preview not stopped when conference is paused2020-10-09T19:53:38ZAdrien BéraudPreview not stopped when conference is pausedNew release 1Pierre LespagnolPierre Lespagnol2019-10-21https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/150[JAMS] Revoke device doesn't work2021-04-19T14:29:51ZSébastien Blin[JAMS] Revoke device doesn't workNew release 1Adrien BéraudAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/231HW nvidia - Rotation is not handled properly during a call when switching camera2021-01-28T15:48:49ZCyrille BéraudHW nvidia - Rotation is not handled properly during a call when switching camera- Activate HW acceleration on Linux/Jami
- Make a call (phone vertically) (android)
- switch camera- Activate HW acceleration on Linux/Jami
- Make a call (phone vertically) (android)
- switch cameraIteration 18Adrien BéraudPierre LespagnolAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/229EPIC - Improve video quality for weak connections2020-06-29T14:11:47ZGuillaume HellerEPIC - Improve video quality for weak connectionsThe video quality should be good (ideally without any visible glitch) even on weak ADSL connexions (800 kbps upload or less).
We first need to analyze and characterize the quality issues experienced by users on these types of connections...The video quality should be good (ideally without any visible glitch) even on weak ADSL connexions (800 kbps upload or less).
We first need to analyze and characterize the quality issues experienced by users on these types of connections. Then suggest and implement solutions adapted to the context.Iteration 18Pierre LespagnolMohamed ChibaniPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/223Audio lost after 5min2020-08-14T17:10:41ZGuillaume HellerAudio lost after 5minIn some cases (not identified yet), the audio is lost exactly after 5min.
It can also happens that the video freezes, but the audio remains.In some cases (not identified yet), the audio is lost exactly after 5min.
It can also happens that the video freezes, but the audio remains.Iteration 18Mohamed ChibaniMohamed Chibani