vidjil issueshttps://gitlab.inria.fr/vidjil/vidjil/-/issues2024-01-31T13:47:58+01:00https://gitlab.inria.fr/vidjil/vidjil/-/issues/5230Error when opening access.log from admin page on app2024-01-31T13:47:58+01:00CHESNIN ClementError when opening access.log from admin page on appAprès la correction de https://gitlab.inria.fr/vidjil/vidjil/-/issues/5228, on a toujours un souci pour l'ouverture de du access.log nginx sur app. Ca fonctionne bien en local.
Voici la stack trace :
```
ERROR:root:Traceback (most recen...Après la correction de https://gitlab.inria.fr/vidjil/vidjil/-/issues/5228, on a toujours un souci pour l'ouverture de du access.log nginx sur app. Ca fonctionne bien en local.
Voici la stack trace :
```
ERROR:root:Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 944, in wrapper
ret = func(*func_args, **func_kwargs)
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 929, in wrapper
raise context["exception"]
File "/usr/local/lib/python3.8/dist-packages/py4web/core.py", line 908, in wrapper
context["output"] = func(*args, **kwargs)
File "/usr/share/vidjil/server/py4web/apps/vidjil/modules/vidjil_utils.py", line 73, in wrapper
result = func(*args, **kwargs)
File "/usr/share/vidjil/server/py4web/apps/vidjil/controllers/admin.py", line 96, in showlog
for row in reversed(file.readlines()) :
MemoryError
```
C'est lié à la taille du fichier de log : `-rw-r--r-- 1 root root 4050790122 Jan 30 15:50 access.log`
Idées de solutions (potentiellement cumulables):
- Faire une rotation de logs dans différents fichiers
- N'afficher qu'un certain nombre de lignes dans l'interface
Il faudrait sans doute aussi regarder dans les autres fichiers de log (notamment vidjil)Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5231Refacto .env and .env-default handling to prevent issue if .env is not define...2024-01-31T13:45:03+01:00CHESNIN ClementRefacto .env and .env-default handling to prevent issue if .env is not defined on local configC'est embêtant, parce qu'on a une erreur lorsqu'il n'y a rien dans le .env (ce qui est le cas par défaut)C'est embêtant, parce qu'on a une erreur lorsqu'il n'y a rien dans le .env (ce qui est le cas par défaut)Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5236Error when filtering sample by tag in compare sample2024-01-31T11:30:50+01:00CHESNIN ClementError when filtering sample by tag in compare sampleVu lors de #5234
Pour reproduire :
1. créer un set avec plusieurs samples, dont au moins un avec un tag
2. cliquer sur `Compare samples`
3. cliquer sur le tag
--> l'erreur `missing field id` apparait
Plus globalement, la method `cust...Vu lors de #5234
Pour reproduire :
1. créer un set avec plusieurs samples, dont au moins un avec un tag
2. cliquer sur `Compare samples`
3. cliquer sur le tag
--> l'erreur `missing field id` apparait
Plus globalement, la method `custom()` devrait être unit testée
![Screencast_from_2024-01-31_11-29-01](/uploads/033765827118b9a738b248e7fed8706a/Screencast_from_2024-01-31_11-29-01.webm)Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5181py4web; Is script create_clone_db_py working well ?2024-01-22T15:39:10+01:00THONIER Florianpy4web; Is script create_clone_db_py working well ?Make some tests to know if everything work well with new backend server.Make some tests to know if everything work well with new backend server.Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5156Get some metrics from a server2024-01-22T14:22:32+01:00THONIER FlorianGet some metrics from a serverTHinking about it with @mikael-s : A way to get some metrics is to use prometheus and grafana. And as by default Prometheus use web resquest to get metrics, a way to get it with security is to use vidjil API to ask, as admin. APi seem to...THinking about it with @mikael-s : A way to get some metrics is to use prometheus and grafana. And as by default Prometheus use web resquest to get metrics, a way to get it with security is to use vidjil API to ask, as admin. APi seem to be a good way for that.
I try to create a really small dockerized flask application that will execute API to ask metrics and serve them locally.
My quick overview failed since the API is incompatible with py4web (other issue/MR).
Is it a good way to do it ?Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5212Don't allow admin to create set for uncreated group2024-01-22T14:16:50+01:00THONIER FlorianDon't allow admin to create set for uncreated groupWhile testing API for group owner of created set, I saw a way to create set for every groups as an admin user, but also for unexistant group.
We need to make a better control before creation.
From API side, we should also add a way to...While testing API for group owner of created set, I saw a way to create set for every groups as an admin user, but also for unexistant group.
We need to make a better control before creation.
From API side, we should also add a way to stronger limit group choice.Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5183Py4web; update documentation2024-01-22T14:14:19+01:00THONIER FlorianPy4web; update documentationSome documentation need to be added and updated, on dev, usage, migration, ...Some documentation need to be added and updated, on dev, usage, migration, ...Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5192py4web; check that an email is send at error ticket occured2024-01-22T14:14:08+01:00THONIER Florianpy4web; check that an email is send at error ticket occuredWe should check if it still work from web2py to py4web.We should check if it still work from web2py to py4web.Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5186py4web; fix review server2024-01-22T14:13:34+01:00THONIER Florianpy4web; fix review serverSince conversion to py4web; job to start a review server don't work.
Job success, but opening link return to error nginx 404.
Proxy, conf.js, docker env ?Since conversion to py4web; job to start a review server don't work.
Job success, but opening link return to error nginx 404.
Proxy, conf.js, docker env ?Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5210Test external, add a server side for CGI/proxy that are not fully tested2024-01-22T14:12:36+01:00THONIER FlorianTest external, add a server side for CGI/proxy that are not fully testedFor the moment, our external tests are launch on client, and use CGI from db.vidjil.org.
This cause an error as we don't really test server cgi service. And indeed, py4web cgi don't work.
We need to add some tests on CGI on the serve...For the moment, our external tests are launch on client, and use CGI from db.vidjil.org.
This cause an error as we don't really test server cgi service. And indeed, py4web cgi don't work.
We need to add some tests on CGI on the server side (and on feature-s branches).Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5145Upload by network; merge create hard file and no symlink2024-01-19T19:03:58+01:00THONIER FlorianUpload by network; merge create hard file and no symlinkIf you use a network to load data and choose a preprocess with merge, the resulting file will be store as a real file and no as a symlink. In this case, it will take more space.If you use a network to load data and choose a preprocess with merge, the resulting file will be store as a real file and no as a symlink. In this case, it will take more space.Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/1647Surveiller périodiquement les erreurs / tickets sur le serveur + nettoyer2024-01-19T18:42:33+01:00Vidjil TeamSurveiller périodiquement les erreurs / tickets sur le serveur + nettoyerJe viens de faire une passe sur les tickets de juin 2015. J'ai supprimé tous les tickets qui me semblent être résolus (ou au moins pour lesquels il y a un message d'erreur maintenant plus explicite, qui sera en log.error()) et donc qui a...Je viens de faire une passe sur les tickets de juin 2015. J'ai supprimé tous les tickets qui me semblent être résolus (ou au moins pour lesquels il y a un message d'erreur maintenant plus explicite, qui sera en log.error()) et donc qui apparaitront dans le log et non pas en erreur serveur.
On devrait le faire peut-être plus systématiquement :-)
***
Fait aussi manuellement pour mai, et pour 15-30 avril. -> depuis le 15 avril, il reste moins de 10 tickets sans explication
En passant, je suis tombé sur *beaucoup* d'erreurs venant directement de nos tests (moi y compris). Quand on n'est pas propre et qu'on provoque des erreurs sur le serveur (hum...)... on doit ensuite effacer sa forfaiture dans les erreurs :-)
Pour les trucs plus vieux, j'ai tout simplement... supprimé. Rien ne sert d'avoir des tickets si on ne les regarde pas, et cela gène la "vue par exception" si on a des vieux trucs qui n'arrivent pas.
***
Pas beaucoup d'erreurs en oct/nov 2015.
Juste "patients.py: can't compare datetime.date to NoneType" qui revient de temps en temps.
***
Ormis les erreurs de taille de fichier, ou d'indispo de BDD, les erreurs qui semblent revenir sont:
Une (ou des) délétion(s) de patients qui n'existent pas (=> mettre un controle)
can't compare datetime.date to NoneType
***
merci Ryan d'avoir regardé cela !
***
De rien. Je n'ai pas encore nettoyé les tickets car je ne savais pas si quelqu'un voudrait faire une passe dessus :)
***
@magiraud @RyanHerb @mikael-s @DuezRyan HerbertRyan Herbert2024-03-01https://gitlab.inria.fr/vidjil/vidjil/-/issues/2358task.py: Mécanisme flexible pour lancer des traitements annexes non-bloquants2024-01-19T18:31:51+01:00Mathieu Giraudtask.py: Mécanisme flexible pour lancer des traitements annexes non-bloquants@mikael-s, à propos de #1744, pense que :
- Marc a fait un mécanisme plutôt générique pour lancer via `task.py` des traitements en utilisant les scheduler, avec retour asynchrone.
- Cela pourrait être utilisé pour #1469.
Et cela po...@mikael-s, à propos de #1744, pense que :
- Marc a fait un mécanisme plutôt générique pour lancer via `task.py` des traitements en utilisant les scheduler, avec retour asynchrone.
- Cela pourrait être utilisé pour #1469.
Et cela pourrait aussi servir à d'autres choses (Et pour "Compare patients", #1508, qu'est-ce qui avait été trouvé ?).
Bref, à partir des choses faites par Marc, pourrait-on avoir un mécanisme générique pour ce type de choses (avec un truc générique dans ~"server-task.py", et un autre dans ~client) ?
cc @RyanHerbWeb 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/2241Titre des samples lors de la comparaison de différentes analyses d'un même fi...2024-01-19T18:30:10+01:00Mikaël SalsonTitre des samples lors de la comparaison de différentes analyses d'un même fichier (compare samples)Lorsqu'on compare des résultats d'un même sample lancés à différentes époques (on compare donc l'évolution de Vidjil), les noms des samples dans le client ne sont pas du tout clairs… puisqu'il s'agit toujours du même.
Il faudrait donc m...Lorsqu'on compare des résultats d'un même sample lancés à différentes époques (on compare donc l'évolution de Vidjil), les noms des samples dans le client ne sont pas du tout clairs… puisqu'il s'agit toujours du même.
Il faudrait donc modifier temporairement les noms des samples pour y mettre une notion de date.
cc @magiraud @RyanHerbWeb 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5162Contrôleur pour supprimer les données associées à un compte2024-01-18T14:50:43+01:00Mikaël SalsonContrôleur pour supprimer les données associées à un compteIl faudrait pouvoir supprimer toutes les données associées à un compte.
À faire avec prudence néanmoins quand l'utilisateur appartient à un groupe commun.
On se pose la question du RGPD : les données uploadées et analysées sont-elles de...Il faudrait pouvoir supprimer toutes les données associées à un compte.
À faire avec prudence néanmoins quand l'utilisateur appartient à un groupe commun.
On se pose la question du RGPD : les données uploadées et analysées sont-elles des données personnelles et soumises au RGPD (ie. si un utilisateur nous demande à tout supprimer de ce qu'il a uploadé est-on obligé de le faire, a fortiori quand il est dans un groupe) ?https://gitlab.inria.fr/vidjil/vidjil/-/issues/5198Speed up cypress ci jobs2024-01-18T10:12:44+01:00THONIER FlorianSpeed up cypress ci jobs* [ ] improve docker build of testing images
* [ ] reduce time of starting of server
* [ ] Pull cypress image at the same time that other images* [ ] improve docker build of testing images
* [ ] reduce time of starting of server
* [ ] Pull cypress image at the same time that other imagesDev-cihttps://gitlab.inria.fr/vidjil/vidjil/-/issues/5211CGI, custom_fuse, workers: unify ?2024-01-10T17:54:22+01:00THONIER FlorianCGI, custom_fuse, workers: unify ?Discuss with @clement.chesnin : We have 3 ways to make call to softwares on our server:
* CGI by nginx
* custom fuse with an ad-hoc server, transfert by py4web
* task with workers
At least CGI and custom_fuse could be unify in a same a...Discuss with @clement.chesnin : We have 3 ways to make call to softwares on our server:
* CGI by nginx
* custom fuse with an ad-hoc server, transfert by py4web
* task with workers
At least CGI and custom_fuse could be unify in a same ad-hoc server ? Other option ?Web 2024.04https://gitlab.inria.fr/vidjil/vidjil/-/issues/5205custom fuse should return name of sample if only one sample present2024-01-08T15:58:49+01:00THONIER Floriancustom fuse should return name of sample if only one sample presentWhen we open a custom fuse and when multiple samples is present, we have name of samples present in timeline, but not if we call only one sample. In this case, the `generic_info` value is set to `Sample X` where X is the number of sample...When we open a custom fuse and when multiple samples is present, we have name of samples present in timeline, but not if we call only one sample. In this case, the `generic_info` value is set to `Sample X` where X is the number of sample.
I suggest to modify function `get_custom_data` from default controller to adapt this value.https://gitlab.inria.fr/vidjil/vidjil/-/issues/5199Add missing controllers unit tests2023-12-21T17:05:47+01:00CHESNIN ClementAdd missing controllers unit testsIn #5179, some unit tests were added. However, some functions/controllers were not added due to a lack of time. We also had issues with some tests implementation. Here is a list of the missing tests :
- [ ] admin.py controller
- [ ] ad...In #5179, some unit tests were added. However, some functions/controllers were not added due to a lack of time. We also had issues with some tests implementation. Here is a list of the missing tests :
- [ ] admin.py controller
- [ ] add tests for make_backup
- [ ] add tests for load_backup
- [ ] add tests for repair
- [ ] add tests for reset_workers
- [ ] add some more tests for repair missing files
- [ ] default.py controller
- [ ] add tests for init_db
- [ ] add tests for init_db_form
- [ ] add tests for get_custom_data
- [ ] add tests for get_analysis
- [ ] add tests for get_analysis
- [ ] add tests for stop_impersonate
- [ ] file.py controller
- [ ] add tests for restart_pre_process
- [ ] my_account.py controller
- [ ] add tests for index
- [ ] add tests for jobs
- [ ] proxy.py controller
- [ ] add tests for all methods
- [ ] results_file.py controller
- [ ] add tests for run_all_patients
- [ ] add tests for info
- [ ] add tests for download
- [ ] sample_set.py controller
- [ ] add tests for custom
- [ ] add tests for confirm
- [ ] add tests for delete
- [ ] add tests for permission
- [ ] add tests for change_permission
- [ ] add tests for get_sample_set_list
- [ ] add tests for auto_complete
- [ ] should we test stats methods ?
- [ ] segmenter.py controller
- [ ] add tests for all methods
- [ ] tag.py controller
- [ ] add tests for all methods
After this, most of the endpoints will be tested.
A next step could be to check the coverage in order to identify missing tests. Another step would be to add unit tests for modules too?https://gitlab.inria.fr/vidjil/vidjil/-/issues/5109get reads; use zgrep before to minimize process2023-11-09T11:18:46+01:00Thonier Florianget reads; use zgrep before to minimize processLancé d'abord un `zgrep -B1 -A2 --no-group-separator $seq` (et son reverse) avant de faire le vidjil-algo permettrait de réduire le temps de processus.
@mikael-s : "Voir aussi si on spécifie le locus"Lancé d'abord un `zgrep -B1 -A2 --no-group-separator $seq` (et son reverse) avant de faire le vidjil-algo permettrait de réduire le temps de processus.
@mikael-s : "Voir aussi si on spécifie le locus"