Merge "Make git clone timeout configurable"
This commit is contained in:
commit
86d6a46bea
|
@ -373,6 +373,16 @@ The following section of ``zuul.conf`` is used by the merger:
|
||||||
|
|
||||||
Value in seconds, setting to 0 will disable.
|
Value in seconds, setting to 0 will disable.
|
||||||
|
|
||||||
|
.. attr:: git_timeout
|
||||||
|
:default: 300
|
||||||
|
|
||||||
|
Timeout for git clone and fetch operations. This can be useful when
|
||||||
|
dealing with large repos. Note that large timeouts can increase startup
|
||||||
|
and reconfiguration times if repos are not cached so be cautious when
|
||||||
|
increasing this value.
|
||||||
|
|
||||||
|
Value in seconds.
|
||||||
|
|
||||||
.. attr:: git_user_email
|
.. attr:: git_user_email
|
||||||
|
|
||||||
Value to pass to `git config user.email
|
Value to pass to `git config user.email
|
||||||
|
|
|
@ -1587,7 +1587,7 @@ class TenantParser(object):
|
||||||
|
|
||||||
for job in jobs:
|
for job in jobs:
|
||||||
self.log.debug("Waiting for cat job %s" % (job,))
|
self.log.debug("Waiting for cat job %s" % (job,))
|
||||||
job.wait()
|
job.wait(self.merger.git_timeout)
|
||||||
if not job.updated:
|
if not job.updated:
|
||||||
raise Exception("Cat job %s failed" % (job,))
|
raise Exception("Cat job %s failed" % (job,))
|
||||||
self.log.debug("Cat job %s got files %s" %
|
self.log.debug("Cat job %s got files %s" %
|
||||||
|
|
|
@ -2152,6 +2152,7 @@ class ExecutorServer(object):
|
||||||
config, 'merger', 'git_http_low_speed_limit', '1000')
|
config, 'merger', 'git_http_low_speed_limit', '1000')
|
||||||
self.merge_speed_time = get_default(
|
self.merge_speed_time = get_default(
|
||||||
config, 'merger', 'git_http_low_speed_time', '30')
|
config, 'merger', 'git_http_low_speed_time', '30')
|
||||||
|
self.git_timeout = get_default(config, 'merger', 'git_timeout', 300)
|
||||||
# If the execution driver ever becomes configurable again,
|
# If the execution driver ever becomes configurable again,
|
||||||
# this is where it would happen.
|
# this is where it would happen.
|
||||||
execution_wrapper_name = 'bubblewrap'
|
execution_wrapper_name = 'bubblewrap'
|
||||||
|
@ -2228,7 +2229,7 @@ class ExecutorServer(object):
|
||||||
return zuul.merger.merger.Merger(
|
return zuul.merger.merger.Merger(
|
||||||
root, self.connections, self.merge_email, self.merge_name,
|
root, self.connections, self.merge_email, self.merge_name,
|
||||||
self.merge_speed_limit, self.merge_speed_time, cache_root, logger,
|
self.merge_speed_limit, self.merge_speed_time, cache_root, logger,
|
||||||
execution_context=True)
|
execution_context=True, git_timeout=self.git_timeout)
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
self._running = True
|
self._running = True
|
||||||
|
|
|
@ -85,6 +85,8 @@ class MergeClient(object):
|
||||||
self.gearman.addServer(server, port, ssl_key, ssl_cert, ssl_ca,
|
self.gearman.addServer(server, port, ssl_key, ssl_cert, ssl_ca,
|
||||||
keepalive=True, tcp_keepidle=60,
|
keepalive=True, tcp_keepidle=60,
|
||||||
tcp_keepintvl=30, tcp_keepcnt=5)
|
tcp_keepintvl=30, tcp_keepcnt=5)
|
||||||
|
self.git_timeout = get_default(
|
||||||
|
self.config, 'merger', 'git_timeout', 300)
|
||||||
self.log.debug("Waiting for gearman")
|
self.log.debug("Waiting for gearman")
|
||||||
self.gearman.waitForServer()
|
self.gearman.waitForServer()
|
||||||
self.jobs = set()
|
self.jobs = set()
|
||||||
|
|
|
@ -496,7 +496,7 @@ class Repo(object):
|
||||||
class Merger(object):
|
class Merger(object):
|
||||||
def __init__(self, working_root, connections, email, username,
|
def __init__(self, working_root, connections, email, username,
|
||||||
speed_limit, speed_time, cache_root=None, logger=None,
|
speed_limit, speed_time, cache_root=None, logger=None,
|
||||||
execution_context=False):
|
execution_context=False, git_timeout=300):
|
||||||
self.logger = logger
|
self.logger = logger
|
||||||
if logger is None:
|
if logger is None:
|
||||||
self.log = logging.getLogger("zuul.Merger")
|
self.log = logging.getLogger("zuul.Merger")
|
||||||
|
@ -510,6 +510,7 @@ class Merger(object):
|
||||||
self.username = username
|
self.username = username
|
||||||
self.speed_limit = speed_limit
|
self.speed_limit = speed_limit
|
||||||
self.speed_time = speed_time
|
self.speed_time = speed_time
|
||||||
|
self.git_timeout = git_timeout
|
||||||
self.cache_root = cache_root
|
self.cache_root = cache_root
|
||||||
# Flag to determine if the merger is used for preparing repositories
|
# Flag to determine if the merger is used for preparing repositories
|
||||||
# for job execution. This flag can be used to enable executor specific
|
# for job execution. This flag can be used to enable executor specific
|
||||||
|
@ -528,7 +529,8 @@ class Merger(object):
|
||||||
cache_path = None
|
cache_path = None
|
||||||
repo = Repo(
|
repo = Repo(
|
||||||
url, path, self.email, self.username, self.speed_limit,
|
url, path, self.email, self.username, self.speed_limit,
|
||||||
self.speed_time, sshkey, cache_path, self.logger)
|
self.speed_time, sshkey=sshkey, cache_path=cache_path,
|
||||||
|
logger=self.logger, git_timeout=self.git_timeout)
|
||||||
|
|
||||||
self.repos[key] = repo
|
self.repos[key] = repo
|
||||||
except Exception:
|
except Exception:
|
||||||
|
|
|
@ -41,9 +41,10 @@ class MergeServer(object):
|
||||||
config, 'merger', 'git_http_low_speed_limit', '1000')
|
config, 'merger', 'git_http_low_speed_limit', '1000')
|
||||||
speed_time = get_default(
|
speed_time = get_default(
|
||||||
config, 'merger', 'git_http_low_speed_time', '30')
|
config, 'merger', 'git_http_low_speed_time', '30')
|
||||||
|
git_timeout = get_default(config, 'merger', 'git_timeout', 300)
|
||||||
self.merger = merger.Merger(
|
self.merger = merger.Merger(
|
||||||
merge_root, connections, merge_email, merge_name, speed_limit,
|
merge_root, connections, merge_email, merge_name, speed_limit,
|
||||||
speed_time)
|
speed_time, git_timeout=git_timeout)
|
||||||
self.command_map = dict(
|
self.command_map = dict(
|
||||||
stop=self.stop)
|
stop=self.stop)
|
||||||
command_socket = get_default(
|
command_socket = get_default(
|
||||||
|
|
Loading…
Reference in New Issue