Add paramiko/pycrypto atfork workaround (can back out later if not useful), tweak error

message text per skvidal's suggestion
This commit is contained in:
Michael DeHaan 2012-03-28 20:32:04 -04:00
parent b30ddc4520
commit 706ba9fd9a
2 changed files with 15 additions and 1 deletions

View file

@ -70,7 +70,7 @@ class ParamikoConnection(object):
) )
except Exception, e: except Exception, e:
if str(e).find("PID check failed") != -1: if str(e).find("PID check failed") != -1:
raise errors.AnsibleError("paramiko version issue, please upgrade paramiko on the overlord") raise errors.AnsibleError("paramiko version issue, please upgrade paramiko on the machine running ansible")
else: else:
raise errors.AnsibleConnectionFailed(str(e)) raise errors.AnsibleConnectionFailed(str(e))
return self return self

View file

@ -33,12 +33,26 @@ import ansible.connection
from ansible import utils from ansible import utils
from ansible import errors from ansible import errors
from ansible import callbacks as ans_callbacks from ansible import callbacks as ans_callbacks
HAS_ATFORK=True
try:
print "DEBUG: I have atfork"
from Crypto.Random import atfork
except ImportError:
print "DEBUG: I have no atfork, this won't help my problem"
HAS_ATFORK=False
################################################ ################################################
def _executor_hook(job_queue, result_queue): def _executor_hook(job_queue, result_queue):
''' callback used by multiprocessing pool ''' ''' callback used by multiprocessing pool '''
# attempt workaround of https://github.com/newsapps/beeswithmachineguns/issues/17
# does not occur for everyone, some claim still occurs on newer paramiko
# this function not present in CentOS 6
if HAS_ATFORK:
atfork()
signal.signal(signal.SIGINT, signal.SIG_IGN) signal.signal(signal.SIGINT, signal.SIG_IGN)
while not job_queue.empty(): while not job_queue.empty():
try: try: