From f2a8756b2e5fd201582276fe45855dad237cd9aa Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 28 May 2007 07:28:48 +0000 Subject: 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 --- man/make.conf.5 | 6 ++++++ pym/emerge/__init__.py | 12 ++++++++++-- 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 @@ -4058,6 +4058,12 @@ def action_sync(settings, trees, mtimedb, myopts, myaction): pass 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" @@ -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: -- cgit v1.2.3-1-g7c22