-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
Windows 7, Git v1.9.5, Jenkins v1.615
In the Git plugin for SCM, there is a Sparse Checkout paths option to add under Additional Behaviours. I am currently unable to checkout my git repo using sparse-checkout. To simply this test job, the only step that it contains is the SCM portion.
Things I've checked/done so far:
- Git version is at least 1.9.5
- Ran job without sparse checkout paths and git repo was cloned successfully
- Deleted workspace folder and ran job with sparse checkout option added to the jenkins job and failed: FATAL: java.io.IOException: Remote call on node_name failed
- Manually configured sparsecheckout with desired path and did a git checkout successfully.
- Tried to run the job right after manual sparsecheckout but job failed: FATAL: java.io.IOException: Remote call on node_name failed
- Removed sparse checkout paths option and job passed, but running the job, it reconfigured core.sparsecheckout to be false:
Started by user anonymous Building remotely on _node_name_ in workspace C:\workspace\git-sparse-checkout > C:\Git\cmd\git.exe rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > C:\Git\cmd\git.exe config remote.origin.url user@some-git-server:gitrepo.git # timeout=10 Fetching upstream changes from user@some-git-server:gitrepo.git > C:\Git\cmd\git.exe --version # timeout=10 > C:\Git\cmd\git.exe -c core.askpass=true fetch --tags --progress user@some-git-server:gitrepo.git +refs/heads/*:refs/remotes/origin/* # timeout=90 > C:\Git\cmd\git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10 > C:\Git\cmd\git.exe rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10 Checking out Revision _some_sha_ (refs/remotes/origin/master) > C:\Git\cmd\git.exe config core.sparsecheckout # timeout=10 > C:\Git\cmd\git.exe read-tree -mu HEAD # timeout=10 Command "C:\Git\cmd\git.exe read-tree -mu HEAD" returned status code 128: stdout: stderr: fatal: Not a valid object name HEAD > C:\Git\cmd\git.exe config core.sparsecheckout false # timeout=10 > C:\Git\cmd\git.exe checkout -f _some_sha_ > C:\Git\cmd\git.exe rev-list _some_sha_ # timeout=10 Started calculate disk usage of build Finished Calculation of disk usage of build in 0 seconds Started calculate disk usage of workspace Finished Calculation of disk usage of workspace in 14 second Notifying upstream projects of job completion Finished: SUCCESS
Any assistance with this would be greatly appreciated. I'm currently working with a extremely large git repo (30+ GB) and utilizing sparse-checkout would save greatly on build times and drive space.
FATAL: java.io.IOException: Remote call on node_name failed error:
Started by user anonymous Building remotely on _node_name_ in workspace C:\workspace\git-sparse-checkout Cloning the remote Git repository Using no checkout clone with sparse checkout. Cloning repository user@some-git-server:gitrepo.git > C:\Git\cmd\git.exe init C:\workspace\git-sparse-checkout # timeout=10 Fetching upstream changes from user@some-git-server:gitrepo.git > C:\Git\cmd\git.exe --version # timeout=10 > C:\Git\cmd\git.exe -c core.askpass=true fetch --tags --progress user@some-git-server:gitrepo.git +refs/heads/*:refs/remotes/origin/* # timeout=90 > C:\Git\cmd\git.exe config remote.origin.url user@some-git-server:gitrepo.git # timeout=10 > C:\Git\cmd\git.exe config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 > C:\Git\cmd\git.exe config remote.origin.url user@some-git-server:gitrepo.git # timeout=10 Fetching upstream changes from user@some-git-server:gitrepo.git > C:\Git\cmd\git.exe -c core.askpass=true fetch --tags --progress user@some-git-server:gitrepo.git +refs/heads/*:refs/remotes/origin/* # timeout=90 > C:\Git\cmd\git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10 > C:\Git\cmd\git.exe rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10 Checking out Revision _some_sha_ (refs/remotes/origin/master) FATAL: java.io.IOException: Remote call on _node_name_ failed hudson.plugins.git.GitException: java.io.IOException: Remote call on _node_name_ failed at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:172) at sun.reflect.GeneratedMethodAccessor273.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.invoke(RemoteGitImpl.java:131) at com.sun.proxy.$Proxy67.execute(Unknown Source) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1033) at hudson.scm.SCM.checkout(SCM.java:485) at hudson.model.AbstractProject.checkout(AbstractProject.java:1276) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532) at hudson.model.Run.execute(Run.java:1744) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:98) at hudson.model.Executor.run(Executor.java:374) Caused by: java.io.IOException: Remote call on _node_name_ failed at hudson.remoting.Channel.call(Channel.java:757) at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:145) ... 15 more Caused by: java.lang.ClassNotFoundException: Failed to deserialize the Callable object. Perhaps you needed to implement DelegatingCallable? at hudson.remoting.UserRequest.perform(UserRequest.java:100) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:270) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at hudson.remoting.Engine$1$1.run(Engine.java:59) at java.lang.Thread.run(Thread.java:744) at ......remote call to _node_name_(Native Method) at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1361) at hudson.remoting.UserResponse.retrieve(UserRequest.java:221) at hudson.remoting.Channel.call(Channel.java:753) ... 16 more Caused by: java.lang.ClassNotFoundException: hudson.plugins.git.extensions.impl.SparseCheckoutPath at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:270) at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:625) at hudson.remoting.ObjectInputStreamEx.resolveClass(ObjectInputStreamEx.java:50) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) at java.util.ArrayList.readObject(ArrayList.java:771) at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1706) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1344) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) at java.util.ArrayList.readObject(ArrayList.java:771) at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) at hudson.remoting.UserRequest.deserialize(UserRequest.java:178) at hudson.remoting.UserRequest.perform(UserRequest.java:98) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:270) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at hudson.remoting.Engine$1$1.run(Engine.java:59) at java.lang.Thread.run(Thread.java:744) Started calculate disk usage of build Finished Calculation of disk usage of build in 0 seconds Started calculate disk usage of workspace Finished Calculation of disk usage of workspace in 0 seconds Notifying upstream projects of job completion Finished: FAILURE
- is related to
-
JENKINS-21520 NoClassDefFoundError in git client 1.6.1
-
- Closed
-
Have you confirmed that you're able to perform a sparse checkout on the master node? The message seems to indicate that the class loader on the slave is somehow unable to find the SparseCheckout extension implementation class.
How is the slave agent started?
What operating system and Java version is the slave agent running?
If you configure a slave that executes on the master node (so it is using a remote call, but executing on the master node), does sparse checkout succeed?
Are you using git protocol, http protocol, https protocol, or ssh protocol for the clone? Does it behave any differently if you clone with a different protocol?