classification
Title: test_concurrent_futures failure on Windows
Type: behavior Stage:
Components: Library (Lib) Versions: Python 3.2
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: bquinlan Nosy List: bquinlan, pitrou
Priority: normal Keywords: patch

Created on 2010-10-23 18:54 by pitrou, last changed 2010-11-20 04:10 by bquinlan. This issue is now closed.

Files
File name Uploaded Description Edit
timing.patch bquinlan, 2010-11-19 00:17 Increased Timeouts
timing2.patch bquinlan, 2010-11-19 21:51 Increased event wait timeout
Messages (8)
msg119466 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2010-10-23 18:54
I get this failure quite reliably on a Windows 7 VM, in both 32-bit and 64-bit builds:

======================================================================
FAIL: test_map_timeout (test.test_concurrent_futures.ProcessPoolExecutorTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "Y:\py3k\__svn__\lib\test\test_concurrent_futures.py", line 572, in test_map_timeout
    self.assertEquals([42, 42], results)
AssertionError: Lists differ: [42, 42] != []

First list contains 2 additional elements.
First extra element 0:
42

- [42, 42]
+ []
msg121448 - (view) Author: Brian Quinlan (bquinlan) * (Python committer) Date: 2010-11-18 08:57
Would you include the entire output of the test run?
msg121450 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2010-11-18 10:15
Y:\>py3k\__svn__\PCbuild\amd64\python_d.exe -m test.regrtest -v test_concurrent_futures
== CPython 3.2a4+ (py3k, Nov 18 2010, 11:12:09) [MSC v.1500 64 bit (AMD64)]
==   Windows-7-6.1.7600 little-endian
==   Y:\py3k\__svn__\build\test_python_2016
[1/1] test_concurrent_futures
test_map (test.test_concurrent_futures.ProcessPoolExecutorTest) ... ok
test_map_exception (test.test_concurrent_futures.ProcessPoolExecutorTest) ... ok

test_map_timeout (test.test_concurrent_futures.ProcessPoolExecutorTest) ... FAIL

test_submit (test.test_concurrent_futures.ProcessPoolExecutorTest) ... ok
test_submit_keyword (test.test_concurrent_futures.ProcessPoolExecutorTest) ... o
k
test_map (test.test_concurrent_futures.ThreadPoolExecutorTest) ... ok
test_map_exception (test.test_concurrent_futures.ThreadPoolExecutorTest) ... ok
test_map_timeout (test.test_concurrent_futures.ThreadPoolExecutorTest) ... ok
test_submit (test.test_concurrent_futures.ThreadPoolExecutorTest) ... ok
test_submit_keyword (test.test_concurrent_futures.ThreadPoolExecutorTest) ... ok

test_all_completed (test.test_concurrent_futures.ProcessPoolWaitTests) ... ok
test_all_completed_some_already_completed (test.test_concurrent_futures.ProcessP
oolWaitTests) ... ok
test_first_completed (test.test_concurrent_futures.ProcessPoolWaitTests) ... ok
test_first_completed_one_already_completed (test.test_concurrent_futures.Process
PoolWaitTests) ... ok
test_first_exception (test.test_concurrent_futures.ProcessPoolWaitTests) ... ok
test_first_exception_one_already_failed (test.test_concurrent_futures.ProcessPoo
lWaitTests) ... ok
test_first_exception_some_already_complete (test.test_concurrent_futures.Process
PoolWaitTests) ... ok
test_timeout (test.test_concurrent_futures.ProcessPoolWaitTests) ... FAIL
test_all_completed (test.test_concurrent_futures.ThreadPoolWaitTests) ... ok
test_all_completed_some_already_completed (test.test_concurrent_futures.ThreadPo
olWaitTests) ... ok
test_first_completed (test.test_concurrent_futures.ThreadPoolWaitTests) ... ok
test_first_completed_one_already_completed (test.test_concurrent_futures.ThreadP
oolWaitTests) ... ok
test_first_exception (test.test_concurrent_futures.ThreadPoolWaitTests) ... ok
test_first_exception_one_already_failed (test.test_concurrent_futures.ThreadPool
WaitTests) ... ok
test_first_exception_some_already_complete (test.test_concurrent_futures.ThreadP
oolWaitTests) ... ok
test_timeout (test.test_concurrent_futures.ThreadPoolWaitTests) ... ok
test_no_timeout (test.test_concurrent_futures.ProcessPoolAsCompletedTests) ... o
k
test_zero_timeout (test.test_concurrent_futures.ProcessPoolAsCompletedTests) ...
 ok
test_no_timeout (test.test_concurrent_futures.ThreadPoolAsCompletedTests) ... ok

test_zero_timeout (test.test_concurrent_futures.ThreadPoolAsCompletedTests) ...
ok
test_cancel (test.test_concurrent_futures.FutureTests) ... ok
test_cancelled (test.test_concurrent_futures.FutureTests) ... ok
test_done (test.test_concurrent_futures.FutureTests) ... ok
test_done_callback_already_cancelled (test.test_concurrent_futures.FutureTests)
... ok
test_done_callback_already_failed (test.test_concurrent_futures.FutureTests) ...
 ok
test_done_callback_already_successful (test.test_concurrent_futures.FutureTests)
 ... ok
test_done_callback_raises (test.test_concurrent_futures.FutureTests) ... ok
test_done_callback_with_cancel (test.test_concurrent_futures.FutureTests) ... ok

test_done_callback_with_exception (test.test_concurrent_futures.FutureTests) ...
 ok
test_done_callback_with_result (test.test_concurrent_futures.FutureTests) ... ok

test_exception_with_success (test.test_concurrent_futures.FutureTests) ... ok
test_exception_with_timeout (test.test_concurrent_futures.FutureTests) ... ok
test_repr (test.test_concurrent_futures.FutureTests) ... ok
test_result_with_cancel (test.test_concurrent_futures.FutureTests) ... ok
test_result_with_success (test.test_concurrent_futures.FutureTests) ... ok
test_result_with_timeout (test.test_concurrent_futures.FutureTests) ... ok
test_running (test.test_concurrent_futures.FutureTests) ... ok
test_context_manager_shutdown (test.test_concurrent_futures.ProcessPoolShutdownT
est) ... ok
test_del_shutdown (test.test_concurrent_futures.ProcessPoolShutdownTest) ... ok
test_processes_terminate (test.test_concurrent_futures.ProcessPoolShutdownTest)
... ok
test_run_after_shutdown (test.test_concurrent_futures.ProcessPoolShutdownTest) .
.. ok
test_context_manager_shutdown (test.test_concurrent_futures.ThreadPoolShutdownTe
st) ... ok
test_del_shutdown (test.test_concurrent_futures.ThreadPoolShutdownTest) ... ok
test_run_after_shutdown (test.test_concurrent_futures.ThreadPoolShutdownTest) ..
. ok
test_threads_terminate (test.test_concurrent_futures.ThreadPoolShutdownTest) ...
 ok

======================================================================
FAIL: test_map_timeout (test.test_concurrent_futures.ProcessPoolExecutorTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "Y:\py3k\__svn__\lib\test\test_concurrent_futures.py", line 572, in test_
map_timeout
    self.assertEquals([42, 42], results)
AssertionError: Lists differ: [42, 42] != []

First list contains 2 additional elements.
First extra element 0:
42

- [42, 42]
+ []

======================================================================
FAIL: test_timeout (test.test_concurrent_futures.ProcessPoolWaitTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "Y:\py3k\__svn__\lib\test\test_concurrent_futures.py", line 442, in test_
timeout
    future1]), finished)
