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/234Random crash during call2020-07-10T14:12:12ZAdrien BéraudRandom crash during call[crash_android.txt](/uploads/cc39b2ead6d0933625209aac0a62b021/crash_android.txt)[crash_android.txt](/uploads/cc39b2ead6d0933625209aac0a62b021/crash_android.txt)Iteration 18Sébastien BlinSébastien Blinhttps://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/230Contacts are not displayed after account creation from the DHT2020-06-18T19:54:46ZCyrille BéraudContacts are not displayed after account creation from the DHTIteration 18Sébastien BlinAdrien BéraudKateryna KostiukMing Rui ZhangSébastien Blin