For bug #180009, add a PORTAGE_RSYNC_INITIAL_TIMEOUT config variable. The default...
authorZac Medico <zmedico@gentoo.org>
Mon, 28 May 2007 07:32:25 +0000 (07:32 -0000)
committerZac Medico <zmedico@gentoo.org>
Mon, 28 May 2007 07:32:25 +0000 (07:32 -0000)
svn path=/main/branches/2.1.2/; revision=6651

bin/emerge
man/make.conf.5

index eca2b24c1ae1b68fed6416e965c8be07dbdf4e28..7b5e6f37887343a9a67dc2726837740b48d56f70 100755 (executable)
@@ -3944,6 +3944,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"
@@ -4054,14 +4060,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_exec.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:
index dc01a2c5515964d1bb71c428b855361bc1aa2f06..65de528bb5f6d2fb9893798dca52720898051da9 100644 (file)
@@ -357,6 +357,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