Project

General

Profile

Anomalie #17437

Les fichiers volumineux ne sont pas capturés (Capture)

Added by Etienne FAMERY 4 months ago. Updated about 11 hours ago.

Status:
Intégré / Développé / Analysé
Priority:
0-Bloquant
Assignee:
Target version:
Start date:
06/14/2021
Due date:
10/07/2021
Tags Courrier:
Branche TMA

Description

Un fichier volumineux a été scanné par le service (380Mo/~500pages). Après paramétrage, la capture fonctionne, le LOT se trouve bien dans le dossier Done de Capture, les autres pdf sont consultables dans MaarchCourrier mais le pdf de 380Mo ne se trouve pas dans MaarchCourrier.


Related issues

Related to Backlog Courrier - Anomalie #17806: Impossible d'enregistrer un document très volumineuxPrêt à développer (S)2021-07-19

History

#2 Updated by Emmanuel DILLARD 4 months ago

  • Status changed from A qualifier to A étudier
  • Assignee changed from EDI PO to Florian AZIZIAN

#3 Updated by Florian AZIZIAN 4 months ago

  • Assignee changed from Florian AZIZIAN to Etienne FAMERY

#5 Updated by Florian AZIZIAN 4 months ago

  • Status changed from A étudier to Complément d'Informations

#6 Updated by Etienne FAMERY 3 months ago

  • Assignee changed from Etienne FAMERY to Florian AZIZIAN
  • Priority changed from 2-Sérieux to 0-Bloquant

Tests de l'import d'un fichier de 500Mo avec le module MaarchWSClient :

  • Test du paramétrage avec un fichier de 1Mo => import dans MaarchCourrier fonctionnel
  • Test avec le fichier de 500Mo => différentes erreurs liées à la config de php.ini retournées, après modification du post_max_size, upload_max_filesize et memory_size, aucune erreur retournée dans : logs apache, logs php, logs technique et php de MaarchCourrier et logs de MaarchCapture,

La seule information retournée est lors de l'exécution du script de Capture :

********************************************************************************
**                                Maarch Capture                              **
**  (c) since 2008 Maarch SAS                                                 **
********************************************************************************
[...]
Workflow initialized with id 'WMAARCH_SCAN_TO_MC-1624442042-1369719840'
Get first workflow step name...
Next step name is 'ImportFiles'
MaarchCapture step inputs: Array
(
    [0] => Directory
    [1] => Target
    [2] => Action
    [3] => MoveDirectory
)

MaarchCapture step: Array
(
    [positional] => Array
        (
        )

    [executable] => MaarchCapture.php
    [command] => Array
        (
            [opts] => Array
                (
                    [positional] => Array
                        (
                        )

                    [ConfigName] => Capture
                    [executable] => init
                    [BatchName] => MAARCH_SCAN_TO_MC
                )

            [name] => init
        )

)

Capture::processStep(ImportFiles)
control of /opt/maarch/MaarchCapture/files/maarchBD//5_GB.pdf
Capture::processStep(SendToMaarch)
Killed

#7 Updated by Emmanuel DILLARD 3 months ago

  • Project changed from Backlog Courrier to Backlog Capture
  • Status changed from Complément d'Informations to A étudier
  • Target version deleted (20.03 CD78)

#9 Updated by Emmanuel DILLARD 3 months ago

  • Due date changed from 06/21/2021 to 06/28/2021
  • Assignee changed from Florian AZIZIAN to Alex ORLUC

#10 Updated by Emmanuel DILLARD 3 months ago

  • Target version set to 1.8 (Stable)

#11 Updated by Alex ORLUC 3 months ago

  • Assignee changed from Alex ORLUC to Guillaume HEURTIER

#12 Updated by Emmanuel DILLARD 3 months ago

  • Status changed from A étudier to En cours

#13 Updated by Emmanuel DILLARD 3 months ago

  • Status changed from En cours to En cours (S)

#15 Updated by Guillaume HEURTIER 3 months ago

  • Project changed from Backlog Capture to Backlog Courrier
  • Status changed from En cours (S) to A tester
  • Assignee changed from Guillaume HEURTIER to Etienne FAMERY
  • Target version changed from 1.8 (Stable) to 20.03 CD78

