[cmake-developers] [CMake 0012904]: Parallel ctest starts too many tests when a test depends on another test that uses the RUN_SERIAL property
Mantis Bug Tracker
mantis at public.kitware.com
Fri Jan 20 11:54:39 EST 2012
The following issue has been SUBMITTED.
======================================================================
http://www.cmake.org/Bug/view.php?id=12904
======================================================================
Reported By: Casey B Goodlett
Assigned To:
======================================================================
Project: CMake
Issue ID: 12904
Category: CTest
Reproducibility: always
Severity: major
Priority: normal
Status: new
======================================================================
Date Submitted: 2012-01-20 11:54 EST
Last Modified: 2012-01-20 11:54 EST
======================================================================
Summary: Parallel ctest starts too many tests when a test
depends on another test that uses the RUN_SERIAL property
Description:
Parallel ctest can start too many tests (unbounded number) when a test that can
be run in parallel depends on a test that uses the RUN_SERIAL property. This
can cause an unbounded number of tests to spawn which will hang the test machine
if not caught right away.
Here is the case I debugged
Parallel level for ctest = 4
Current # tests running = 1
Try to start a new test A which should take only 1 processor so it should be
able to start in parallel with the current 1 processors test.
However when trying to start test A the dependencies are checked; instead of
starting A the dependent test B is started which takes 4 processors becuse it is
set to RUN_SERIAL=true.
The check on whether the test can be started only checks the number of
processors required by test A (cmCTestMultiProcessHandler.cxx:265) so test B is
allowed to start in place of test A.
As a result test B is started and now there are 5 processors in use even though
the parallel level is supposed to be 4. This causes unsigned overflow when
looking for the number of tests to run in the next step (
cmCTestMultiProcessHandler::StartNextTests() first line)
Steps to Reproduce:
I do not have a simple CMakeLists to reproduce the problem. I can only
reproduce this in cmake 2.8.4 before the switch from sort -> stable_sort as the
tests get reordered which prevents this bug from being triggered. Based on code
inspection, it looks like this bug still exists in master although I no longer
have a reproducing case.
======================================================================
Issue History
Date Modified Username Field Change
======================================================================
2012-01-20 11:54 Casey B GoodlettNew Issue
======================================================================
More information about the cmake-developers
mailing list