Change By: Benjamin Ernst (02/Jun/14 10:07 AM)
Description: Hi, we have found an issue in our build pipeline. We are using Jenkins ver. 1.532.3

The setup is as follows:
* The master does not execute builds
* There are multiple slave nodes connected to the master. All builds are executed on the slaves
* Job A
** is polling for SCM
** is set to have a quiet period of 10 seconds
** on build, is generating an artifact
* Job B
** is polling for SCM
** is set to have a quiet period of 10 seconds
** is set to be dependent on Job A ("Build after other projects are built")
** is set to not build when upstream jobs are building ("Block build when upstream project is building")
** on build, downloads $HUDSON_URL/job/A/lastSuccessfulBuild/[path-to-artifact]/artifact.zip

Given that
* Job A's last successful build is #9
* Job B's last successful build is #19
*
 -  User Eve checks in files to a location observed by both jobs -
* User Eve checks in files such that both jobs will detect an SCM change

We can now observe the following sequence of events:
# Job A observes the changes and triggers build #10 that is put into the waiting queue
# Job B observes the changes and triggers build #20 that is put into the waiting queue
# The quiet period elapses, job A build #10 starts to build
# Job A build #10 is finished generating the artifact, it is uploaded to the master
# Job A build #10 tries to trigger a new build of Job B. Job B build #20 is already in the waiting queue, so no new build is triggered
# Job A build #10 does not complete for the next 30 seconds. we believe this is due to uploading the build log to the master, but we are uncertain about this.
# {color:red}Job B build #20 starts to build{color}
# {color:red}Job B build #20 downloads $HUDSON_URL/job/A/lastSuccessfulBuild/[path-to-artifact]/artifact.zip (lastSuccessfulBuild seems to point to Job A build #9 at this time){color}
# Job A completes with the message "Finished: SUCCESS"
# No more builds of Jobs A and B are pending/will be running

We are uncertain whether the problem lies in step 7 or step 8. Our requirement is that Job B build #20 downloads the artifact of the last succeeded build of job A, which should be build #10. This seems like a bug to us.

This issue seems related to JENKINS-5125. [Looking at the source code|https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/model/Job.java#L286] reveals that this code fragment proposed in JENKINS-5125 is not implemented:
{code}
public boolean isBuilding() {
    RunT b = getLastBuild();
    return b!=null && b.isLogUpdated();
}
{code}

We think there might be a chance that implementing this code fragment would also fix our issue.
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira

--
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to