Re: Php netcat broken pipe

Page principale

Répondre à ce message
Auteur: Dominique Fournier
Date:  
À: guilde
Sujet: Re: Php netcat broken pipe
il faut lire "Dans le même paquet"... Envoyé trop vite.

Le 12/08/2019 à 15:41, Dominique Fournier a écrit :
> 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
>>>>
>>>>
>>>>
>>>>
>>>
>>
>