Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Unified Diff: scripts/slave/recipe_modules/goma/resources/cloudtail_utils.py

Issue 2416903002: Revert of Reland Wait cloudtail termination in goma module (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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())
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698