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.

Reply via email to