AssertionError: Items in the first set but not the second:
<Future at 0x2e7e330 state=running>

----------------------------------------------------------------------
Ran 55 tests in 48.469s

FAILED (failures=2)
test test_concurrent_futures failed -- multiple errors occurred
1 test failed:
    test_concurrent_futures
[106578 refs]
msg121498 - (view) Author: Brian Quinlan (bquinlan) * (Python committer) Date: 2010-11-19 00:17
Could you try rerunning the tests with the attached patch? It could be that your machines are just terribly slow at starting new Python instances.
msg121567 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2010-11-19 20:55
Then I get more failures:

======================================================================
FAIL: test_map_timeout (test.test_concurrent_futures.ProcessPoolExecutorTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "Y:\py3k\__svn__\lib\test\test_concurrent_futures.py", line 563, in test_
map_timeout
    timeout=10):
  File "Y:\py3k\__svn__\lib\concurrent\futures\_base.py", line 546, in map
    yield future.result(end_time - time.time())
  File "Y:\py3k\__svn__\lib\concurrent\futures\_base.py", line 400, in result
    return self.__get_result()
  File "Y:\py3k\__svn__\lib\concurrent\futures\_base.py", line 352, in __get_res
ult
    raise self._exception
AssertionError

======================================================================
FAIL: test_map_timeout (test.test_concurrent_futures.ThreadPoolExecutorTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "Y:\py3k\__svn__\lib\test\test_concurrent_futures.py", line 563, in test_
map_timeout
    timeout=10):
  File "Y:\py3k\__svn__\lib\concurrent\futures\_base.py", line 546, in map
    yield future.result(end_time - time.time())
  File "Y:\py3k\__svn__\lib\concurrent\futures\_base.py", line 400, in result
    return self.__get_result()
  File "Y:\py3k\__svn__\lib\concurrent\futures\_base.py", line 352, in __get_res