#17 Updated by Ludovic ARAUJO 3 months ago

  • Status changed from A tester to En cours
  • Assignee changed from Etienne FAMERY to EDI PO

Nous avons constaté que la capture ce fait avec capturekofax,
La configuration du serveur a été édité : les ram php, le post_max_file_size et upload_max_size

Quentin aurai une idée de l'anomalie sur les fichier volumineux ?
Seule la pièce jointe volumineuse n'est pas ajoutée.

#19 Updated by Emmanuel DILLARD 3 months ago

  • Status changed from En cours to En cours (S)

#20 Updated by Emmanuel DILLARD 3 months ago

  • Due date changed from 06/28/2021 to 08/03/2021

#21 Updated by Emmanuel DILLARD 3 months ago

  • Status changed from En cours (S) to Complément d'Informations
  • Assignee changed from EDI PO to Ludovic ARAUJO

Le contournement a-t-il débloqué la situation ?

Si oui, nous cherchons une solution plus aboutie mais cela va prendre un certain temps.

#22 Updated by Quentin RIBAC 3 months ago

  • Assignee changed from Ludovic ARAUJO to Quentin RIBAC

#23 Updated by Quentin RIBAC 3 months ago

J’ai pu reproduire l’erreur avec un fichier volumineux (700Mo).

Le script de capture kofaxToMC génère des logs. Pour connaître leur emplacement :

  • voir dans la crontab la ligne appelant kofax_capture.sh
  • sur cette ligne, kofax_capture.sh doit être suivi d’un chemin d’un dossier
  • dans ce dossier il doit y avoir un dossier LogsKofaxToMC, les logs sont à cet endroit

Le log de l’erreur reproduite est :

user@maarch-pc$ cat ../../LogsKofaxToMC/kofax_capture_20210712-151820.log 
--- kofaxToMC ---

--- [1/1] /home/user/Documents/CD78/kofaxdocs/src/lot/17607_001.xml ---
Hash correct pour : /home/user/Documents/CD78/kofaxdocs/src/lot/17607_001_001.pdf
Hash correct pour : /home/user/Documents/CD78/kofaxdocs/src/lot/17607_001_002.pdf
injection du document principal ... (PDF) 
Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 990436236 bytes) in /home/user/Documents/CD78/kofaxToMC/php/main.php on line 234

À cette endroit du code il y a l’appel à base64_encode(file_get_contents($filename)). Ce qui pose problème : il faut charger en mémoire à la fois le contenu de $filename par file_get_contents puis ce contenu encodé en base64 par base64_encode. C’est un double chargement, de plus un fichier en base64 est toujours ~30% plus lourd que l’original, donc pour être sûr, il faudrait allouer, pour un fichier PDF de 500Mo, environ 1.3Go en plus de ce qui est actuellement alloué.

À voir si on peut fournir à la fonction base64_encode autre chose qu’un texte brut, pour n’avoir à allouer que la mémoire pour la base64 et non pour le fichier original.

#24 Updated by Quentin RIBAC 3 months ago

  • Status changed from Complément d'Informations to En cours (S)

#25 Updated by Quentin RIBAC 3 months ago

  • Status changed from En cours (S) to A livrer
  • Assignee changed from Quentin RIBAC to Ludovic ARAUJO

Un commit correctif du paquet kofaxToMC a été fait ici :

https://labs.maarch.org/deliveryteam/cd78/commit/13ca4d7d1e88b25eb36e9f677438683d7d914377

Au lieu de charger les fichiers en brut et en base64 puis en json, on prépare un stream du fichier avec un filtre d’encodage base64 qui n’est vraiment ouvert qu’au dernier moment, c’est-à-dire à la construction du json de la requête cURL.

Pour le déployer, se rendre dans le dossier d’installation actuel. Il s’agit normalement de /opt/maarch/modules/kofaxToMC, sinon voir le fichier référencé dans la crontab.

Vérifier que le code est à jour avec le commit 04684fb1988944d18a582c6569fe1dae0f7f13a4 (avant-dernier commit sur le dépôt) à l’aide de git log puis récupérer les sources avec git pull. Attention, il faut sauvegarder config.xml avant de mettre à jour.

