Threading server exits ERESTARTNOHAND

Rune Hansen rune.hansen at sinsenveien83.com
Mon Feb 9 08:38:32 EST 2004


Rune Hansen wrote:
> select(0, NULL, NULL, NULL, {0, 8000})  = 0 (Timeout)
> futex(0x822f530, FUTEX_WAKE, 1)         = 0
> gettimeofday({1075823054, 603000}, NULL) = 0
> futex(0x822f530, FUTEX_WAKE, 1)         = 0
> select(0, NULL, NULL, NULL, {0, 16000}) = 0 (Timeout)
> futex(0x822f530, FUTEX_WAKE, 1)         = 0
> gettimeofday({1075823054, 623210}, NULL) = 0
> futex(0x822f530, FUTEX_WAKE, 1)         = 0
> select(0, NULL, NULL, NULL, {0, 30370}) = ? ERESTARTNOHAND (To be 
> restarted)
> +++ killed by SIGSEGV +++
> 
> This is the output from strace -o xx python2.3 Spider.py, Spider.py 
> being a threaded web crawler. The server segfaults at no specific 
> interval, running for 30 secs and up to 10-15 minutes.
> 
> I can't figure out what's going on. In my years of threaded programming 
> this is the first time I've seen it (if it makes me a novice, please 
> don't rub it in :) I've found some information about "ERESTARTNOHAND" 
> (one hint was /etc/security/limits.conf) and gotten the feeling that it 
> has more to do with RedHat 9.0 than python2.3.3, but I'd really like to 
> hear from someone who perhaps has got some experience with this.
> 
> Server and setup:
> Compiled Python2.3.3 on RedHat 9.0 with default Athlon kernel.
> 
> The server starts a XMLRPCServer and Controller. The Controller starts 
> 15 threads doing urllib2.urlopen with data, using queue.get_nowait(), 
> received on the XMLRPCServer . Each thread has it's own MySQLdb 
> connection doing INSER DELAYED.
> mxTidy is used before data is fed to an HTMLParser instance.
> 
> regards
> 
> /rune
> 

In answer to my own question I'd like to quote our benevolent dictator:

"In any project that is multi-threaded, most bugs will come from 
threading issues.
This is regardless of programming language -- it's a deep, as yet 
ununderstood property of threads."
-- Guido van Rossum

So, there you are. Lesson learned.

regards

/rune



More information about the Python-list mailing list