Erreur ERESTARTNOHAND

トップ ページ

このメッセージに返信
著者: Frédéric
日付:  
To: guilde
題目: Erreur ERESTARTNOHAND
Salut,

Dans mon progamme python, lors d'une transformation xslt (faite avec le
module python lxml, basé sur la libxml2), le tout dans un serveur Pyro
(genre de xml-rpc, en mieux), j'ai un seg. fault du serveur. Un strace me
dit que je reçois le signal ERESTARTNOHAND.

Or, en fouillant sur le web, on peut lire :

"ERESTARTNOHAND is a kernel specific errno (in a kernel tree look for
include/linux/errno.h). ERESTARTNOHAND signals the caller that they
should restart if there is no handler. A userspace app should never see
this (I don't know if it's even supposed to show up at the libc level).

This leads to an interesting question, if libc is looping hard on select
w/ERESTARTNOHAND then perhaps the loop is in libc (which seems unlikely).
I think a better thing than strace would be to kill -SEGV the process when
it's looping hard and see what the back trace is."

Donc d'après ceci, on ne devrait jamais recevoir ce signal !!!

J'ai testé mon appel au filtre xslt en dehors de Pyro : ça marche. J'ai fait
un petit serveur Pyro avec l'appel : ça marche aussi. Le plantage ne
survient que dans le vrai serveur, qui est assez chargé au niveau des
appels clients.

Or, une autre personne (une développeur de chez Logilab) a le même soucis,
mais chez lui, le plantage survient dans la librairie cliente MySQL. Mais
pareil, uniquement sous forte charge.

Quelqu'un aurait-il une idée du problème, par hasard ?

--
Frédéric

http://www.gbiloba.org