See this earlier thread for the Iterator serialization issue:

https://groups.google.com/d/msg/jenkinsci-users/LGRv7Jq60YI/ZN-68zuw2loJ

On Wednesday, October 14, 2015 at 10:33:41 AM UTC-7, Michael Štědrý wrote:
>
> Hi Andres,
>
> I've got one more interesting thing for you. I managed to get your sample 
> working even though I had to remove the functions:
>
> def testList = "test1 test2".split()
> def branches = [:]
> for (int i = 0; i < testList.length; i++) {
>     def testName = testList[i];
>     branches[testName] = {
>         echo testName
>         sleep 20
>     }
> }
> parallel branches
>
> What I found out is that I couldn't use the nice for loop because it fails 
> with:
>
> java.io.NotSerializableException: java.util.AbstractList$Itr
>
> ...
>
> Caused by: an exception which occurred:
>       in field itr
>       in field target
>       in field continue_
>       in field parent
>       in field capture
>       in field def
>       in field closures
>       in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@8b36066
>
>
> And when I put the creation of the branches in a function it started to 
> behave strangely.
>
>
> On Sunday, September 27, 2015 at 10:25:47 PM UTC+2, Andres Rodriguez wrote:
>>
>> Hi Everyone,
>>
>> First of all, I want to say that I'm really enjoying the workflow plugin. 
>> Thanks for all the effort in bringing this feature to production. Specially 
>> loading the DSL file from a git repository allows us to auto-test our 
>> changes to a job through the same mechanism that we test changes to the 
>> code (using Gerrit).
>>
>> I'm currently encountering some weird behavior when generating a list of 
>> tests parallel branches dynamically. I've boiled it down to the following 
>> small test case that you can paste into the workflow script box:
>>
>> @NonCPS
>> def generateTestBranches (testList) {
>>     def branches = [:]
>>     for (testName in testList.split()) {
>>         branches[testName] = {
>>             echo testName
>>             sleep 20
>>         }
>>     }
>>     return branches
>> }
>>
>> def runTests (testList) {
>>     def testBranches = generateTestBranches(testList)
>>     parallel testBranches
>> }
>>
>> runTests "test1 test2"
>>
>> The output of this job (it can't be aborted):
>>
>> Running: Execute sub-workflows in parallel : Start
>> [test1] Running: Parallel branch: test1
>> Aborted by anonymous <http://krussell:8080/user/anonymous>
>> Aborted by anonymous <http://krussell:8080/user/anonymous>
>> Aborted by anonymous <http://krussell:8080/user/anonymous>
>>
>>
>> I've also tried replacing the "parallel testBranches" with a simple loop 
>> to execute the closures in the map manually (my understanding is that 
>> map.each is broken atm so I used a loop instead):
>>
>>     for ( test in testBranches) {
>>          echo "executing ${test.key}"
>>          test.value()
>>     }
>>
>> And the output is as follows (note that it prints test2 instead of test1 
>> from inside the closure):
>>
>> Started by user anonymous <http://krussell:8080/user/null>
>> Running: Print Message
>> executing test1
>> Running: Print Message
>> test2
>> Running: Print Message
>> executing test2
>> Running: Print Message
>> test2
>> Running: End of Workflow
>> Finished: SUCCESS
>>
>>
>> I'm not a Groovy expert (I just started learning for the workflow 
>> plugin), so I might be doing something dumb here. I'm trying to read the 
>> groovy docs to figure out if the way I'm generating the closure is an 
>> issue. But overall the state the system gets into seems to be pretty bad 
>> (can't abort the job). So I wanted to send out an email here just in case 
>> this is a problem with the Jenkins groovy core.
>>
>> Thanks again for the constant improvements to the workflow plugin.
>>
>> Regards,
>> Andres
>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/a38e1340-2591-4560-aaaf-fb74d51b1918%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to