Branch: refs/heads/master
Home: https://github.com/jenkinsci/workflow-plugin
Commit: ae772335e13f9f56a2ccb99e0254848b78e24529
https://github.com/jenkinsci/workflow-plugin/commit/ae772335e13f9f56a2ccb99e0254848b78e24529
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2014-06-13 (Fri, 13 Jun 2014)
Changed paths:
M job/src/test/java/org/jenkinsci/plugins/workflow/job/ParallelStepTest.java
A
job/src/test/resources/org/jenkinsci/plugins/workflow/job/localMethodCallWithinLotsOfBranches.groovy
Log Message:
-----------
Adding a test case that forks off a lot of parallel branches.
... in an attempt to exaggerate the problem.
https://gist.githubusercontent.com/kohsuke/1853b6c2052d01dcaf92/raw/e87e2dad2b2a3f07f3f67bd42f4f6c5fdecbd6e7/gistfile1.txt
Commit: 9aa677c754a2ecc282545f3a8f42c0ebed92e9a6
https://github.com/jenkinsci/workflow-plugin/commit/9aa677c754a2ecc282545f3a8f42c0ebed92e9a6
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2014-06-13 (Fri, 13 Jun 2014)
Changed paths:
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsFlowExecution.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsStepContext.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsThread.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsThreadGroup.java
A cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsVmThread.java
A cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsVmThreadOnly.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/DSL.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/FlowHead.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/ParallelStep.java
Log Message:
-----------
Revisting the threading model.
Designate a thread as a CPS VM execution thread, and ensure that various
critical methods can be only invoked from that thread.
With that assertion in place, remove locks that results in a deadlock such as
https://trello.com/c/7aTFYWM5/26-intermittent-deadlock
and
https://gist.githubusercontent.com/kohsuke/1853b6c2052d01dcaf92/raw/e87e2dad2b2a3f07f3f67bd42f4f6c5fdecbd6e7/gistfile1.txt
Commit: 06fd6900b2f99b82617b2570769c7242acf89ae4
https://github.com/jenkinsci/workflow-plugin/commit/06fd6900b2f99b82617b2570769c7242acf89ae4
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2014-06-13 (Fri, 13 Jun 2014)
Changed paths:
R
cps/src/main/java/org/jenkinsci/plugins/workflow/cps/AtmostOneTaskExecutor.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsFlowExecution.java
Log Message:
-----------
Lock reduction
GraphListener might do anything, so don't call it while holding a lock
Commit: a030bb568d8bc826b1342fb14f39e121c8a8bef5
https://github.com/jenkinsci/workflow-plugin/commit/a030bb568d8bc826b1342fb14f39e121c8a8bef5
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2014-06-13 (Fri, 13 Jun 2014)
Changed paths:
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsFlowExecution.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsStepContext.java
Log Message:
-----------
Acting on CpsThreadGroup from CpsFlowExecution is a common pattern, so create
an idiom
... to schedule a task in CpsVmThread
Commit: 72fbbe238438beb4b1ee3062091c2059947bc15f
https://github.com/jenkinsci/workflow-plugin/commit/72fbbe238438beb4b1ee3062091c2059947bc15f
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2014-06-13 (Fri, 13 Jun 2014)
Changed paths:
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsThreadGroup.java
M job/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowRun.java
M job/src/test/java/org/jenkinsci/plugins/workflow/job/ParallelStepTest.java
M job/src/test/java/org/jenkinsci/plugins/workflow/job/WorkflowTest.java
M
job/src/test/resources/org/jenkinsci/plugins/workflow/job/localMethodCallWithinLotsOfBranches.groovy
Log Message:
-----------
Fixed a race condition.
There's a time lag between
(A) FlowExecution.isComplete() starts returning true,
(B) Future from scheduleRun() signals completion, and
(C) WorkflowRun.finish() call happens to set the final result.
It used to be that the order in which this happens was (A) > (C) > (B)
because head updates and listener notifications happen before Future
signals.
With the change in the previous commit, now the order of the event is
(A) > (B) > (C), which breaks various tests that expect WorkflowRun
to have the final result when CpsFlowExecution completes.
This change fixes back the order.
Commit: cd5c0a3b1b99b2dcb13582f4be16ee7372d872d0
https://github.com/jenkinsci/workflow-plugin/commit/cd5c0a3b1b99b2dcb13582f4be16ee7372d872d0
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2014-06-13 (Fri, 13 Jun 2014)
Changed paths:
M
job/src/test/groovy/org/jenkinsci/plugins/workflow/job/WorkflowJobNonRestartingTest.groovy
Log Message:
-----------
Cleaning up remaining test failures.
They are all test problems.
Commit: 42dbfb1807706b919bb3026b95dfeff17899e44e
https://github.com/jenkinsci/workflow-plugin/commit/42dbfb1807706b919bb3026b95dfeff17899e44e
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2014-06-13 (Fri, 13 Jun 2014)
Changed paths:
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsThreadGroup.java
Log Message:
-----------
shutdown the executor pool when CpsThreadGroup is done
Commit: 423ff49770f73e8685cae338a819b9e082f410e0
https://github.com/jenkinsci/workflow-plugin/commit/423ff49770f73e8685cae338a819b9e082f410e0
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2014-06-13 (Fri, 13 Jun 2014)
Changed paths:
M
flow-support/src/main/java/org/jenkinsci/plugins/workflow/support/actions/LogActionImpl.java
Log Message:
-----------
if a file doesn't exist, serve something empty
Commit: c9f19d93dfb7c15cefa425b4beeeacdb20e6b0e3
https://github.com/jenkinsci/workflow-plugin/commit/c9f19d93dfb7c15cefa425b4beeeacdb20e6b0e3
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2014-06-13 (Fri, 13 Jun 2014)
Changed paths:
M job/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowRun.java
Log Message:
-----------
Fixed a race condition.
execution.isComplete() becomes true before all the listeners are invoked (which
is necessary
because the nodes have to appear as heads before the listener can be called.)
When it happens, waitForCompletion() would return, causing the flyweight
executor to quit,
making QueueTaskFuture to be marked as done. All this happen before finish()
method gets
called and set the result.
In this change, I'm making waitForCompletion() actually wait until the finish()
method runs.
Commit: a904f22273c2fe6db3d494000a301f01d72f7b44
https://github.com/jenkinsci/workflow-plugin/commit/a904f22273c2fe6db3d494000a301f01d72f7b44
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2014-06-13 (Fri, 13 Jun 2014)
Changed paths:
M job/src/test/java/org/jenkinsci/plugins/workflow/job/ParallelStepTest.java
M
job/src/test/resources/org/jenkinsci/plugins/workflow/job/localMethodCallWithinLotsOfBranches.groovy
Log Message:
-----------
Reducing the # of branches.
Otherwise Jenkins seems to have trouble building this in a timely
fashion
Commit: f63fbc90fe7237db71f17b82ab99d50a7db025a3
https://github.com/jenkinsci/workflow-plugin/commit/f63fbc90fe7237db71f17b82ab99d50a7db025a3
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2014-06-17 (Tue, 17 Jun 2014)
Changed paths:
M
basic-steps/src/main/java/org/jenkinsci/plugins/workflow/steps/ArtifactUnarchiverStep.java
M
basic-steps/src/main/java/org/jenkinsci/plugins/workflow/steps/EchoStep.java
M
basic-steps/src/main/java/org/jenkinsci/plugins/workflow/steps/input/InputStep.java
A basic-steps/src/main/resources/index.jelly
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsFlowExecution.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsStepContext.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsThreadGroup.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/DSL.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/FlowHead.java
A cps/src/main/resources/index.jelly
M demo/cd.groovy
M demo/pom.xml
A
demo/src/test/java/org/jenkinsci/plugins/workflow/steps/durable_task/ShellStepTest.java
M
durable-task-step/src/main/java/org/jenkinsci/plugins/workflow/steps/durable_task/DurableTaskStep.java
A durable-task-step/src/main/resources/index.jelly
M
flow-support/src/main/java/org/jenkinsci/plugins/workflow/support/pickles/ExecutorPickle.java
A
flow-support/src/main/java/org/jenkinsci/plugins/workflow/support/pickles/serialization/DryOwner.java
M
flow-support/src/main/java/org/jenkinsci/plugins/workflow/support/pickles/serialization/RiverReader.java
M
flow-support/src/main/java/org/jenkinsci/plugins/workflow/support/pickles/serialization/RiverWriter.java
M
flow-support/src/main/java/org/jenkinsci/plugins/workflow/support/steps/ExecutorStep.java
M
flow-support/src/main/java/org/jenkinsci/plugins/workflow/support/steps/SegmentStep.java
M
flow-support/src/main/resources/org/jenkinsci/plugins/workflow/support/steps/SegmentStep/config.jelly
M job/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowJob.java
M job/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowRun.java
A job/src/main/resources/index.jelly
A
job/src/main/resources/org/jenkinsci/plugins/workflow/job/WorkflowJob/changes.jelly
M
job/src/main/resources/org/jenkinsci/plugins/workflow/job/WorkflowJob/configure-entries.jelly
M
job/src/main/resources/org/jenkinsci/plugins/workflow/job/WorkflowJob/main.jelly
M
job/src/main/resources/org/jenkinsci/plugins/workflow/job/WorkflowJob/sidepanel.jelly
A
job/src/main/resources/org/jenkinsci/plugins/workflow/job/WorkflowRun/changes.jelly
M
job/src/main/resources/org/jenkinsci/plugins/workflow/job/WorkflowRun/index.jelly
M
job/src/main/resources/org/jenkinsci/plugins/workflow/job/WorkflowRun/sidepanel.jelly
M job/src/test/java/org/jenkinsci/plugins/workflow/job/SegmentTest.java
M pom.xml
A scm-step/pom.xml
A
scm-step/src/main/java/org/jenkinsci/plugins/workflow/steps/scm/GitStep.java
A
scm-step/src/main/java/org/jenkinsci/plugins/workflow/steps/scm/MercurialStep.java
A
scm-step/src/main/java/org/jenkinsci/plugins/workflow/steps/scm/MultiSCMRevisionState.java
A
scm-step/src/main/java/org/jenkinsci/plugins/workflow/steps/scm/SCMStep.java
A
scm-step/src/main/java/org/jenkinsci/plugins/workflow/steps/scm/SubversionStep.java
A scm-step/src/main/resources/index.jelly
A
scm-step/src/test/java/org/jenkinsci/plugins/workflow/steps/scm/GitStepTest.java
A
scm-step/src/test/java/org/jenkinsci/plugins/workflow/steps/scm/MercurialStepTest.java
A
scm-step/src/test/java/org/jenkinsci/plugins/workflow/steps/scm/SubversionStepTest.java
A stm/src/main/resources/index.jelly
Log Message:
-----------
Merge branch 'master' into single-thread
Conflicts:
job/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowRun.java
Commit: 1c89f5dfa658ccbbd1744d069ae80040e1b7a5eb
https://github.com/jenkinsci/workflow-plugin/commit/1c89f5dfa658ccbbd1744d069ae80040e1b7a5eb
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2014-06-28 (Sat, 28 Jun 2014)
Changed paths:
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsFlowExecution.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsStepContext.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsThread.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsThreadGroup.java
A cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsVmThread.java
A cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsVmThreadOnly.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/DSL.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/FlowHead.java
M cps/src/main/java/org/jenkinsci/plugins/workflow/cps/ParallelStep.java
M job/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowRun.java
M
job/src/test/groovy/org/jenkinsci/plugins/workflow/job/WorkflowJobNonRestartingTest.groovy
M job/src/test/java/org/jenkinsci/plugins/workflow/job/ParallelStepTest.java
M job/src/test/java/org/jenkinsci/plugins/workflow/job/WorkflowTest.java
A
job/src/test/resources/org/jenkinsci/plugins/workflow/job/localMethodCallWithinLotsOfBranches.groovy
M
support/src/main/java/org/jenkinsci/plugins/workflow/support/actions/LogActionImpl.java
Log Message:
-----------
Merge remote-tracking branch 'origin/single-thread'
This branch ensures that CPS program execution and relevant state change
happens from a single thread. This eliminates locks, and generally
reduce the likelihood of a deadlock problem.
Conflicts:
cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsThreadGroup.java
job/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowRun.java
Compare:
https://github.com/jenkinsci/workflow-plugin/compare/480783b0e91f...1c89f5dfa658
--
You received this message because you are subscribed to the Google Groups
"Jenkins Commits" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.