[autotest] log master-ssh process `lsof` after unexpected death

This CL adds more detailed logging after unexpected master-ssh death, to
make it hopefully easier to solve The Case Of The Missing Socket File.

BUG=chromium:305641
TEST=None

Change-Id: I736232a6d79973445a846c39845df8459ea7350a
Reviewed-on: https://chromium-review.googlesource.com/172586
Reviewed-by: Aviv Keshet <[email protected]>
Commit-Queue: Aviv Keshet <[email protected]>
Tested-by: Aviv Keshet <[email protected]>
diff --git a/server/hosts/abstract_ssh.py b/server/hosts/abstract_ssh.py
index b6b3928..ef660d7 100644
--- a/server/hosts/abstract_ssh.py
+++ b/server/hosts/abstract_ssh.py
@@ -1,4 +1,4 @@
-import os, time, socket, shutil, glob, logging, subprocess, traceback, tempfile
+import os, time, socket, shutil, glob, logging, traceback, tempfile
 from autotest_lib.client.common_lib import autotemp, error
 from autotest_lib.server import utils, autotest
 from autotest_lib.server.hosts import remote
@@ -624,18 +624,17 @@
                     if os.path.exists(self.master_ssh_tempdir.name):
                         logging.warning('However, the socket file temporary '
                                         'directory still exists.')
+
                     logging.warning('Info on defunct master ssh ps below.')
                     master_pid = str(self.master_ssh_job.sp.pid)
-                    try:
-                        ps_output = subprocess.check_output(
-                                ['ps', '-Fww', master_pid])
-                        logging.debug('Master ssh connection ps info: %s, ',
+                    ps_output = utils.run(['ps', '-Fww', master_pid],
+                                          ignore_status=True).stdout
+                    logging.warning('Master ssh connection ps info: %s',
                                     ps_output)
-                    except subprocess.CalledProcessError as e:
-                        logging.warning('Unexpected error running ps on '
-                                        'master ssh connection with pid %s. '
-                                        'Output was: %s', master_pid, e.output)
-
+                    lsof_output = utils.run(['lsof', '-p', master_pid],
+                                            ignore_status=True).stdout
+                    logging.warning('Master ssh connection lsof info: %s',
+                                    lsof_output)
 
                 logging.info("Master ssh connection to %s is down.",
                              self.hostname)