-
Improvement
-
Resolution: Fixed
-
Major
-
None
What happened:
I have two slaves (1 & 2). I took slave 1 down for maintenance and a bunch of old, rarely updated, git builds kicked off. When I checked the git polling log, I saw a message (it's gone now, darn it) that said it was rebuilding to get workspace for git polling.
A workspace shouldn't be needed.
I'm unclear what git needs for this, but if you're tracking only a single branch (master) then you just need the HEAD and can compare the SHA1s.
If it technically really really needs a git checkout, then I'd prefer if they were kept on an assigned host (the jenkins server in my case, master) instead of using the workspaces for this check. I'd want this for a couple reasons:
- Slaves come and go. Rebuilding all my projects because a slave went down is unproductive.
- Occasionally, I need to go into a slave and monkey with a workspace to troubleshoot a weird problem. I don't want that to impact polling.
- It's a waste of space on the slaves. I'd rather control where the space is wasted.
Ciao!
- is related to
-
JENKINS-9596 SCM polling with GIT creates Spurious Builds with "No Changes"
-
- Open
-
-
JENKINS-10880 Git plugin fails on remote Poll
-
- Closed
-
-
JENKINS-20607 Gerrit trigger caused git plugin polling to not ignore commit from certain users
-
- Open
-
-
JENKINS-9067 Add "Only poll using master" option
-
- Resolved
-
[JENKINS-10131] Git polling shouldn't need a workspace on a slave.
Link | New: This issue is related to JENKINS-9596 [ JENKINS-9596 ] |
Okay! I just figured out this bug is what causes massive amounts of builds to kick off whenever a slave goes down. It is also why all builds kick off when I restart Jenkins!
Lets assume we have a set of jobs, J, that require slaves of label L. If all slaves of label L go down, then there are no workspaces available for J, therefore the git plugin kicks off builds for all jobs J to get a workspace.
In addition, it seems that sometimes on restart the git plugin kicks off before the slaves come online causing all jobs on the system to kick off!
Finally, this also breaks the "only bring up slave when needed" functionality. I imagine it breaks the "provision a slave automatically" feature as well.
This really needs to be fixed. It means any maintenance task renders the build system busy for hours (we have 100s of builds, some of which are very long). It also needlessly bumps version numbers for no obvious reason which causes confusion.