MantisBT - CMake | |||||
| View Issue Details | |||||
| ID | Project | Category | View Status | Date Submitted | Last Update |
| 0012904 | CMake | CTest | public | 2012-01-20 11:54 | 2013-05-06 09:32 |
| Reporter | Casey B Goodlett | ||||
| Assigned To | David Cole | ||||
| Priority | normal | Severity | major | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Platform | OS | OS Version | |||
| Product Version | |||||
| Target Version | CMake 2.8.11 | Fixed in Version | CMake 2.8.11 | ||
| Summary | 0012904: 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. | ||||
| Additional Information | |||||
| Tags | No tags attached. | ||||
| Relationships | |||||
| Attached Files | |||||
| Issue History | |||||
| Date Modified | Username | Field | Change | ||
| 2012-01-20 11:54 | Casey B Goodlett | New Issue | |||
| 2012-08-11 21:09 | David Cole | Status | new => backlog | ||
| 2012-08-11 21:09 | David Cole | Note Added: 0030353 | |||
| 2012-12-18 13:33 | David Cole | Assigned To | => David Cole | ||
| 2012-12-18 13:33 | David Cole | Status | backlog => assigned | ||
| 2012-12-18 13:34 | David Cole | Target Version | => CMake 2.8.11 | ||
| 2012-12-18 14:02 | David Cole | Note Added: 0031923 | |||
| 2012-12-26 16:12 | David Cole | Note Added: 0031943 | |||
| 2012-12-27 17:39 | David Cole | Note Added: 0031951 | |||
| 2012-12-27 17:39 | David Cole | Status | assigned => resolved | ||
| 2012-12-27 17:39 | David Cole | Fixed in Version | => CMake 2.8.11 | ||
| 2012-12-27 17:39 | David Cole | Resolution | open => fixed | ||
| 2013-05-06 09:32 | Robert Maynard | Note Added: 0032993 | |||
| 2013-05-06 09:32 | Robert Maynard | Status | resolved => closed | ||
| Notes | |||||
|
|
|||||
|
|
||||
|
|
|||||
|
|
||||
|
|
|||||
|
|
||||
|
|
|||||
|
|
||||
|
|
|||||
|
|
||||