[JIRA] [git-plugin] (JENKINS-29278) Git Sparse Checkout Failure

66 views
Skip to first unread message

leilani.morton@baesystems.com (JIRA)

unread,
Jul 7, 2015, 3:49:01 PM7/7/15
to jenkinsc...@googlegroups.com
Lani Morton created an issue
 
Jenkins / Bug JENKINS-29278
Git Sparse Checkout Failure
Issue Type: Bug Bug
Assignee: Nicolas De Loof
Components: git-plugin, multiple-scms-plugin
Created: 07/Jul/15 7:48 PM
Environment: Windows 7, Git v1.9.5, Jenkins v1.615
Priority: Minor Minor
Reporter: Lani Morton

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 failed: stderr: fatal: Not a valid object name HEAD

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.

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v6.4.2#64017-sha1:e244265)
Atlassian logo

leilani.morton@baesystems.com (JIRA)

unread,
Jul 7, 2015, 4:01:01 PM7/7/15
to jenkinsc...@googlegroups.com
Lani Morton updated an issue
Change By: Lani Morton
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 failed: stderr: fatal: Not a valid object name HEAD


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:
{code:java}
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
{code}

leilani.morton@baesystems.com (JIRA)

unread,
Jul 7, 2015, 4:06:02 PM7/7/15
to jenkinsc...@googlegroups.com
Lani Morton updated an issue
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  failed  passed, but reconfigured core.sparsecheckout to be false :
{code:java}
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
{code}




stderr: fatal: Not a valid object name HEAD error:
{code:java}

{code}

leilani.morton@baesystems.com (JIRA)

unread,
Jul 7, 2015, 4:09:02 PM7/7/15
to jenkinsc...@googlegroups.com
Lani Morton updated an issue
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:

leilani.morton@baesystems.com (JIRA)

unread,
Jul 7, 2015, 4:09:02 PM7/7/15
to jenkinsc...@googlegroups.com
Lani Morton updated an issue
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 reconfigured core.sparsecheckout to be false:



stderr: fatal: Not a valid object name HEAD error:
{code:java}

{code}

mark.earl.waite@gmail.com (JIRA)

unread,
Jul 7, 2015, 10:52:01 PM7/7/15
to jenkinsc...@googlegroups.com
Mark Waite commented on Bug JENKINS-29278
 
Re: Git Sparse Checkout Failure

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?

leilani.morton@baesystems.com (JIRA)

unread,
Jul 9, 2015, 1:45:02 PM7/9/15
to jenkinsc...@googlegroups.com

Slave nodes are setup via Windows services.
OS: Windows 7
Java: 7.45

The jobs set up are triggered to run on the slave node, never on the master node. This is not an option to change as there are quite a few slave nodes that are set up, which all needs to be able to conduct a sparse checkout. I was able to successfully do a sparse checkout on a slave node, which is the same node that failed when testing the sparse checkout feature in Jenkins.

SSH protocol is being used (user@some-git-server:gitrepo.git). I also verified that the .ssh folder with my openSSL key is set up correctly. There are no other protocol optionals to switch to.

mark.earl.waite@gmail.com (JIRA)

unread,
Jul 9, 2015, 2:00:01 PM7/9/15
to jenkinsc...@googlegroups.com

Nicolas De Loof just discovered a slave node class loading problem (mentioned in

JENKINS-21520 ) which might also be causing this message. He's started a pull request for the git client plugin based on what he learned. A similar change will be needed in the git plugin.

Once the change has been included in the git client plugin, if you're interested in trying a pre-release build, we could provide you pre-release builds of the next git client plugin and the next git plugin. I don't know if his change will resolve your issue, but it looks surprisingly similar to the issue he was encountering.

mark.earl.waite@gmail.com (JIRA)

unread,
Jul 18, 2015, 5:29:03 PM7/18/15
to jenkinsc...@googlegroups.com

The git client plugin 1.18.0 release and the git plugin 2.4.0 release were both delivered today. They include the work around for

JENKINS-21520 mentioned in the previous comment. Please try them to see if that improves the behavior.

Also, please share how you're starting your slave nodes, whether as swarm agents, as JNLP from the Windows desktop, as services, or some other way.

mark.earl.waite@gmail.com (JIRA)

unread,
Jul 21, 2015, 10:32:02 AM7/21/15
to jenkinsc...@googlegroups.com
Mark Waite resolved as Fixed
Change By: Mark Waite
Status: Open Resolved
Resolution: Fixed

mark.earl.waite@gmail.com (JIRA)

unread,
Oct 22, 2019, 9:32:36 PM10/22/19
to jenkinsc...@googlegroups.com
Mark Waite closed an issue as Fixed
Change By: Mark Waite
Status: Resolved Closed
This message was sent by Atlassian Jira (v7.13.6#713006-sha1:cc4451f)
Atlassian logo
Reply all
Reply to author
Forward
0 new messages