From d8a0fcf8c242764ee646a4cf15b432bd2e3a8e0e Mon Sep 17 00:00:00 2001 From: Oleksii Shevchuk Date: Tue, 16 Oct 2018 08:54:02 +0300 Subject: [PATCH] ssh: show full trace to easy diagnostics --- pupy/packages/all/ssh.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pupy/packages/all/ssh.py b/pupy/packages/all/ssh.py index d0f4f655..92bd70eb 100644 --- a/pupy/packages/all/ssh.py +++ b/pupy/packages/all/ssh.py @@ -31,6 +31,8 @@ from urllib import unquote from sys import getfilesystemencoding +from traceback import format_exc + try: from puttykeys import ppkraw_to_openssh except ImportError: @@ -415,7 +417,11 @@ class SSH(object): yield pair for process in process_iter(): - info = process.as_dict() + try: + info = process.as_dict() + except OSError: + continue + if 'environ' not in info or info['environ'] is None: continue @@ -1140,7 +1146,8 @@ def _ssh_cmd(ssh_cmd, thread_name, arg, hosts, port, user, passwords, private_ke continue except Exception as e: - data_cb((3, 'Exception: {}: {}'.format(type(e), str(e)))) + data_cb((3, 'Exception: {}: {}\n{}'.format( + type(e), str(e), format_exc(limit=20)))) continue conninfo = [4]