fabric/fabric — Issue #490: Sudo fails every now and again
Author: daemonza
Created: 2011-12-02 06:07:30+00:00
State: open

Hi

We manage our DNS changes through GIT, moment a change happens, a post-receive script of git checks the dns zones files
into a nfs mount on the DNS server, it then executes a fabfile that pretty much only does a sudo("service bind9 restart"), everything works
great.....most of the time. About 2 in 10 times, the fabric script fails with this error.

I do the authentication through a keyfile as follow :

env.user = 'afit'
env.key_filename = '/opt/git/.ssh/id_rsa'

Anyone have any idea?

--------
[dns1] sudo: service bind9 restart

remote: [dns1] out: sudo password:/usr/lib/python2.6/getpass.py:83: GetPassWarning: Can not control echo on the terminal.

remote: passwd = fallback_getpass(prompt, stream)

remote: Warning: Password input may be echoed.

remote:

remote:

remote:

remote: [dns1] out: Sorry, try again.

remote:

remote: [dns1] out: sudo password:Warning: Password input may be echoed.

remote: Traceback (most recent call last):

remote: File "/usr/local/lib/python2.6/dist-packages/fabric/main.py", line 674, in main

remote: *args, **kwargs

remote: File "/usr/local/lib/python2.6/dist-packages/fabric/tasks.py", line 229, in execute

remote: task.run(*args, **new_kwargs)

remote: File "/usr/local/lib/python2.6/dist-packages/fabric/tasks.py", line 105, in run

remote: return self.wrapped(*args, **kwargs)

remote: File "/opt/git/bin/fabfile.py", line 16, in dns_restart

remote: sudo("service bind9 restart")

remote: File "/usr/local/lib/python2.6/dist-packages/fabric/network.py", line 342, in host_prompting_wrapper

remote: return func(*args, **kwargs)

remote: File "/usr/local/lib/python2.6/dist-packages/fabric/operations.py", line 976, in sudo

remote: user=user)

remote: File "/usr/local/lib/python2.6/dist-packages/fabric/operations.py", line 867, in _run_command

remote: combine_stderr)

remote: File "/usr/local/lib/python2.6/dist-packages/fabric/thread_handling.py", line 12, in wrapper

remote: callable(*args, **kwargs)

remote: File "/usr/local/lib/python2.6/dist-packages/fabric/io.py", line 129, in output_loop

remote: prompt=" ", no_colon=True, stream=pipe

remote: File "/usr/local/lib/python2.6/dist-packages/fabric/network.py", line 307, in prompt_for_password

remote: new_password = getpass.getpass(password_prompt, stream)

remote: File "/usr/lib/python2.6/getpass.py", line 83, in unix_getpass

remote: passwd = fallback_getpass(prompt, stream)

remote: File "/usr/lib/python2.6/getpass.py", line 118, in fallback_getpass

remote: return _raw_input(prompt, stream)

remote: File "/usr/lib/python2.6/getpass.py", line 135, in _raw_input

remote: raise EOFError

remote: EOFError

remote: Disconnecting from dns1... done.