| Index: scripts/slave/recipe_modules/goma/resources/cloudtail_utils.py
|
| diff --git a/scripts/slave/recipe_modules/goma/resources/cloudtail_utils.py b/scripts/slave/recipe_modules/goma/resources/cloudtail_utils.py
|
| index 5540890255615837a7a757c9db9619d46d0a1b84..79f20dc1edd7c1ee81c9d20086e9b363e61c5bb5 100644
|
| --- a/scripts/slave/recipe_modules/goma/resources/cloudtail_utils.py
|
| +++ b/scripts/slave/recipe_modules/goma/resources/cloudtail_utils.py
|
| @@ -9,7 +9,6 @@
|
| import signal
|
| import subprocess
|
| import sys
|
| -import time
|
|
|
| from slave import goma_utils
|
|
|
| @@ -24,67 +23,6 @@
|
| goma_utils.GetLatestGomaCompilerProxyInfo()])
|
| with open(args.pid_file, 'w') as f:
|
| f.write(str(proc.pid))
|
| -
|
| -
|
| -def is_running_posix(pid):
|
| - """Return True if process of pid is running.
|
| -
|
| - Args:
|
| - pid(int): pid of process which this function checks
|
| - whether it is running or not.
|
| -
|
| - Returns:
|
| - bool: True if process of pid is running.
|
| -
|
| - Raises:
|
| - OSError if something happens in os.kill(pid, 0)
|
| - """
|
| -
|
| - try:
|
| - os.kill(pid, 0)
|
| - except OSError as e:
|
| - if e.errno == errno.ESRCH or e.errno == errno.EPERM:
|
| - return False
|
| - raise e
|
| - return True
|
| -
|
| -
|
| -class NotDiedError(Exception):
|
| - def __str__(self):
|
| - return "NotDiedError"
|
| -
|
| -
|
| -def wait_termination(pid):
|
| - """Send SIGINT to pid and wait termination of pid.
|
| -
|
| - Args:
|
| - pid(int): pid of process which this function waits termination.
|
| -
|
| - Raises:
|
| - OSError: is_running_posix, os.waitpid and os.kill may throw OSError.
|
| - NotDiedError: if cloudtail is running after 10 seconds waiting,
|
| - NotDiedError is raised.
|
| - """
|
| -
|
| - os.kill(pid, signal.SIGINT)
|
| -
|
| - if os.name == 'nt':
|
| - try:
|
| - os.waitpid(pid, 0)
|
| - except OSError as e:
|
| - if e.errno == errno.ECHILD:
|
| - print('process of pid %d died before waitpitd' % pid)
|
| - return
|
| - raise e
|
| - else:
|
| - for _ in xrange(10):
|
| - time.sleep(1)
|
| - if not is_running_posix(pid):
|
| - return
|
| -
|
| - print('process %d running more than 10 seconds' % pid)
|
| - raise NotDiedError()
|
| -
|
|
|
| def main():
|
| parser = argparse.ArgumentParser(
|
| @@ -114,14 +52,7 @@
|
| with open(args.killed_pid_file) as f:
|
| # cloudtail flushes log and terminates
|
| # within 5 seconds when it recieves SIGINT.
|
| - pid = int(f.read())
|
| - try:
|
| - wait_termination(int(f.read()))
|
| - except (OSError, NotDiedError) as e:
|
| - os.kill(pid, signal.SIGKILL)
|
| - print('killed process %d due to Error %s' % (pid, e))
|
| - raise e
|
| -
|
| + os.kill(int(f.read()), signal.SIGINT)
|
|
|
| if '__main__' == __name__:
|
| sys.exit(main())
|
|
|