Ceci fonctionne sur ma machine pour un pdf de 700Mo en document principal ou en pièce-jointe, cependant il a fallu mettre memory_limit=-1 dans le php.ini de apache2, et le chargement est très long à l’ouverture du courrier dans l’application, de l’ordre de la minute.

#26 Updated by Emmanuel DILLARD 2 months ago

  • Status changed from A livrer to A tester

#27 Updated by Emmanuel DILLARD about 2 months ago

  • Status changed from A tester to Complément d'Informations

#28 Updated by Emmanuel DILLARD about 2 months ago

  • Status changed from Complément d'Informations to Intégré / Développé / Analysé

#29 Updated by Ludovic ARAUJO about 2 months ago

Les correctifs ne permettent la résolution de l'anomalie.
A voir avec nous sur le serveur clients si vous le souhaitez

#30 Updated by Ludovic ARAUJO about 2 months ago

  • Status changed from Intégré / Développé / Analysé to A traiter
  • Assignee deleted (Ludovic ARAUJO)

#31 Updated by Emmanuel DILLARD about 2 months ago

  • Due date changed from 08/03/2021 to 08/16/2021
  • Status changed from A traiter to A étudier
  • Assignee set to Guillaume HEURTIER

#32 Updated by Emmanuel DILLARD about 2 months ago

  • Status changed from A étudier to Etude planifiée

#34 Updated by Emmanuel DILLARD about 2 months ago

  • Subject changed from Courrier capturé n'arrive pas dans MaarchCourrier to Les fichiers volumineux ne sont pas capturés (Capture)

#35 Updated by Emmanuel DILLARD about 2 months ago

  • Related to Anomalie #17806: Impossible d'enregistrer un document très volumineux added

#36 Updated by Emmanuel DILLARD about 1 month ago

  • Status changed from Etude planifiée to Prêt à développer (S)
  • Assignee deleted (Guillaume HEURTIER)

#37 Updated by Emmanuel DILLARD about 1 month ago

  • Status changed from Prêt à développer (S) to En cours (S)
  • Assignee set to Quentin RIBAC

#39 Updated by Emmanuel DILLARD about 1 month ago

  • Due date changed from 08/16/2021 to 08/20/2021

#40 Updated by GIT LAB 23 days ago

Commit ajouté sur la branche fix/17437/develop de MaarchCourrier
FIX #17437 TIME 1:30 revert to finfo::buffer where the new method was useless, added error handling for new method, removed “resource” mode for getMimeTypeAndFileSize()
https://labs.maarch.org/maarch/MaarchCourrier/commit/0f7fa47d2b55497ce8a011fc9a35f2554b1fe0f9

#41 Updated by Quentin RIBAC 23 days ago

  • Status changed from En cours (S) to A tester

#42 Updated by GIT LAB 23 days ago

Commit ajouté sur la branche fix/17437/develop de MaarchCourrier
FIX #17437 TIME 0 better error messages
https://labs.maarch.org/maarch/MaarchCourrier/commit/2b8b7681454afef5951f4b65aa5450ac651748b5

#43 Updated by GIT LAB 22 days ago

Commit ajouté sur la branche fix/17437/develop de MaarchCourrier
FIX #17437 TIME 0:10 added missing error handling
https://labs.maarch.org/maarch/MaarchCourrier/commit/eeb22be0405b5f7bec2c56ba953f2fb71f2ffd6d

#45 Updated by Emmanuel DILLARD 20 days ago

  • Due date changed from 08/20/2021 to 09/21/2021

#46 Updated by Emmanuel DILLARD 14 days ago

  • Target version changed from 20.03 CD78 to 20.03 (Restreint)
  • Tags Courrier Branche TMA added

#47 Updated by Emmanuel DILLARD 11 days ago

  • Target version changed from 20.03 (Restreint) to 20.03 CD78

#48 Updated by Emmanuel DILLARD 8 days ago

  • Due date changed from 09/21/2021 to 10/05/2021

#49 Updated by Emmanuel DILLARD 7 days ago

  • Due date changed from 10/05/2021 to 10/07/2021

#50 Updated by Quentin RIBAC about 11 hours ago

  • Status changed from A tester to Intégré / Développé / Analysé

Also available in: Atom PDF