Erreur du service fluidPrices
Message de Cozy
nous avons observé des logs de cette forme lors de l'exécution du service fluidPrices de l'app ecolyo
2023-10-11T00:49:11.021Z time="2023-10-11T00:49:11.019Z" level=error msg="'Error creating new createdPrice:
{\"message\":\"request to https://jalhassi.cozygrandlyon.cloud/data/com.grandlyon.ecolyo.fluidsprices/ failed, reason: connect
EMFILE 164.132.16.217:443 - Local (undefined:undefined)\",\"type\":\"system\",\"errno\":\"EMFILE\",\"code\":\"EMFILE\"}"
domain=jalhassi.cozygrandlyon.cloud job_id=096e291857b71fbd0a83e5d4ac4e48e8 name=fluidsPrices nspace=jobs slug=ecolyo worker_id=service/9
j'en ai des traces déjà en juillet, ce n'est donc pas directement lié à la toute dernière version d'écolyo. Le message EMFILE me fait penser qu'on atteint peut-etre la limite d'ouverture de nombre de fichiers (comprendre handler, y compris les accès réseau, donc) Pour l'exécution des services, nous utilisons un environnement contraint (nsjail) pour éviter les débordements et il est particulièrement bridé. En particulier, la limite de nombre de fichiers ouverts est fixée à 128. c'est peu mais généralement suffisant.
Est-ce qu'il y aurait dans le code de ce service quelque chose qui expliquerait qu'on ouvre plein de fichiers/appels réseau en parallèle, jusqu'à une centaine ? (je compte qu'il y en a quelques uns forcément ouverts par le process node qui exécute le service)
on me souffle dans l'oreillette de faire en particulier attention au parallélisme de ces endroits :
- https://forge.grandlyon.com/web-et-numerique/factory/llle_project/ecolyo/-/blob/dev/src/targets/services/fluidsPrices.ts#L51-105
- https://forge.grandlyon.com/web-et-numerique/factory/llle_project/ecolyo/-/blob/dev/src/targets/services/fluidsPrices.ts#L157-191
- https://forge.grandlyon.com/web-et-numerique/factory/llle_project/ecolyo/-/blob/dev/src/targets/services/fluidsPrices.ts#L287-329