-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
Jenkins LTS on Debian Wheezy
Git client plugin 1.10.2
Git plugin 2.2.6
We are using special merge simulator projects for feature branches where
the idea is that the feature branch is automatically merged onto the
master before compiling and testing it so that also the merging behavior
is verified. All of these projects are multi configuration jobs. So far
this worked quite well but since a few days we are noticing a weird
behavior:
In one of the feature branches we did some force pushing and after that
we noticed two error conditions.
1. The coordinator performed the merge successfully, which created a new
revision with hash 5af79d528388216aa25a24c27f0a16d8dc55bdb6. All slaves
of the multi configuration project then try to checkout that revision,
which obviously does not exist in their local repositories. Hence, they
end up with
FATAL: Could not checkout master with start point 5af79d528388216aa25a24c27f0a16d8dc55bdb6 hudson.plugins.git.GitException: Could not checkout master with start point 5af79d528388216aa25a24c27f0a16d8dc55bdb6 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$8.execute(CliGitAPIImpl.java:1448) at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:153) at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:146) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:328) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:701) Caused by: hudson.plugins.git.GitException: Command "git checkout -f 5af79d528388216aa25a24c27f0a16d8dc55bdb6" returned status code 128: stdout: stderr: fatal: reference is not a tree: 5af79d528388216aa25a24c27f0a16d8dc55bdb6 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1276) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1253) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1249) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1065) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1075) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$8.execute(CliGitAPIImpl.java:1431) ... 11 more
2. After wiping the workspace of that job we ended up in a second error
condition already on the coordinator side:
Merging Revision 5af79d528388216aa25a24c27f0a16d8dc55bdb6 () onto origin/master using default strategy FATAL: Could not checkout master with start point 5af79d528388216aa25a24c27f0a16d8dc55bdb6 hudson.plugins.git.GitException: Could not checkout master with start point 5af79d528388216aa25a24c27f0a16d8dc55bdb6 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$8.execute(CliGitAPIImpl.java:1448) at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:153) at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:146) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:328) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:701) Caused by: hudson.plugins.git.GitException: Command "git checkout -f 5af79d528388216aa25a24c27f0a16d8dc55bdb6" returned status code 128: stdout: stderr: fatal: reference is not a tree: 5af79d528388216aa25a24c27f0a16d8dc55bdb6 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1276) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1253) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1249) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1065) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1075) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$8.execute(CliGitAPIImpl.java:1431) ... 11 more
It seems that the master cached the last revision (which it generated
locally, so it will never be available after pulling) and refused to
forget about this revision.
- is related to
-
JENKINS-25191 Git plugin does not correctly record built revision on failed merge
-
- Closed
-
This looks a lot like
JENKINS-25191.The issue is triggered when a commit is 'lost': a merge commit without push, or a force push can lead to missing commits. Jenkins then wants to build the last known revision, which it can't find.
If this is indeed the case, this should be fixed in 2.2.8 release.
You can work around this: