bug 717758 - kill hung processes with SIGABRT on OS X in automation.py. r=jmaher
authorTed Mielczarek <ted@mielczarek.org>
Mon, 16 Sep 2013 14:44:25 -0400
changeset 147743 751208f98deb40a28e2ef6a1f32f1ff9ffe1f66b
parent 147742 742c8c54c8fc2f74a6a73bb0bbf0c9c2255344c7
child 147744 38d8c6c2c22332d877550e3e50034c2dab431797
push id25314
push userkwierso@gmail.com
push dateWed, 18 Sep 2013 23:48:47 +0000
treeherdermozilla-central@dc09d922d41f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjmaher
bugs717758
milestone27.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
bug 717758 - kill hung processes with SIGABRT on OS X in automation.py. r=jmaher
build/automation.py.in
--- a/build/automation.py.in
+++ b/build/automation.py.in
@@ -678,26 +678,25 @@ class Automation(object):
        Also attempts to obtain a screenshot before killing the process."""
     if not debuggerInfo:
       self.dumpScreen(utilityPath)
     self.killAndGetStackNoScreenshot(processPID, utilityPath, debuggerInfo)
 
   def killAndGetStackNoScreenshot(self, processPID, utilityPath, debuggerInfo):
     """Kill the process, preferrably in a way that gets us a stack trace."""
     if self.CRASHREPORTER and not debuggerInfo:
-      if self.UNIXISH:
+      if not self.IS_WIN32:
         # ABRT will get picked up by Breakpad's signal handler
         os.kill(processPID, signal.SIGABRT)
         return
-      elif self.IS_WIN32:
+      else:
         # We should have a "crashinject" program in our utility path
         crashinject = os.path.normpath(os.path.join(utilityPath, "crashinject.exe"))
         if os.path.exists(crashinject) and subprocess.Popen([crashinject, str(processPID)]).wait() == 0:
           return
-      #TODO: kill the process such that it triggers Breakpad on OS X (bug 525296)
     self.log.info("Can't trigger Breakpad, just killing process")
     self.killPid(processPID)
 
   def waitForFinish(self, proc, utilityPath, timeout, maxTime, startTime, debuggerInfo, symbolsPath):
     """ Look for timeout or crashes and return the status after the process terminates """
     stackFixerProcess = None
     stackFixerFunction = None
     didTimeout = False