Re: Php netcat broken pipe

Top Page

Reply to this message
Author: David Beniamine
Date:  
To: guilde
Subject: Re: Php netcat broken pipe

On 8/12/19 3:15 PM, Dominique Fournier wrote:
> Bonjour David
>
> As-tu regardé les logs du serveur supportant le PHP ?

Il n'y a rien dans les logs apache là dessus ...
> Où as tu vu le broken pipe du côté A ou B ?

J'ai vu le broken pipe sur  stdout côté B
> Au bout de combien de temps arrive le message d'erreur (si cela
> pourrait être dû à un timeout) ?

Cela m'étonnerai : j'en ai pour moins d'1 seconde pour envoyer mon
fichier ...
>
> Bonne journée
>
> Dom
>
> Le 12/08/2019 à 15:04, David Beniamine a écrit :
>> Salut la Guilde,
>>
>> J'ai un problème que j'ai du mal à comprendre ou plutôt à résoudre :
>>
>> J'ai un serveur web (appelons le A) qui doit afficher des informations
>> situés sur un autre machine (appelons la B), ces deux machines
>> communiquent via une socket avec netcat :
>>
>> + Côté B il y a un script bash qui tourne avec un service systemd : il
>> écoute en permanence et quand il reçoit une commande get il réponds
>> l'information demandée
>>
>> + Côté A j'ai un script bash, appelé par la page web (php).
>>
>> + Quand j'essaye de lire un petit fichier comme ça (environ 15 lignes),
>> tout fonctionne très bien.
>>
>> + Cependant si j'essaye de lire un fichier plus gros (pour être précis 2
>> 097 480 octets), j'ai un broken pipe. Concrètement sur la page web je ne
>> voit que une partie du fichier, mais si je lance le script depuis bash
>> (sans passer par php) j'ai bien le fichier entier.
>>
>> Je suppose donc que php limite quelque chose quelque part, mais je ne
>> voit pas quoi. De plus la taille du fichier reçu n'est pas
>> déterministe ....
>>
>>
>> Tests effectués :
>>
>> + Côté php utiliser Popen, exec ou shell_exec pour lancer le script :
>> idem
>>
>> +  Compter les caractères reçus depuis le script bash côté a (netcat |
>> wc -c) : le nombre de caractères reçu correspond bien à ce qui est
>> affiché par php, variable entre 0 et 10000, souvent une puissance de 2
>>
>> + Sur le pipe, gzip -c côté B, gunzip -c côté A : même comportement pour
>> bash, aucun caractères reçu quand le script est lancé depuis php
>>
>> + Augmenter la taille mémoire maximum php de 128M à 512M (même si on
>> parle que de 2M)
>>
>>
>> Est-ce que quelqu'un à une idée de comment je peux m'y prendre ?
>>
>>
>> David
>>
>>
>>
>>
>