ult
    raise self._exception
  File "Y:\py3k\__svn__\lib\concurrent\futures\thread.py", line 65, in run
    result = self.fn(*self.args, **self.kwargs)
  File "Y:\py3k\__svn__\lib\test\test_concurrent_futures.py", line 132, in __cal
l__
    super().__call__()
  File "Y:\py3k\__svn__\lib\test\test_concurrent_futures.py", line 107, in __cal
l__
    self._wait_on_event(self._can_finish)
  File "Y:\py3k\__svn__\lib\test\test_concurrent_futures.py", line 79, in _wait_
on_event
    assert r == 0
AssertionError

======================================================================
FAIL: test_timeout (test.test_concurrent_futures.ProcessPoolWaitTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "Y:\py3k\__svn__\lib\test\test_concurrent_futures.py", line 442, in test_
timeout
    future1]), finished)
AssertionError: Items in the second set but not the first:
<Future at 0x2c73a80 state=finished raised AssertionError>

======================================================================
FAIL: test_timeout (test.test_concurrent_futures.ThreadPoolWaitTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "Y:\py3k\__svn__\lib\test\test_concurrent_futures.py", line 442, in test_
timeout
    future1]), finished)
AssertionError: Items in the second set but not the first:
<Future at 0x2c99740 state=finished raised AssertionError>

----------------------------------------------------------------------
Ran 55 tests in 64.828s

FAILED (failures=4)
msg121574 - (view) Author: Brian Quinlan (bquinlan) * (Python committer) Date: 2010-11-19 21:51
Could you try with the patch that I just attached? And thanks for you help, I really appreciated it!
msg121576 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2010-11-19 22:08
> Could you try with the patch that I just attached? And thanks for you
> help, I really appreciated it!

It works ok indeed.
msg121594 - (view) Author: Brian Quinlan (bquinlan) * (Python committer) Date: 2010-11-20 04:10
Fixed in r10183
History
Date User Action Args
2010-11-20 04:10:08bquinlansetstatus: open -> closed
resolution: fixed
messages: + msg121594
2010-11-19 22:08:45pitrousetmessages: + msg121576
2010-11-19 21:51:58bquinlansetfiles: + timing2.patch

messages: + msg121574
2010-11-19 20:55:02pitrousetmessages: + msg121567
2010-11-19 00:17:24bquinlansetfiles: + timing.patch
keywords: + patch
messages: + msg121498
2010-11-18 10:15:38pitrousetmessages: + msg121450
2010-11-18 08:57:11bquinlansetmessages: + msg121448
2010-10-23 18:54:09pitroucreate