I updated to branch API plugin 2.5.0 today. When I scan a multibranch Pipeline (Git branch source or GitHub branch source) the first time after the upgrade to branch API plugin 2.5.0, all jobs in that multibranch Pipeline are started. That means (in my case) that I now have more than 500 jobs in the queue waiting to run.
The "Scan repository log" of the multibranch job shows:
Started by user Mark Waite [Tue May 21 13:37:54 MDT 2019] Starting branch indexing... 13:37:55 Connecting to https://api.github.com using MarkEWaite/****** (github personal access token for home.markwaite.net) Examining MarkEWaite/jenkins-bugs-private Checking branches... Getting remote branches... Checking branch master Getting remote pull requests... ‘Jenkinsfile’ found Met criteria Changes detected: master (null → 49101d07a954d083cae4bb0a06aaa081c6ae0fc8) Scheduled build for branch: master Checking branch JENKINS-06203 ‘Jenkinsfile’ found Met criteria Changes detected: JENKINS-06203 (null → 6de0c64bb4cc6eb12964479bf37f5bb202f52aa4) Scheduled build for branch: JENKINS-06203
Each repository reports that changes are detected in the transition from null to a SHA-1. However, I know that almost every one of the branches in that repository have received no changes since before the update.
Once the initial scan has completed and the resulting rebuild of all branches is complete, then the "Scan repository log" starts no job and the change detection message says:
No changes detected: master (still at 49101d07a954d083cae4bb0a06aaa081c6ae0fc8)
- is related to
-
JENKINS-57618 Implement automated tests for Branch API 2.5.1
-
- Open
-
- links to
[JENKINS-57588] Branch API 2.5.0 rebuilds all multibranch jobs on first scan after upgrade
Issue Type | Original: Task [ 3 ] | New: Bug [ 1 ] |
Environment |
Original:
Jenkins 1.76 (selected for next LTS baseline) Git plugin 3.10.0 Git client plugin 2.7.7 Branch API plugin 2.5.0 |
New:
Jenkins 2.176 (selected for next LTS baseline) Git plugin 3.10.0 Git client plugin 2.7.7 Branch API plugin 2.5.0 |
Environment |
Original:
Jenkins 2.176 (selected for next LTS baseline) Git plugin 3.10.0 Git client plugin 2.7.7 Branch API plugin 2.5.0 |
New:
Jenkins 2.164.3 (latest LTS) Git plugin 3.10.0 Git client plugin 2.7.7 Branch API plugin 2.5.0 Jenkins 2.176 (selected for next LTS baseline) Git plugin 4.0.0-beta10 pre-release Git client plugin 3.0.0-beta10 pre-release Branch API plugin 2.5.0 |
Description |
Original:
I updated to branch API plugin 2.5.0 today. When I scan a multibranch Pipeline (Git branch source or GitHub branch source) the first time after the upgrade to branch API plugin 2.5.0, all jobs in that multibranch Pipeline are started. That means (in my case) that I now have more than 500 jobs in the queue waiting to run. The "Scan repository log" of the multibranch job shows: {noformat} Started by user Mark Waite [Tue May 21 13:37:54 MDT 2019] Starting branch indexing... 13:37:55 Connecting to https://api.github.com using MarkEWaite/****** (github personal access token for home.markwaite.net) Examining MarkEWaite/jenkins-bugs-private Checking branches... Getting remote branches... Checking branch master Getting remote pull requests... ‘Jenkinsfile’ found Met criteria Changes detected: master (null → 49101d07a954d083cae4bb0a06aaa081c6ae0fc8) Scheduled build for branch: master Checking branch ‘Jenkinsfile’ found Met criteria Changes detected: Scheduled build for branch: {noformat} Each repository reports that changes are detected in the transition from {{null}} to a SHA-1. However, I know that almost every one of the branches in that repository have received no changes since before the update. |
New:
I updated to branch API plugin 2.5.0 today. When I scan a multibranch Pipeline (Git branch source or GitHub branch source) the first time after the upgrade to branch API plugin 2.5.0, all jobs in that multibranch Pipeline are started. That means (in my case) that I now have more than 500 jobs in the queue waiting to run. The "Scan repository log" of the multibranch job shows: {noformat} Started by user Mark Waite [Tue May 21 13:37:54 MDT 2019] Starting branch indexing... 13:37:55 Connecting to https://api.github.com using MarkEWaite/****** (github personal access token for home.markwaite.net) Examining MarkEWaite/jenkins-bugs-private Checking branches... Getting remote branches... Checking branch master Getting remote pull requests... ‘Jenkinsfile’ found Met criteria Changes detected: master (null → 49101d07a954d083cae4bb0a06aaa081c6ae0fc8) Scheduled build for branch: master Checking branch ‘Jenkinsfile’ found Met criteria Changes detected: Scheduled build for branch: {noformat} Each repository reports that changes are detected in the transition from {{null}} to a SHA-1. However, I know that almost every one of the branches in that repository have received no changes since before the update. Once the initial scan has completed and the resulting rebuild of all branches is complete, then the "Scan repository log" starts no job and the change detection message says: {noformat} No changes detected: master (still at 49101d07a954d083cae4bb0a06aaa081c6ae0fc8) {noformat} |
Summary | Original: Branch API 2.5.0 rebuilds all jobs in my multibranch folder | New: Branch API 2.5.0 rebuilds all jobs in multibranch folder on first scan after upgrade |
Status | Original: Open [ 1 ] | New: In Progress [ 3 ] |
Refer to pull request 152 for an initial idea that might prevent the build storm.
It seems that line 2082 in the diff might not be handling the initial startup case where a job already exists but the lastSeenRevision file has not been written.