Re: Php netcat broken pipe

Page principale

Répondre à ce message
Auteur: Dominique Fournier
Date:  
À: guilde
Sujet: Re: Php netcat broken pipe
Bonjour David

As-tu regardé les logs du serveur supportant le PHP ?
Où as tu vu le broken pipe du côté A ou B ?
Au bout de combien de temps arrive le message d'erreur (si cela pourrait
être dû à un timeout) ?

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
>
>
>
>