Projet

Général

Profil

Actions

Bug #2807

fermé

OutOfMemory sur une réindexation totale

Ajouté par Ludovic Bertin il y a environ 12 ans. Mis à jour il y a plus de 11 ans.

Statut:
Closed
Priorité:
Urgent
Assigné à:
Catégorie:
Moteur de recherche
Début:
04/01/2012
Echéance:
% réalisé:

90%

Temps estimé:
Navigateur:
Tous
Votre version de Silverpeas:
5.8
Système d'exploitation:
Votre base de données:
Toutes
Livraison en TEST:
Livraison en PROD:

Description

l'intranet contient de grosses quantité de données et notamment des pièces jointes très lourdes (proches de 100Mo la pièce jointe).
Lors de la réindexation d'une GED avec de tels fichiers, un OutOfMemory survient sur la Heap Space Memory.

Après analyse du code, il apparait que le traitement de l'indexation du fichier déclenche la génération d'un Thread, qui est supprimé des que l'indexation du fichier est terminée.
Mais dans le cas de grosses pièces jointes, le nombre de thread devient trop important et la mémoire allouée grimpe vite, dans le pire des cas 100Mo x nb Threads

Il faudrait donc au choix :
  • limiter le nombre de threads via un Semaphore
  • plus propre : gérér le addFile via une queue JMS
Pour info le cheminement actuel :
  • IndexManager.addFile
  • appelle getReader(FileDescription)
  • fait appel a Parser.getReader()
  • crée un PipedReader
  • crée un thread ParserThread
Actions

Formats disponibles : Atom PDF