[Python-bugs-list] [Bug #110675] Pth: test_fork1 fails, test_thread slow (PR#383)
noreply@sourceforge.net
noreply@sourceforge.net
Wed, 23 Aug 2000 10:36:29 -0700
Bug #110675, was updated on 2000-Jul-31 17:13
Here is a current snapshot of the bug.
Project: Python
Category: Core
Status: Open
Resolution: None
Bug Group: None
Priority: 7
Summary: Pth: test_fork1 fails, test_thread slow (PR#383)
Details: Jitterbug-Id: 383
Submitted-By: gregor@hoffleit.de
Date: Tue, 4 Jul 2000 12:07:06 -0400 (EDT)
Version: CVS version (06/04/00)
OS: Debian potato (i386)
When I use the current CVS version of Python to build on a Debian potato
system with GNU Pth 1.2.3 installed, test_fork1 fails with an error (see
below),
and test_thread takes significantly longer to complete than when I build the
same sources with native LinuxThreads.
When running test.regrtest.main(), this happens:
clapton:3> LD_LIBRARY_PATH=`pwd` ./python
Python 2.0b1 (#0, Jul 4 2000, 17:06:15) [GCC 2.95.2 20000220 (Debian
GNU/Linux)] on linux2
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
Copyright 1995-2000 Corporation for National Research Initiatives (CNRI)
>>> from test import regrtest
>>> regrtest.main()
test_grammar
test_opcodes
...
test_extcall
test_fcntl
test_fork1
test test_fork1 crashed -- exceptions.AssertionError :
Unhandled exception in thread:
Traceback (most recent call last):
File "./Lib/test/test_fork1.py", line 30, in f
alive[id] = os.getpid()
AttributeError: 'None' object has no attribute 'getpid'
Unhandled exception in thread:
Traceback (most recent call last):
File "./Lib/test/test_fork1.py", line 32, in f time.sleep(SHORTSLEEP)
TypeError: illegal argument type for built-in operation
Unhandled exception in thread:
Traceback (most recent call last):
File "./Lib/test/test_fork1.py", line 30, in f
alive[id] = os.getpid()
AttributeError: 'None' object has no attribute 'getpid'
Unhandled exception in thread:
Traceback (most recent call last):
File "./Lib/test/test_fork1.py", line 30, in f
alive[id] = os.getpid()
AttributeError: 'None' object has no attribute 'getpid'
test_format
test_gc
...
When running test.test_fork1(), I get this:
clapton:3> LD_LIBRARY_PATH=`pwd` ./python
Python 2.0b1 (#0, Jul 4 2000, 17:06:15) [GCC 2.95.2 20000220 (Debian
GNU/Linux)] on linux2
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
Copyright 1995-2000 Corporation for National Research Initiatives (CNRI)
>>> from test import test_fork1
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "./Lib/test/test_fork1.py", line 68, in ?
main()
File "./Lib/test/test_fork1.py", line 44, in main
assert a == range(NUM_THREADS)
AssertionError
>>>
test_thread takes very long to complete (5 min compared to 40 sec with
LinuxThreads); when you look at the following log, you'll see that it tends
to calls the threads serially !?
clapton:3> LD_LIBRARY_PATH=`pwd` ./python
Python 2.0b1 (#0, Jul 4 2000, 17:06:15) [GCC 2.95.2 20000220 (Debian
GNU/Linux)] on linux2
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
Copyright 1995-2000 Corporation for National Research Initiatives (CNRI)
>>> from test import test_thread
creating task 1
creating task 2
creating task 3
task 1 will run for 2.1 sec
task 1 done
creating task 4
task 2 will run for 3.2 sec
creating task 5
task 2 done
creating task task 3 will run for 9.1 6
sec
task 3 done
creating task 7
task 4 will run for 2.5 sec
task 4 done
creating task 8
task 5 will run for 0.9 sec
task 5 done
creating task 9
task 6 will run for 7.4 sec
task 6 done
creating task 10
waiting for all tasks to complete
task 7 will run for 5.3 sec
task 7 done
task 8 will run for 2.6 sec
task 8 done
task 9 will run for 2.7 sec
task 9 done
task 10 will run for 0.9 sec
task 10 done
all tasks done
*** Barrier Test ***
task 0 will run for 0.0 sec
task 0 entering barrier 0
task 1 will run for 6.2 sec
task 1 entering barrier 0
task 7 will run for 7.0 sec
task 7 entering barrier 0
task 3 will run for 5.9 sec
task 3 entering barrier 0
task 4 will run for 4.5 sec
task 4 entering barrier 0
task 5 will run for 9.2 sec
task 5 entering barrier 0
task 6 will run for 1.4 sec
task 6 entering barrier 0
task 2 will run for 6.0 sec
task 2 entering barrier 0
task 8 will run for 2.4 sec
task 8 entering barrier 0
task 9 will run for 9.6 sec
task 9 entering barrier 0
task 9 leaving barrier 0
task 0 leaving barrier 0
task task 1 leaving barrier 0
0 will run for 0.0 sec
task 0 entering barrier 1
task 7 leaving barrier 0
task 9 will run for 0.8 sec
task 9 entering barrier task 3 leaving barrier 0
1
task 1 task 4 leaving barrier 0
will run for 6.1 sec
task 5 leaving barrier 0
task 1 entering barrier 1
task 6 leaving barrier 0
task 7 will run for 7.9 sec
task 2 leaving barrier 0
task 7 entering barrier 1
task 3 task 8 leaving barrier 0
will run for 7.8 sec
task 3 entering barrier 1
task 4 will run for 5.7 sec
task 4 entering barrier 1
task 5 will run for 2.0 sec
task 5 entering barrier 1
task 6 will run for 0.5 sec
task 6 entering barrier 1
task 2 will run for 7.4 sec
task 2 entering barrier 1
task 8 will run for 1.0 sec
task 8 entering barrier 1
task 8 leaving barrier 1
task 7 leaving barrier 1
task 9 leaving barrier 1
task 1 leaving barrier 1
task 8 will run for 6.9 sec
task 0 leaving barrier 1
task 8 entering barrier 2
task 0 will run for task 4 leaving barrier 1 0.0 sec
task 7 will run for 4.3 sec task 0 entering barrier
2
task 3 leaving barrier 1
task 7 entering barrier 2
task 5 leaving barrier 1
task 6 leaving barrier 1 task 9 will run for
8.2 sec
task task 2 leaving barrier 9 entering barrier 2
1
task 5 will run for 8.9 sec
task 5 entering barrier 2
task 2 will run for 8.3 sec
task 2 entering barrier 2
task 3 will run for 4.5 sec
task 3 entering barrier 2
task 1 will run for 7.0 sec
task 1 entering barrier 2
task 6 will run for 1.9 sec
task 6 entering barrier 2
task 4 will run for 0.2 sec
task 4 entering barrier 2
task 4 leaving barrier 2
task 8 leaving barrier 2
task 9 leaving barrier 2
task 7 leaving barrier 2
task 5 leaving barrier 2
task 0 leaving barrier 2
task 2 leaving barrier 2
task 3 leaving barrier 2
task 1 leaving barrier 2
task 6 leaving barrier 2
all tasks done
while this is the log of the same test with Python 1.5.2 and LinuxThreads:
clapton:3> python
Python 1.5.2 (#0, Apr 3 2000, 14:46:48) [GCC 2.95.2 20000313 (Debian
GNU/Linux)] on linux2
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> from test import test_thread
creating task 1
creating task 2
creating task 3
creating task 4
creating task 5
creating task 6
creating task 7
creating task 8
creating task 9
creating task 10
waiting for all tasks to complete
task 1 will run for 8.9 sec
task 2 will run for 8.3 sec
task 3 will run for 9.1 sec
task 5 will run for 6.0 sec
task 4 will run for 7.5 sec
task 6 will run for 4.7 sec
task 7 will run for 4.2 sec
task 8 will run for 7.0 sec
task 9 will run for 8.7 sec
task 10 will run for 9.5 sec
task 7 done
task 6 done
task 5 done
task 8 done
task 4 done
task 2 done
task 9 done
task 1 done
task 3 done
task 10 done
all tasks done
*** Barrier Test ***
task 0 will run for 0.0 sec
task 1 will run for 2.8 sec
task 0 entering barrier 0
task 2 will run for 5.3 sec
task 3 will run for 9.2 sec
task 5 will run for 8.0 sec
task 4 will run for 8.9 sec
task 6 will run for 5.0 sec
task 7 will run for 1.3 sec
task 8 will run for 5.6 sec
task 9 will run for 4.7 sec
task 7 entering barrier 0
task 1 entering barrier 0
task 9 entering barrier 0
task 6 entering barrier 0
task 2 entering barrier 0
task 8 entering barrier 0
task 5 entering barrier 0
task 4 entering barrier 0
task 3 entering barrier 0
task 3 leaving barrier 0
task 3 will run for 0.1 sec
task 0 leaving barrier 0
task 0 will run for 0.0 sec
task 7 leaving barrier 0
task 7 will run for 6.6 sec
task 1 leaving barrier 0
task 1 will run for 1.0 sec
task 9 leaving barrier 0
task 9 will run for 8.2 sec
task 6 leaving barrier 0
task 6 will run for 1.0 sec
task 2 leaving barrier 0
task 2 will run for 9.2 sec
task 8 leaving barrier 0
task 8 will run for 4.4 sec
task 5 leaving barrier 0
task 5 will run for 9.6 sec
task 4 leaving barrier 0
task 4 will run for 1.7 sec
task 0 entering barrier 1
task 3 entering barrier 1
task 1 entering barrier 1
task 6 entering barrier 1
task 4 entering barrier 1
task 8 entering barrier 1
task 7 entering barrier 1
task 9 entering barrier 1
task 2 entering barrier 1
task 5 entering barrier 1
task 5 leaving barrier 1
task 5 will run for 6.6 sec
task 0 leaving barrier 1
task 0 will run for 0.0 sec
task 3 leaving barrier 1
task 3 will run for 8.5 sec
task 1 leaving barrier 1
task 1 will run for 0.1 sec
task 6 leaving barrier 1
task 6 will run for 4.7 sec
task 4 leaving barrier 1
task 4 will run for 4.7 sec
task 8 leaving barrier 1
task 8 will run for 1.7 sec
task 7 leaving barrier 1
task 7 will run for 1.8 sec
task 9 leaving barrier 1
task 9 will run for 2.8 sec
task 2 leaving barrier 1
task 2 will run for 3.3 sec
task 0 entering barrier 2
task 1 entering barrier 2
task 8 entering barrier 2
task 7 entering barrier 2
task 9 entering barrier 2
task 2 entering barrier 2
task 6 entering barrier 2
task 4 entering barrier 2
task 5 entering barrier 2
task 3 entering barrier 2
task 3 leaving barrier 2
task 0 leaving barrier 2
task 1 leaving barrier 2
task 8 leaving barrier 2
task 7 leaving barrier 2
task 9 leaving barrier 2
task 2 leaving barrier 2
task 6 leaving barrier 2
task 4 leaving barrier 2
task 5 leaving barrier 2
all tasks done
>>>
====================================================================
Audit trail:
Tue Jul 11 08:24:22 2000 guido moved from incoming to open
Follow-Ups:
Date: 2000-Aug-23 13:31
By: jhylton
Comment:
Another report of test_fork1 problems. Plan to resolve before 2.0b1.
-------------------------------------------------------
Date: 2000-Aug-23 13:36
By: tim_one
Comment:
Jeremy, my chances of helping someone with a problem specific to "Debian potato system with GNU Pth 1.2.3" are nil. Assigned back to you since you seem to believe it's feasible <wink>.
-------------------------------------------------------
For detailed info, follow this link:
http://sourceforge.net/bugs/?func=detailbug&bug_id=110675&group_id=5470