Projet

Général

Profil

Actions

Anomalie #16513

ouvert

[Versement ] Trop de fichiers ouverts lors du traitement des transferts

Ajouté par Cyril VAZQUEZ il y a plus de 3 ans. Mis à jour il y a 8 mois.

Statut:
R&D - A étudier
Priorité:
2-Sérieux
Assigné à:
Version cible:
Début:
25/02/2021
Echéance:
Tags RM:

Description

Lorsque le service de traitement des bordereaux de transfert prend en charge un nombre important de ressources à déposer (beaucoup de bordereaux ou un bordereau avec beaucoup de fichiers joints), le processus se termine en erreur, indiquant que le nombre maximum de fichiers ouverts simultanément a été atteint.

Ce problème existe depuis que les échanges de données utilisent des pointeurs de fichier au lieu d'un chargement en mémoire.
Par défaut, la imite du nombre de fichiers ouverts simultanément (par fopen) par un processus est de 1024.

Il faut déjà donc prendre en compte cette limitation pour les lots importants en augmentant la limite système : https://www.tecmint.com/increase-set-open-file-limits-in-linux/

Nous devons aussi vérifier que les fichiers ouverts pour un bordereau sont fermés après traitement de celui-ci.
Le processus est le suivant:

  • medona/archiveTransfer::processBatch()
    pour chaque bordereau
    • appelle process()
  • medona/archiveTransfer::process()
    pour chaque bordereau
    • appelle le contrôleur d'empaquetage associé au schéma (SEDA2 par exemple) qui retourne un tableau d'archives (et leurs pointeurs de ressource) et un tableau de relations
    • boucle sur les archives pour réaliser le dépôt
    • boucle sur les relations pour les déclarer

Il faut vérifier que les pointeurs vers les ressources des archives soient fermés après dépôt.

Actions

Formats disponibles : Atom PDF