OVH Community, votre nouvel espace communautaire.

Probleme libpthread


PXL
21/04/2004, 20h03
C'est bon, j'ai regle mon probleme !

Ca n'avait rien a voir ni avec mysql, ni la libpthread comme le disait gdb !

Je faisait un free sur une variable "struct tm *" qui prenait le retour de "localtime" (localtime alloue lui meme la strcture). Et ce free lui plaisait pas.

Je ne pourrais dire pkoi sur redhat 9 ca merdais pas.

Si quelqu'un a une explication, je suis preneur.

PXL
21/04/2004, 18h55
Je compile bien avec la lib libmysqlclient_r pour la compatibilite de mysql avec les threads.

En 2 mots, mon programme se connecte a mysql, et attends des connexions clientes. Jusque la ca marche bien.
Quand un client se connecte, je créé une thread et j'accede a ma base mysql pour checker des infos. Et c'est par la que ca plante.

J'utilise bien les fonctions conseillée sur le site web mysql.com, et j'initialise bien tout correctement.
J'ai bien une mutex pour pas que les threads se bouffent les acces a la base.

Je compile le programme avec ce soptions :

gcc -Wall -pedantic -g3 -o -lpthread -lmysqlclient_r


Mais à la vue du message de gdb, je pense plus a un probleme de version sur la lib pthread qu'a un probleme du cote mysql.

sl956
21/04/2004, 15h08
Commencer par jeter un coup d'oeil à la section suivante de la doc de MySQL :
http://dev.mysql.com/doc/mysql/en/Threaded_clients.html

Si cela n'aide pas, revenir vers le forum en donnant un peu plus d'infos sur le programme en question (y compris les options de compilation utilisées) et le stacktrace du segfault.

Attention : il y a une coquille dans la version française de la doc de MySQL :
http://dev.mysql.com/doc/mysql/fr/Threaded_clients.html
Au deuxième paragraphe, il faut lire :
Dans les anciennes versions binaires que nous distribuions sur notre site web, les librairies clientes n'étaient normalement pas compilées avec l'option de compatibilité avec les threads
et non pas :
Dans les anciennes versions binaires que nous distribuions sur notre site web, les librairies clientes étaient normalement compilées avec l'option de compatibilité avec les threads

PXL
21/04/2004, 13h25
Bonjour,

J'ai développé un programme sous Linux RedHat 9 et MySQL 4; il compile et s'exécute parfaitement bien.

Je le compile sur mon serveur dédié chez ovh, qui est sous RedHat 7.2 et MySQL 3; il compile bien, mais a l'execution il plante : "Segmentation fault".

J'ai donc fait un gdb dessus, et gdb me sort ceci :

Starting program: /home/dating/messenger/./7dsvr
[New Thread 1024 (LWP 28984)]
[New Thread 2049 (LWP 28990)]
[New Thread 1026 (LWP 28991)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1026 (LWP 28991)]
__pthread_mutex_lock (mutex=0xbd2a040f) at mutex.c:99
in mutex.c


Pouvez vous m'aider ?