Commit 44b21b9d authored by maruel@chromium.org's avatar maruel@chromium.org

Revert r166725 "Enforce 15 minutes timeout for all operations and 30 minutes..."

This causes an excepiton on Windows,
  File "E:\b\depot_tools\subprocess2.py", line 341, in communicate
TypeError: Using timeout and shell simultaneously will cause a process leak
since the shell will be killed instead of the child process.

TBR=petermayo@chromium.org
BUG=


Review URL: https://chromiumcodereview.appspot.com/11368148

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@166732 0039d316-1c4b-4281-b951-d872f2087c98
parent 83273549
......@@ -22,13 +22,6 @@ import scm
import subprocess2
# Default timeout of 15 minutes.
GLOBAL_TIMEOUT = 15*60
# Use a larger timeout for checkout since it can be a genuinely slower
# operation.
FETCH_TIMEOUT = 30*60
def get_code_review_setting(path, key,
codereview_settings_file='codereview.settings'):
"""Parses codereview.settings and return the value for the key if present.
......@@ -204,8 +197,7 @@ class RawCheckout(CheckoutBase):
cmd,
stdin=p.get(False),
stderr=subprocess2.STDOUT,
cwd=self.project_path,
timeout=GLOBAL_TIMEOUT))
cwd=self.project_path))
elif p.is_new and not os.path.exists(filepath):
# There is only a header. Just create the file.
open(filepath, 'w').close()
......@@ -284,10 +276,8 @@ class SvnMixIn(object):
"""Runs svn and throws an exception if the command failed."""
kwargs.setdefault('cwd', self.project_path)
kwargs.setdefault('stdout', self.VOID)
kwargs.setdefault('timeout', GLOBAL_TIMEOUT)
return subprocess2.check_call_out(
self._add_svn_flags(args, False),
**kwargs)
self._add_svn_flags(args, False), **kwargs)
def _check_output_svn(self, args, credentials=True, **kwargs):
"""Runs svn and throws an exception if the command failed.
......@@ -298,7 +288,6 @@ class SvnMixIn(object):
return subprocess2.check_output(
self._add_svn_flags(args, True, credentials),
stderr=subprocess2.STDOUT,
timeout=GLOBAL_TIMEOUT,
**kwargs)
@staticmethod
......@@ -398,10 +387,7 @@ class SvnCheckout(CheckoutBase, SvnMixIn):
]
stdout.append(
subprocess2.check_output(
cmd,
stdin=p.get(False),
cwd=self.project_path,
timeout=GLOBAL_TIMEOUT))
cmd, stdin=p.get(False), cwd=self.project_path))
elif p.is_new and not os.path.exists(filepath):
# There is only a header. Just create the file if it doesn't
# exist.
......@@ -497,14 +483,11 @@ class SvnCheckout(CheckoutBase, SvnMixIn):
logging.info(
'Directory %s is not present, checking it out.' % self.project_path)
self._check_call_svn(
['checkout', self.svn_url, self.project_path] + flags,
cwd=None,
timeout=FETCH_TIMEOUT)
['checkout', self.svn_url, self.project_path] + flags, cwd=None)
else:
# TODO(maruel): This command will shell out without a timeout.
scm.SVN.Revert(self.project_path, no_ignore=True)
# Revive files that were deleted in scm.SVN.Revert().
self._check_call_svn(['update', '--force'] + flags, timeout=FETCH_TIMEOUT)
self._check_call_svn(['update', '--force'] + flags)
return self._get_revision()
def _get_revision(self):
......@@ -554,7 +537,8 @@ class GitCheckoutBase(CheckoutBase):
try:
revision = self._check_output_git(['rev-parse', revision])
except subprocess.CalledProcessError:
self._fetch_remote()
self._check_call_git(
['fetch', self.remote, self.remote_branch, '--quiet'])
revision = self._check_output_git(['rev-parse', revision])
self._check_call_git(['checkout', '--force', '--quiet', revision])
else:
......@@ -665,23 +649,18 @@ class GitCheckoutBase(CheckoutBase):
def _check_call_git(self, args, **kwargs):
kwargs.setdefault('cwd', self.project_path)
kwargs.setdefault('stdout', self.VOID)
kwargs.setdefault('timeout', GLOBAL_TIMEOUT)
return subprocess2.check_call_out(
['git'] + args, **kwargs)
return subprocess2.check_call_out(['git'] + args, **kwargs)
def _call_git(self, args, **kwargs):
"""Like check_call but doesn't throw on failure."""
kwargs.setdefault('cwd', self.project_path)
kwargs.setdefault('stdout', self.VOID)
return subprocess2.call(['git'] + args, timeout=GLOBAL_TIMEOUT, **kwargs)
return subprocess2.call(['git'] + args, **kwargs)
def _check_output_git(self, args, **kwargs):
kwargs.setdefault('cwd', self.project_path)
return subprocess2.check_output(
['git'] + args,
stderr=subprocess2.STDOUT,
timeout=GLOBAL_TIMEOUT,
**kwargs)
['git'] + args, stderr=subprocess2.STDOUT, **kwargs)
def _branches(self):
"""Returns the list of branches and the active one."""
......@@ -716,9 +695,7 @@ class GitCheckout(GitCheckoutBase):
"""Git checkout implementation."""
def _fetch_remote(self):
# git fetch is always verbose even with -q -q so redirect its output.
self._check_call_git(
['fetch', self.remote, self.remote_branch, '--quiet'],
timeout=FETCH_TIMEOUT)
self._check_output_git(['fetch', self.remote, self.remote_branch])
class ReadOnlyCheckout(object):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment