Discussion:
[Fab-user] Fabric in Cygwin is Suddenly Exiting
Paul Nickerson
2015-02-12 21:25:22 UTC
Permalink
I am running Fabric 1.10.1 with Paramiko 1.15.2 and Python 2.7.8 in Cygwin
on Windows Server 2012. I have a problem where Fabric will frequently
suddenly exit with no error and with return code 0. It usually does this
between commands or between hosts, but I've seen it happen in the middle of
command output too. I've tried distilling down to a very simple fabfile,
which just runs "hostname" on one host, and it still happens. And when I'm
dumped back to the MinTTY prompt, no characters I type will show up
(although they do go in, as I can type a command and press enter and it
runs).

Here is output with Fabric and Paramiko debugging enabled. Anything that is
"*****" is my sanitization.

$ fab hostname
Using fabfile '/home/*****/fabfile.py'
Commands to run: hostname
Parallel tasks now using pool size of 6
[*****.com] Executing task 'hostname'
[*****.com] sudo: sudo -S -p 'sudo password:' /bin/bash -l -c "hostname"
DEBUG:paramiko.transport:starting thread (client mode): 0xffa07f6cL
INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_5.9p1)
DEBUG:paramiko.transport:kex algos:[u'ecdh-sha2-nistp256',
u'ecdh-sha2-nistp384', u'ecdh-sha2-nistp521',
u'diffie-hellman-group-exchange-sha256',
u'diffie-hellman-group-exchange-sha1', u'diffie-hellman-group14-sha1',
u'diffie-hellman-group1-sha1'] server key:[u'ssh-rsa', u'ssh-dss',
u'ecdsa-sha2-nistp256'] client encrypt:[u'aes128-ctr', u'aes192-ctr',
u'aes256-ctr', u'arcfour256', u'arcfour128', u'aes128-cbc', u'3des-cbc',
u'blowfish-cbc', u'cast128-cbc', u'aes192-cbc', u'aes256-cbc', u'arcfour',
u'rijndael-***@lysator.liu.se'] server encrypt:[u'aes128-ctr',
u'aes192-ctr', u'aes256-ctr', u'arcfour256', u'arcfour128', u'aes128-cbc',
u'3des-cbc', u'blowfish-cbc', u'cast128-cbc', u'aes192-cbc', u'aes256-cbc',
u'arcfour', u'rijndael-***@lysator.liu.se'] client mac:[u'hmac-md5',
u'hmac-sha1', u'umac-***@openssh.com', u'hmac-sha2-256',
u'hmac-sha2-256-96', u'hmac-sha2-512', u'hmac-sha2-512-96',
u'hmac-ripemd160', u'hmac-***@openssh.com', u'hmac-sha1-96',
u'hmac-md5-96'] server mac:[u'hmac-md5', u'hmac-sha1', u'umac-***@openssh.com',
u'hmac-sha2-256', u'hmac-sha2-256-96', u'hmac-sha2-512',
u'hmac-sha2-512-96', u'hmac-ripemd160', u'hmac-***@openssh.com',
u'hmac-sha1-96', u'hmac-md5-96'] client compress:[u'none',
u'***@openssh.com'] server compress:[u'none', u'***@openssh.com'] client
lang:[u''] server lang:[u''] kex follows?False
DEBUG:paramiko.transport:Ciphers agreed: local=aes128-ctr, remote=aes128-ctr
DEBUG:paramiko.transport:using kex diffie-hellman-group14-sha1; server key
type ssh-rsa; cipher: local aes128-ctr, remote aes128-ctr; mac: local
hmac-sha1, remote hmac-sha1; compression: local none, remote none
DEBUG:paramiko.transport:Switch to new keys ...
DEBUG:paramiko.transport:Adding ssh-rsa host key for *****.com: *****
DEBUG:paramiko.transport:Trying key ***** from /cygdrive/c/*****id_rsa
DEBUG:paramiko.transport:userauth is OK
INFO:paramiko.transport:Authentication (publickey) successful!
DEBUG:paramiko.transport:[chan 0] Max packet in: 32768 bytes
DEBUG:paramiko.transport:[chan 0] Max packet out: 32768 bytes
DEBUG:paramiko.transport:Secsh channel 0 opened.
DEBUG:paramiko.transport:[chan 0] Sesch channel 0 request ok
DEBUG:paramiko.transport:[chan 0] Sesch channel 0 request ok
*****@***** ~
$

After that last Sesch line, it immediately sends me back to the prompt; no
waiting.
If it works after that last Sesch line, then this is the rest of the
output. And typing on the prompt afterword works fine, too.

DEBUG:paramiko.transport:[chan 0] EOF received (0)
DEBUG:paramiko.transport:[chan 0] EOF sent (0)
[*****.com] out: *****.com
[*****.com] out:
Done.
DEBUG:paramiko.transport:EOF in transport thread
Disconnecting from *****.com... done.

Does anyone know why this is failing in such a way? Is Fabric in Cygwin
supported?

~ Paul Nickerson

Loading...