[issue3399] Memory corruption in multiprocessing module, OS X 10.5.4
Mark Dickinson
report at bugs.python.org
Fri Jul 18 08:37:49 CEST 2008
Mark Dickinson <dickinsm at gmail.com> added the comment:
Okay: I just tried the following:
(1) clean svn checkout
(2) ./configure && make
(3) 100 runs of test_multiprocessing, via the shell command:
for ((i=0;i<100;i+=1)); do ./python.exe
Lib/test/test_multiprocessing.py; sleep 1; done
I got 4 failed runs out of those 100 runs (details below); 2 hangs in
test_notify_all, a KeyError in test_remote, and a failure of
test_number_of_objects.
Failed run 1
------------
test_notify_all (__main__.WithManagerTestCondition) ... Process Process-
48:
Traceback (most recent call last):
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 232, in _bootstrap
self.run()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 88, in run
self._target(*self._args, **self._kwargs)
File "Lib/test/test_multiprocessing.py", line 600, in f
cond.acquire()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 946, in acquire
return self._callmethod('acquire', (blocking,))
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 718, in _callmethod
self._connect()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 705, in _connect
conn = self._Client(self._token.address, authkey=self._authkey)
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/connection.py",
line 133, in Client
c = SocketClient(address)
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/connection.py",
line 254, in SocketClient
s.connect(address)
File "<string>", line 1, in connect
error: [Errno 61] Connection refused
^CProcess PoolWorker-5:4:
Traceback (most recent call last):
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 232, in _bootstrap
Process PoolWorker-5:3:
Traceback (most recent call last):
self.run()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 88, in run
self._target(*self._args, **self._kwargs)
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/pool.py", line
57, in worker
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 232, in _bootstrap
task = get()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/queues.py",
line 337, in get
self.run()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 88, in run
self._target(*self._args, **self._kwargs)
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/pool.py", line
57, in worker
racquire()
KeyboardInterrupt
task = get()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/queues.py",
line 337, in get
racquire()
KeyboardInterrupt
Process PoolWorker-5:1:
Traceback (most recent call last):
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 232, in _bootstrap
Process Process-50:
Process Process-49:
Traceback (most recent call last):
self.run()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 88, in run
self._target(*self._args, **self._kwargs)
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 232, in _bootstrap
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/pool.py", line
57, in worker
task = get()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/queues.py",
line 339, in get
self.run()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 88, in run
self._target(*self._args, **self._kwargs)
File "Lib/test/test_multiprocessing.py", line 602, in f
return recv()
KeyboardInterrupt
cond.wait(timeout)
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 959, in wait
return self._callmethod('wait', (timeout,))
Traceback (most recent call last):
File "Lib/test/test_multiprocessing.py", line 1786, in <module>
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 722, in _callmethod
kind, result = conn.recv()
KeyboardInterrupt
main()
File "Lib/test/test_multiprocessing.py", line 1783, in main
test_main(unittest.TextTestRunner(verbosity=2).run)
File "Lib/test/test_multiprocessing.py", line 1773, in test_main
run(suite)
File "/Users/dickinsm/python_source/trunk/Lib/unittest.py", line 750,
in run
Process PoolWorker-5:2:
test(result)
File "/Users/dickinsm/python_source/trunk/Lib/unittest.py", line 461,
in __call__
return self.run(*args, **kwds)
File "/Users/dickinsm/python_source/trunk/Lib/unittest.py", line 457,
in run
test(result)
File "/Users/dickinsm/python_source/trunk/Lib/unittest.py", line 461,
in __call__
return self.run(*args, **kwds)
File "/Users/dickinsm/python_source/trunk/Lib/unittest.py", line 457,
in run
test(result)
File "/Users/dickinsm/python_source/trunk/Lib/unittest.py", line 300,
in __call__
return self.run(*args, **kwds)
File "/Users/dickinsm/python_source/trunk/Lib/unittest.py", line 279,
in run
testMethod()
File "Lib/test/test_multiprocessing.py", line 701, in test_notify_all
sleeping.acquire()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 946, in acquire
return self._callmethod('acquire', (blocking,))
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 722, in _callmethod
kind, result = conn.recv()
KeyboardInterrupt
Traceback (most recent call last):
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 232, in _bootstrap
self.run()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 88, in run
self._target(*self._args, **self._kwargs)
File "Lib/test/test_multiprocessing.py", line 602, in f
cond.wait(timeout)
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 959, in wait
return self._callmethod('wait', (timeout,))
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 722, in _callmethod
kind, result = conn.recv()
KeyboardInterrupt
Traceback (most recent call last):
Failed run 2
------------
test_task_done (__main__.WithManagerTestQueue) ... ok
test_remote (__main__.WithManagerTestRemoteManager) ... ERROR
test_bounded_semaphore (__main__.WithManagerTestSemaphore) ... ok
test_semaphore (__main__.WithManagerTestSemaphore) ... ok
test_timeout (__main__.WithManagerTestSemaphore) ... ok
test_getobj_getlock (__main__.WithManagerTestValue) ... ok
test_rawvalue (__main__.WithManagerTestValue) ... ok
test_value (__main__.WithManagerTestValue) ... ok
test_number_of_objects (__main__.WithManagerTestZZZNumberOfObjects) ...
ok
======================================================================
ERROR: test_remote (__main__.WithManagerTestRemoteManager)
----------------------------------------------------------------------
Traceback (most recent call last):
File "Lib/test/test_multiprocessing.py", line 1157, in test_remote
queue = manager2.get_queue()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 635, in temp
authkey=self._authkey, exposed=exp
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 887, in AutoProxy
incref=incref)
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 696, in __init__
self._incref()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 743, in _incref
dispatch(conn, None, 'incref', (self._id,))
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 79, in dispatch
raise convert_to_error(kind, result)
RemoteError:
------------------------------------------------------------------------
---
Traceback (most recent call last):
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 181, in handle_request
result = func(c, *args, **kwds)
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 397, in incref
self.id_to_refcount[ident] += 1
KeyError: '5bf968'
------------------------------------------------------------------------
---
----------------------------------------------------------------------
Ran 121 tests in 9.230s
FAILED (errors=1)
Failed run 3
------------
test_number_of_objects (__main__.WithManagerTestZZZNumberOfObjects) ...
680490: refcount=1
<threading._Semaphore object at 0x680490>
680bd0: refcount=1
<multiprocessing.pool.Pool object at 0x680bd0>
FAIL
======================================================================
FAIL: test_number_of_objects
(__main__.WithManagerTestZZZNumberOfObjects)
----------------------------------------------------------------------
Traceback (most recent call last):
File "Lib/test/test_multiprocessing.py", line 1042, in
test_number_of_objects
self.assertEqual(refs, EXPECTED_NUMBER)
AssertionError: 2 != 1
----------------------------------------------------------------------
Ran 121 tests in 9.228s
FAILED (failures=1)
Failed run 4
------------
test_notify_all (__main__.WithManagerTestCondition) ... Process Process-
50:
Traceback (most recent call last):
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 232, in _bootstrap
self.run()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 88, in run
self._target(*self._args, **self._kwargs)
File "Lib/test/test_multiprocessing.py", line 600, in f
cond.acquire()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 946, in acquire
return self._callmethod('acquire', (blocking,))
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 718, in _callmethod
self._connect()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 705, in _connect
conn = self._Client(self._token.address, authkey=self._authkey)
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/connection.py",
line 133, in Client
c = SocketClient(address)
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/connection.py",
line 254, in SocketClient
s.connect(address)
File "<string>", line 1, in connect
error: [Errno 61] Connection refused
^CProcess PoolWorker-5:4:
Traceback (most recent call last):
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 232, in _bootstrap
Process PoolWorker-5:3:
Traceback (most recent call last):
self.run()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 88, in run
self._target(*self._args, **self._kwargs)
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/pool.py", line
57, in worker
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 232, in _bootstrap
task = get()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/queues.py",
line 337, in get
racquire()
self.run()
KeyboardInterrupt
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 88, in run
self._target(*self._args, **self._kwargs)
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/pool.py", line
57, in worker
task = get()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/queues.py",
line 337, in get
racquire()
KeyboardInterrupt
Process PoolWorker-5:1:
Traceback (most recent call last):
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 232, in _bootstrap
Process Process-48:
self.run()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 88, in run
self._target(*self._args, **self._kwargs)
Traceback (most recent call last):
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/pool.py", line
57, in worker
task = get()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/queues.py",
line 339, in get
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 232, in _bootstrap
return recv()
KeyboardInterrupt
self.run()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 88, in run
self._target(*self._args, **self._kwargs)
File "Lib/test/test_multiprocessing.py", line 602, in f
cond.wait(timeout)
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 959, in wait
Traceback (most recent call last):
File "Lib/test/test_multiprocessing.py", line 1786, in <module>
return self._callmethod('wait', (timeout,))
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 722, in _callmethod
kind, result = conn.recv()
KeyboardInterrupt
main()
File "Lib/test/test_multiprocessing.py", line 1783, in main
test_main(unittest.TextTestRunner(verbosity=2).run)
File "Lib/test/test_multiprocessing.py", line 1773, in test_main
Process PoolWorker-5:2:
run(suite)
File "/Users/dickinsm/python_source/trunk/Lib/unittest.py", line 750,
in run
Traceback (most recent call last):
test(result)
File "/Users/dickinsm/python_source/trunk/Lib/unittest.py", line 461,
in __call__
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 232, in _bootstrap
return self.run(*args, **kwds)
File "/Users/dickinsm/python_source/trunk/Lib/unittest.py", line 457,
in run
test(result)
File "/Users/dickinsm/python_source/trunk/Lib/unittest.py", line 461,
in __call__
self.run()
return self.run(*args, **kwds)
File "/Users/dickinsm/python_source/trunk/Lib/unittest.py", line 457,
in run
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 88, in run
self._target(*self._args, **self._kwargs)
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/pool.py", line
57, in worker
test(result)
File "/Users/dickinsm/python_source/trunk/Lib/unittest.py", line 300,
in __call__
return self.run(*args, **kwds)
File "/Users/dickinsm/python_source/trunk/Lib/unittest.py", line 279,
in run
task = get()
testMethod()
File "Lib/test/test_multiprocessing.py", line 701, in test_notify_all
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/queues.py",
line 337, in get
sleeping.acquire()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 946, in acquire
racquire()
KeyboardInterrupt
return self._callmethod('acquire', (blocking,))
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 722, in _callmethod
kind, result = conn.recv()
KeyboardInterrupt
Process Process-49:
Traceback (most recent call last):
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 232, in _bootstrap
self.run()
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/process.py",
line 88, in run
self._target(*self._args, **self._kwargs)
File "Lib/test/test_multiprocessing.py", line 602, in f
cond.wait(timeout)
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 959, in wait
return self._callmethod('wait', (timeout,))
File
"/Users/dickinsm/python_source/trunk/Lib/multiprocessing/managers.py",
line 722, in _callmethod
kind, result = conn.recv()
KeyboardInterrupt
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue3399>
_______________________________________
More information about the Python-bugs-list
mailing list