Weird threading problem under Solaris

Stephen Norris srn at fn.com.au
Wed Dec 8 16:21:34 EST 1999


I have a multi-threaded daemon running on a Solaris system, written in Python.

One thread (the main thread, in fact) sits in a loop doing accept() calls
and adding the results to a queue.

I noticed that sometimes it seems to take about 12 seconds (almost exactly
12 seconds, in fact) to establish the connection - i.e. to get to the
accept.

When I truss the process, I see it's spending most of its time doing:

944606947.228986: signotifywait()                                       = 32
944606947.229439: lwp_sigredirect(0, SIGWAITING)                        = 0
944606947.229563: signotifywait()                                       = 32
944606947.229690: lwp_sigredirect(0, SIGWAITING)                        = 0

over and over again (the number is a timestamp). Eventually it gets
around to an accept(), which immediately returns a new connection,
then it goes back to it's lwp_blah calling.

Are there any Solaris experts out there who know what this means? Anyone
got any idea how to stop it?

Any hints or vague suggestions would be appreciated, I've been after this
one for about a week now :(

	Stephen
-- 
Stephen Norris  srn at fn.com.au
PGP key available via finger srn at flibble.fn.com.au.
Farrow Norris Pty. Ltd.     http://www.fn.com.au/



More information about the Python-list mailing list