OVH Cloud OVH Cloud

[AIX] Bug perl avec les fork + socket

3 réponses
Avatar
Chris
Bonjour,

j'ai recompilée perl sur un AIX 5.2 avec gcc au lieu de la version
standard livré par AIX
et j'ai un bug de socket qui se melange les pinceaux sur un serveur TCP
(issue de l'exemples de perl IPC )
le même script perl ne declenche par ce probleme sur linux et avec la
version standard IBM

Quelqu'un a déjà eu des soucis comme celui ci ?

A+
chris

3 réponses

Avatar
Chris
Chris wrote:
Bonjour,

j'ai recompilée perl sur un AIX 5.2 avec gcc au lieu de la version
standard livré par AIX
et j'ai un bug de socket qui se melange les pinceaux sur un serveur TCP
(issue de l'exemples de perl IPC )
le même script perl ne declenche par ce probleme sur linux et avec la
version standard IBM

Quelqu'un a déjà eu des soucis comme celui ci ?

A+
chris
Bon je me repond a moi meme,

car je pense avoir trouver le pourquoi du comment
Si je j'utilise une connexion avec Net::MySQL avant de forker
les sockets se melange entre les sessions
par contre si je forke puis j'utilise Net::MySQL alors
je n'ai plus de probleme

En Fait le probleme est peut etre lié a perl 5.8 + AIX 5.2

mais bon si j'ai le temps je mettrais plus de precision

A+
chris

Avatar
Jacques Caron
Salut,

On Fri, 24 Jun 2005 17:18:13 +0200, Chris wrote:

Si je j'utilise une connexion avec Net::MySQL avant de forker
les sockets se melange entre les sessions


Ca c'est valable quelle que soit l'architecture et quelle que soit la base
de données... Les connexions vers les serveurs doivent être ouvertes après
avoir forké, histoire que chaque processus ait sa propre connexion plutôt
que d'en partager une, et de lire et écrire tous en même temps dessus!

Si le processus "père" a besoin d'une connexion à la BDD aussi, il faudra
la fermet avant de forker.

En Fait le probleme est peut etre lié a perl 5.8 + AIX 5.2


Non, c'est un problème qui existe partout, il doit juste se trouver que
jusque là tu n'étais pas tombé dessus pour une raison ou une autre.

Jacques.

Avatar
Chris
Jacques Caron wrote:
Salut,

On Fri, 24 Jun 2005 17:18:13 +0200, Chris wrote:

Si je j'utilise une connexion avec Net::MySQL avant de forker
les sockets se melange entre les sessions



Ca c'est valable quelle que soit l'architecture et quelle que soit la
base de données... Les connexions vers les serveurs doivent être
ouvertes après avoir forké, histoire que chaque processus ait sa propre
connexion plutôt que d'en partager une, et de lire et écrire tous en
même temps dessus!

Si le processus "père" a besoin d'une connexion à la BDD aussi, il
faudra la fermet avant de forker.

En Fait le probleme est peut etre lié a perl 5.8 + AIX 5.2



Non, c'est un problème qui existe partout, il doit juste se trouver que
jusque là tu n'étais pas tombé dessus pour une raison ou une autre.

Jacques.


Ouuuh Merci pour l'info je vais restructurer mon programme
pour que l'ouverture a la base se passe apres le fork

En fait malgré des tests fait avec des automates ( merci expect )
cela fonctionnait

A+
chris