[Python-bugs-list] [ python-Bugs-662787 ] test_signal hang on some Solaris boxes

SourceForge.net noreply@sourceforge.net
Sun, 05 Jan 2003 12:38:42 -0800


Bugs item #662787, was opened at 2003-01-05 14:59
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=662787&group_id=5470

Category: Python Interpreter Core
Group: Python 2.3
Status: Open
Resolution: None
Priority: 6
Submitted By: Neal Norwitz (nnorwitz)
Assigned to: Martin v. Löwis (loewis)
Summary: test_signal hang on some Solaris boxes

Initial Comment:
Martin, I'm assigning this to you because you checked
in the patch which caused this problem.  I think your
input on fixes will also be valuable.

When semaphore support was added to
Python/thread_pthread.h in 2.39 originally from patch
525532, it broke tests on some Solaris boxes.  I know
this affects Solaris 8, not sure if any other versions
are affected.  I believe on or more of the following
Solaris 8 patches (108528, 108827) fixes the problem:

http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fpatches%2F108528&zone_32=signal+%20hang%20%22Sol
aris%208%22&wholewords=on

http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fpatches%2F108827&zone_32=signal+%20hang%20%22Sol
aris%208%22&wholewords=on

Patches can be gotten from here:

 
http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access
One way to fix the hang is to add #undef USE_SEMAPHORES
at line 113 of Python/thread_pthread.h (ie, after
USE_SEMAPHORES may be set).

I don't know of any other way to fix this problem.  I
don't know if we can test for this in configure and set
USE_SEMAPHORES appropriately (or if it's worth it).  We
can always disable USE_SEMAPHORES and allow the user to
use it by manually setting the macro.  We keep the code
as is, and document the problem.

Suggestions?

----------------------------------------------------------------------

>Comment By: Neal Norwitz (nnorwitz)
Date: 2003-01-05 15:38

Message:
Logged In: YES 
user_id=33168

Attaching output of truss (like strace for Solaris) which
doesn't provide me with any more info.  Hopefully this will
help someone else.  2 files attached, one with complete
output from;

   truss ./python -E -tt ./Lib/test/regrtest.py test_queue
test_signal

the other is just the end.  It should correspond to these
lines from the test:

signal.alarm(20)                        # Entire test lasts
at most 20 sec.
signal.signal(5, handlerA)
signal.signal(2, handlerB)
signal.signal(3, signal.SIG_IGN)
signal.signal(signal.SIGALRM, signal.default_int_handler)


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=662787&group_id=5470