Projet

Général

Profil

Anomalie #26745

[Transfert] Erreur au téléversement de paquets volumineux

Ajouté par Cyril VAZQUEZ il y a 7 mois. Mis à jour il y a environ un mois.

Statut:
Clôturé
Priorité:
1-Majeur
Assigné à:
Version cible:
Début:
08/06/2023
Echéance:
Tags RM:
2.8.X, 2.9.X

Description

Le téléversement de paquet SEDA/Medona compressés de plus de 2Go provoque une erreur :

 [Fri Sep 29 13:58:00.914406 2023] [php7:error] [pid 817] [client 192.168.x.x:50746] PHP Fatal error: Allowed memory size of 2147483648 bytes exhausted (tried to allocate 3140142568 bytes) in /var/www/laabs/src/bundle/medona/Connectors/Zip.php on line 106, referer: https://xxxxx/medona/list
ksnip_20231002-182936.png (50,1 ko) ksnip_20231002-182936.png Jérôme BOUCHER, 02/10/2023 18:30
18393

Historique

#2 Mis à jour par Cyril VAZQUEZ il y a 7 mois

  • Fichier import_api_7.JPG supprimé

#3 Mis à jour par Cyril VAZQUEZ il y a 7 mois

  • Fichier depot_API_3Go_1.JPG supprimé

#4 Mis à jour par Cyril VAZQUEZ il y a 7 mois

  • Fichier depot_API_3Go_2.JPG supprimé

#5 Mis à jour par Cyril VAZQUEZ il y a 7 mois

  • Fichier depot_API_150Mo_2.JPG supprimé

#6 Mis à jour par Cyril VAZQUEZ il y a 7 mois

  • Fichier depot_API_150Mo_1.JPG supprimé

#7 Mis à jour par Cyril VAZQUEZ il y a 7 mois

  • Fichier depot_API_500Mo_1.JPG supprimé

#8 Mis à jour par Cyril VAZQUEZ il y a 7 mois

  • Fichier test_20230926_1_2.JPG supprimé

#9 Mis à jour par Cyril VAZQUEZ il y a 7 mois

  • Fichier test_20230926_1_1.JPG supprimé

#10 Mis à jour par Cyril VAZQUEZ il y a 7 mois

  • Fichier test_20230926_1_3.JPG supprimé

#11 Mis à jour par Cyril VAZQUEZ il y a 7 mois

  • Fichier test_20230929_1_1.JPG supprimé

#12 Mis à jour par Cyril VAZQUEZ il y a 7 mois

  • Fichier test_20230929_1_2.JPG supprimé

#13 Mis à jour par Cyril VAZQUEZ il y a 7 mois

  • Fichier test_20230929_1_3.JPG supprimé

#14 Mis à jour par Cyril VAZQUEZ il y a 7 mois

Le connecteur zip fait une copie du contenu reçu en passant par la mémoire :

case is_resource($data):
  file_put_contents($zipTmpFile, stream_get_contents($data));
  break;

Il faut utiliser la commande stream_copy_to_stream() à la place

Correctif à réalise en priorité sur la branche Support/2.8.X pour le client puis en 2.9.X et develop

#15 Mis à jour par Jérôme BOUCHER il y a 7 mois

  • Statut changé de A traiter à En cours

#16 Mis à jour par Jérôme BOUCHER il y a 7 mois

  • Statut changé de En cours à Résolu

À tester sur branche fix/26745/fix_big_zip_file_deposit
Attention, ajout d'un nouveau paramètre dans le vhost afin de pouvoir verser des documents de plus d'1 Go

LimitRequestBody 0

Cela n'affecte pas les serveurs sur des versions d'Apache inférieure à la 2.4.54 (où ce paramètre était par défaut à zéro), la 2.4.54 est sortie le 14 mars 2022.

#18 Mis à jour par Cyril VAZQUEZ il y a 6 mois

  • Statut changé de Résolu à En cours
  • Tags RM 2.9.X ajouté

A reporter dans le connecteur Multipart

Ligne 60:

        if (is_object($package)) {
            if (is_resource($package->data)) {
                $data = stream_get_contents(\core\Encoding\Base64::decode($package));
            } elseif (filter_var($package->data, FILTER_VALIDATE_URL)) {
                // TODO verify
            } elseif (preg_match('%^[a-zA-Z0-9\\\\/+]*={0,2}$%', $package->data)) {
                $data = \core\Encoding\Base64::decode($package->data);
            } elseif (is_file($package->data)) {
                $data = file_get_contents($package->data);
            }
        } elseif(is_array($package)) {
            $data = stream_get_contents($package['handler']);
        }

Et en-dessous pour les pièces jointes, à chaque fois qu'on charge des données depuis un stream

file_put_contents($attachmentFileName, stream_get_contents($handler));

#19 Mis à jour par Jérôme BOUCHER il y a environ un mois

  • Statut changé de En cours à Clôturé

Le comportement n'est plus reproduit

Formats disponibles : Atom PDF