summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-05-28 07:28:48 +0000
committerZac Medico <zmedico@gentoo.org>2007-05-28 07:28:48 +0000
commitf2a8756b2e5fd201582276fe45855dad237cd9aa (patch)
tree830b9088ffeb8af5f1051418e0f1689cf450869c
parent678e85170599366dd26e00fa1d55e405b173fde6 (diff)
downloadportage-f2a8756b2e5fd201582276fe45855dad237cd9aa.tar.gz
portage-f2a8756b2e5fd201582276fe45855dad237cd9aa.tar.bz2
portage-f2a8756b2e5fd201582276fe45855dad237cd9aa.zip
For bug #180009, add a PORTAGE_RSYNC_INITIAL_TIMEOUT config variable. The default is 15 seconds and it can be disabled by setting it to 0.
svn path=/main/trunk/; revision=6650
-rw-r--r--man/make.conf.56
-rw-r--r--pym/emerge/__init__.py12
2 files changed, 16 insertions, 2 deletions
diff --git a/man/make.conf.5 b/man/make.conf.5
index a0d95c022..dc75f97f1 100644
--- a/man/make.conf.5
+++ b/man/make.conf.5
@@ -356,6 +356,12 @@ emerge is running at. In other words, this will not set the nice level,
it will increment it. For more information about nice levels and what
are acceptable ranges, see \fBnice\fR(1).
.TP
+\fBPORTAGE_RSYNC_INITIAL_TIMEOUT\fR = \fIinteger\fR
+Used by \fBemerge \-\-sync\fR as a timeout for the initial connection to an
+rsync server.
+.br
+Defaults to 15 seconds.
+.TP
\fBPORTAGE_RSYNC_EXTRA_OPTS\fR = \fI[rsync options string]\fR
Additional rsync options to be used by \fBemerge \-\-sync\fR.
.br
diff --git a/pym/emerge/__init__.py b/pym/emerge/__init__.py
index 193c7c33e..5f4219259 100644
--- a/pym/emerge/__init__.py
+++ b/pym/emerge/__init__.py
@@ -4059,6 +4059,12 @@ def action_sync(settings, trees, mtimedb, myopts, myaction):
del content
try:
+ rsync_initial_timeout = \
+ int(settings.get("PORTAGE_RSYNC_INITIAL_TIMEOUT", "15"))
+ except ValueError:
+ rsync_initial_timeout = 15
+
+ try:
if settings.has_key("RSYNC_RETRIES"):
print yellow("WARNING:")+" usage of RSYNC_RETRIES is deprecated, use PORTAGE_RSYNC_RETRIES instead"
maxretries=int(settings["RSYNC_RETRIES"])
@@ -4167,14 +4173,16 @@ def action_sync(settings, trees, mtimedb, myopts, myaction):
# Timeout here in case the server is unresponsive. The
# --timeout rsync option doesn't apply to the initial
# connection attempt.
- signal.alarm(15)
+ if rsync_initial_timeout:
+ signal.alarm(rsync_initial_timeout)
try:
mypids.extend(portage.process.spawn(
mycommand, env=settings.environ(), returnpid=True))
exitcode = os.waitpid(mypids[0], 0)[1]
content = portage.grabfile(tmpservertimestampfile)
finally:
- signal.alarm(0)
+ if rsync_initial_timeout:
+ signal.alarm(0)
try:
os.unlink(tmpservertimestampfile)
except OSError: