Re: Php netcat broken pipe

Top Page

Reply to this message
Author: Dominique Fournier
Date:  
To: guilde
Subject: Re: Php netcat broken pipe
Tu n'aurais pas un firewall entre les deux ? 15 lignes (inférieur à 1500
octets) peuvent passer sans le même paquet, mais plus nécessitent un ou
plusieurs paquets en ESTABLISHED. D'ailleurs, tu ne nous as pas dit si
tu étais en UDP ou TCP...

Sympa ton problème !

Bonne journée

Dom


Le 12/08/2019 à 15:32, David Beniamine a écrit :
>
> 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
>>>
>>>
>>>
>>>
>>
>