Okay, thinking laterally here.

Let’s assume that the Git plugin timeout is hardcoded to 10 minutes.  Now, all 
you have to do is bring the checkout under 10 minutes.  This may well be 
solvable.

First, if you haven’t done it already, use shallow checkouts.  The Git plugin 
has had that since 1.1.23 (September 2012).  If you’re building, you don’t need 
the histories, just the current version.  If that doesn’t help…

Get a sysadmin and profile the pulls.  Is your Git server maxing out on CPU or 
(more likely) disk I/O?  Is your client?

If your server is maxxing out, you need to either beef up your server or reduce 
the load.  Increasing disk speed is between you and your sysadmins, assuming 
that you own the server.  Reducing load?  Try one or more of these:


·         Stop polling.  If you can use GitLab, there’s a plugin to have GitLab 
push to Jenkins.  If you have a dozen polling projects, this will reduce load 
big-time.  There may be other Git push solutions for other Git servers; I don’t 
know.

·         The last time I had checkouts take over 10 minutes (on a proprietary 
system, not Git), the problem was that nightly builds kicked off all at once 
and tried to pull 60 branches of the code at once.  Solution?  Use the 
https://wiki.jenkins-ci.org/display/JENKINS/Throttle+Concurrent+Builds+Plugin, 
make pulling from source control into its own step, and only allow 3-5 
simultaneous pulls.

·         If you have to poll, set up your polling schedule with ‘H’ notation 
(see the help for the polling schedule on your  job) to spread the polling 
around.

·         Compress the binaries you have in Git.  That can’t all be source, can 
it?

·         Better yet, put the binaries into something like Artifactory and have 
the build job pull them down after getting the actual source.

If your network is maxxing out, try one or more of these (some assume that you 
own your Git server hardware and network—if you’re running off of GitHub, some 
of these won’t work).


·         Put your build machines (and thus your Jenkins slaves) on the same 
subnet as the Git server, whether or not the Jenkins server is there as well.  
If that’s impossible, at least get it to the same site (so it’s all LAN, no 
WAN).

·         Replicate the Git server on the subnet your build hosts are on.  Git 
is built to be distributed.

·         If you can’t put your build farm near your source farm, at least get 
a Jenkins slave over on the same network as the Git server.  Give it a job that 
polls Git.  Rather than actually performing the build, have it compress the 
sources into a giant Zip file, archives that, then kick off a downstream job 
(that runs on your local build farm) that unzips the artifact and does the 
build and test run.  You may need plugins to do this right.  The upstream job 
will still be able to tell you the changes made to the source, and point you to 
the downstream job with the actual results.

If the server and network are fine, but your build box is maxxed out on I/O 
writes, you’re going to have to beef up your hardware (or run fewer builds at 
once, if you run multiple builds on one host).  Get faster drives and/or get a 
RAID controller for your builds and put it into some sort of striping mode for 
faster writes.  If you just keep your sources and builds on the RAID (having 
more permanent things like the OS and your compilers on another drive/RAID), 
you probably don’t have to have that RAID actually be redundant.  If a drive 
blows, you lose your current build, swap out another drive, and try again.

--Rob

From: [email protected] 
[mailto:[email protected]] On Behalf Of Mark Waite
Sent: Wednesday, July 23, 2014 1:03 PM
To: [email protected]
Subject: Re: Hi friends is it possible clone 18 GB repository in Jenkins....

Please, read my earlier 
reply<https://groups.google.com/d/msg/jenkinsci-users/xMYzhcYnC0s/vs7VGo7gETIJ> 
on this same thread.  The answer is the same to this question, since they are 
the same failure.

The problem is in the git client plugin or in the combination of the git client 
plugin, your very large repository, your slow file system, and/or your 
unwillingness to use "sparse checkout" to reduce the size of the content to be 
checked out to the working directory.

Mark Waite

On Wednesday, July 23, 2014 9:24:44 AM UTC-6, bandi pavankumar reddy wrote:
Hi mark please suggest me any thing still i am getting this error even i 
mentioned time out also..
problem is with Jenkins or git....

i configured correctly and i configured time out 60 minutes and while starting 
build OK after 13 to 14 minutes it was giving error time out..some files 
fetching and cloning also....but i having total 16 files in that 7 files 
cloning in 13 minute ....but still 6 file's pending with time out error...i was 
configured git repository with advanced clone option in that i mentioned time 
out.....i am sending Error... i tryed with shallow clon also

Fetching upstream changes from 
[email protected]:Uuuu_P_SOURCE.git<mailto:[email protected]:Uuuu_P_SOURCE.git>
> C:\Program Files (x86)\Git\bin\git.exe fetch --tags --progress 
> [email protected]:Uuuu_P_SOURCE.git<mailto:[email protected]:Uuuu_P_SOURCE.git>
>  +refs/heads/*:refs/remotes/origin/*
> C:\Program Files (x86)\Git\bin\git.exe rev-parse "origin/master^{commit}"
Checking out Revision a9f4bc55deac7ceb3ef93799ca15a83cea955242 (origin/master)
> C:\Program Files (x86)\Git\bin\git.exe config core.sparsecheckout
> C:\Program Files (x86)\Git\bin\git.exe checkout -f 
> a9f4bc55deac7ceb3ef93799ca15a83cea955242
ERROR: Timeout after 10 minutes
FATAL: Could not checkout null with start point 
a9f4bc55deac7ceb3ef93799ca15a83cea955242
hudson.plugins.git.GitException: Could not checkout null with start point 
a9f4bc55deac7ceb3ef93799ca15a83cea955242

On Sun, Jul 20, 2014 at 12:37 AM, Mark Waite 
<[email protected]<mailto:[email protected]>> wrote:
The error "Timeout after 10 minutes" in your output shows that you're seeing 
https://issues.jenkins-ci.org/browse/JENKINS-23476 .  The plugin assumes 
(incorrectly in your case) that a checkout operation (which is entirely local 
disc I/O) will not need more than 10 minutes.  Your repository is so large, or 
your disc I/O is so slow that you can't checkout within the 10 minute timeout 
period.

You can either use sparse checkout within the git plugin to reduce the time 
required to perform a checkout, or you can switch from using the git plugin to 
perform your checkout yourself as a build step.  Performing the checkout 
yourself as a build step is more complicated and more error prone, but does not 
have the timeout limit.  Unfortunately, it also makes Jenkins less useful, 
because you can no longer see source code changes as part of the job, and you 
can no longer poll for changes.

Mark Waite

On Sat, Jul 19, 2014 at 12:46 PM, bandi pavankumar reddy 
<[email protected]<mailto:[email protected]>> wrote:
i configured correctly and i configured time out 60 minutes and while starting 
build OK after 13 to 14 minutes it was giving error time out..some files 
fetching and cloning also....but i having total 16 files in that 7 files 
cloning in 13 minute ....but still 6 file's pending with time out error...i was 
configured git repository with advanced clone option in that i mentioned time 
out.....i am sending Error... i tryed with shallow clon also

Fetching upstream changes from 
[email protected]:Uuuu_P_SOURCE.git<mailto:[email protected]:Uuuu_P_SOURCE.git>
> C:\Program Files (x86)\Git\bin\git.exe fetch --tags --progress 
> [email protected]:Uuuu_P_SOURCE.git<mailto:[email protected]:Uuuu_P_SOURCE.git>
>  +refs/heads/*:refs/remotes/origin/*
> C:\Program Files (x86)\Git\bin\git.exe rev-parse "origin/master^{commit}"
Checking out Revision a9f4bc55deac7ceb3ef93799ca15a83cea955242 (origin/master)
> C:\Program Files (x86)\Git\bin\git.exe config core.sparsecheckout
> C:\Program Files (x86)\Git\bin\git.exe checkout -f 
> a9f4bc55deac7ceb3ef93799ca15a83cea955242
ERROR: Timeout after 10 minutes
FATAL: Could not checkout null with start point 
a9f4bc55deac7ceb3ef93799ca15a83cea955242
hudson.plugins.git.GitException: Could not checkout null with start point 
a9f4bc55deac7ceb3ef93799ca15a83cea955242
--
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected]<mailto:[email protected]>.

For more options, visit https://groups.google.com/d/optout.



--
Thanks!
Mark Waite
--
You received this message because you are subscribed to a topic in the Google 
Groups "Jenkins Users" group.
To unsubscribe from this topic, visit 
https://groups.google.com/d/topic/jenkinsci-users/xMYzhcYnC0s/unsubscribe.
To unsubscribe from this group and all its topics, send an email to 
[email protected]<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.


Click 
here<https://www.mailcontrol.com/sr/J4yitjr+6XbGX2PQPOmvUqW!RI4xIDLrB5NLXDo1k838uaW3K8945cWo+l6VxGMTqv1nt4WDbc336NGKki70Ug==>
 to report this email as spam.

________________________________
This e-mail and the information, including any attachments it contains, are 
intended to be a confidential communication only to the person or entity to 
whom it is addressed and may contain information that is privileged. If the 
reader of this message is not the intended recipient, you are hereby notified 
that any dissemination, distribution or copying of this communication is 
strictly prohibited. If you have received this communication in error, please 
immediately notify the sender and destroy the original message.

Thank you.

Please consider the environment before printing this email.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to