Skip to content
This repository has been archived by the owner on Nov 19, 2024. It is now read-only.

JENKINS-24450 JacocoPublisher serializes concurrent builds waiting for checkpoint #45

Merged
merged 1 commit into from
Sep 13, 2014

Conversation

basil
Copy link
Member

@basil basil commented Aug 26, 2014

See the bug for a description of the problem and the cause.

The solution is to switch from BuildStepMonitor.BUILD to BuildStepMonitor.NONE. This necessitates auditing the code for the assumption that all previous builds have completed and making the necessary adjustments.

To accomplish the above, we grepped for Job#getLastBuild, Job#getFirstBuild, Run#getPreviousBuild(), Run#getPreviousBuildInProgress, and Run#getPreviousBuiltBuild throughout the codebase. We then examined all the methods that use this functionality and adapted them to work under the new assumption that previous builds may be still running.

In particular, we made the utility methods in JacocoBuildAction and JacocoProjectAction skip over builds that are in progress while building the data model for the coverage graph. We also updated the portlet classes JacocoLoadData and Utils to start at the last completed build (instead of the last build, which could be currently running) and to skip over currently running builds when iterating backwards in time.

@cloudbees-pull-request-builder

plugins » jacoco-plugin #53 SUCCESS
This pull request looks good

@jenkinsadmin
Copy link
Member

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests

@basil
Copy link
Member Author

basil commented Aug 27, 2014

Testing done:

Ran several concurrent builds of the same job. Cancelled some. Previously, they hung waiting for a checkpoint. With this fix, they no longer hang.

Also visited the portlet and verified that the coverage graph displayed correctly.

centic9 added a commit that referenced this pull request Sep 13, 2014
JENKINS-24450 JacocoPublisher serializes concurrent builds waiting for checkpoint
@centic9 centic9 merged commit 68adb76 into jenkinsci:master Sep 13, 2014
@centic9
Copy link
Member

centic9 commented Sep 13, 2014

Thanks for the patch!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants