Ops, sorry Chris, I only tested the master branch.
I've sent a pull request [1] with a change the seems to fix this issue. Below is the pull request message. Cheers. >>> JENKINS-14278: added code to make sure that the number of executors is updated For tracking what was causing this issue, I put a breakpoint before the first Future<?>#get() method call, as the execution was dying there. Then I called the HudsonTestCase#getURL() method, to get the Jenkins URL (it's very convenient). This way I could see the jobs configuration, it was very useful since I don't know very well the objects created by parameterized-trigger-plugin. Then I noticed there were only two executors. Following the debug stack, I found later that project1 was waiting for another project (I think it was projectZ4 maybe? sorry, I closed the debugger already) and that this latter project was waiting for another project that was never executed. Going back to Jenkins main page, there were only two executors, even after Hudson#setNumExecutors(10) was called. Then I had a quick look at Jenkins#doSubmitConfig(...) method, and realized that after updating the number of executors, you had to update the nodes/computers configuration as well. Then, as I'm a lazy bastard, I went to my search engine and searched for Jenkins setnumexecutors and found some code with the following code snippet: hudson.setNodes(hudson.getNodes()); I think the method that needs to be called after setNumExecutors is updateComputerList, that is package protected, but is called from this setNodes method. And then all the tests passed :) Other files were changed to remove warnings in Eclipse, to use hamcrest-1.3 as maven couldn't find hamcrest-1.2 or for compliance with Java 1.5 (@override annotations). These changes are not required to fix this issue. Hope that helps. Bruno <<< [1] https://github.com/cjo9900/parameterized-trigger-plugin/pull/1 Bruno P. Kinoshita http://kinoshita.eti.br http://tupilabs.com >________________________________ > From: cjo <[email protected]> >To: [email protected] >Cc: Bruno P. Kinoshita <[email protected]> >Sent: Friday, 20 July 2012 5:49 AM >Subject: Re: Test cases failing with multiple levels of builds > > >Did you build and test the JENKINS-14278 branch or the master one? > > >As I see you eclipse changes only on the master branch not JENKINS-14278. >which is where I have added the changes to the test cases. > > >Chris. > >On Friday, July 20, 2012 1:15:30 AM UTC+1, kinow wrote: >Hi Chris, >>I've forked the repo at [1] from [2], did the usual changes to remove the >>Eclipse warnings, plus replaced hamcrest-1.2 by hamcrest-1.3 and then >>executed mvn -e -X clean test, and couldn't see any errors. Then I tried >>running TriggerBuilderTest with JUnit plug-in in Eclipse, and again all tests >>passed. >>My settings: Debian 6 3.2 64bits, Java 1.6, Eclipse Juno, Maven 3.0.4. >>Just my 0.02 cents. Maybe I've missed something from your problem, but I >>believe someone else here with more knowledge of parameterized-trigger-plugin >>or Jenkins codebase will be able to help you more :-) >>Cheers, >>[1] https://github.com/kinow/ parameterized-trigger-plugin. git >>[2] https://github.com/cjo9900/ parameterized-trigger-plugin. git >>Bruno P. Kinoshita >>http://kinoshita.eti.br >>http://tupilabs.com >> >>>_____________________________ ___ >>> From: cjo <[email protected]> >>>To: [email protected] >>>Sent: Thursday, 19 July 2012 9:46 AM >>>Subject: Test cases failing with multiple levels of builds >>> >>> >>>Hi all, >>> >>> >>>I'm looking at fixing JENKINS-14278[1] on the parameterized-trigger plugin. >>> >>> >>>I think I have fixed the issue, and I wrote tests that show the issues >>>before making the changes. >>>Testcases commited at [2] >>>Code Fixes at [3] >>> >>> >>>However once making the changes to the plugin the test case still fails, in >>>a different way. >>>Before the fix the test case failed with the java.lang. >>>IllegalArgumentException as per the error report, >>>after the fix the test case just hung and never completed. >>> >>> >>>The test case involves a matrix project being configured to call builds on >>>other projects while waiting for them to finish >>>this gives the following build chain >>> >>> >>>Matrix parent -> Matrix child (triggers+block) -> Project1 >>>Debugging through this shows that the Project1 never get called to run, >>>which causes the parameterized-trigger to hang while waiting for the the >>>build to finish at Future.get() in BlockableBuildTriggerConfig.[ 4] >>> >>> >>>If the test is configured to not block, the Matrix child builds complete and >>>indicate that the subjobs were triggered, but the logs do not show them >>>every running. >>> >>> >>> >>> >>>To see if this hang was related to the MatrixProject, I also created a test >>>case where a build triggers another one which also triggers others . >>> >>> >>>ProjectA (triggers+block) -> ProjectB (triggers+block) -> ProjectC. >>> >>> >>>The same error ocurs in this case ProjectC does not seem to run, and also >>>hangs at Future.get()[4] >>>So this looks like an issue in the test case running. >>> >>> >>>The issue is not "no free executors" as i have increased that to greater >>>than the total combination of builds. >>> >>> >>> >>> >>>Can anyone see why the second level of jobs is not running in the test >>>harness? >>>as when creating the jobs on a proper Jenkins instance they work with no >>>issues at all. >>> >>> >>> >>> >>> >>> >>>[1]https://issues.jenkins-ci. org/browse/JENKINS-14278 >>>[2]https://github.com/ cjo9900/parameterized-trigger- plugin/commit/ >>>f26766b3eca5ebdd3388b1a0ba2fdb 86c338c9fc >>>[3]https://github.com/ cjo9900/parameterized-trigger- plugin/commit/ >>>ca9992f8110aa6991dd013e4f7100f ee229bf92d >>>[4]https://github.com/ cjo9900/parameterized-trigger- >>>plugin/blob/JENKINS-14278/src/ main/java/hudson/plugins/ >>>parameterizedtrigger/ TriggerBuilder.java#L115 >>> >>> >>> >>> >>>Thanks for any help on this. >>> >>> >>>Chris. >>> >>> >> > >
