invoke.exceptions.ThreadException:
Saw 1 exceptions within threads (OSError):
Thread args: {'kwargs': {'buffer_': ['[sudo] password: '],
'hide': False,
'output': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>},
'target': <bound method Runner.handle_stderr of <fabric.runners.Remote object at 0x7f066e63a9e8>>}
Traceback (most recent call last):
File "/home/amezin/test/.venv/lib/python3.6/site-packages/invoke/util.py", line 233, in run
super(ExceptionHandlingThread, self).run()
File "/usr/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/home/amezin/test/.venv/lib/python3.6/site-packages/invoke/runners.py", line 750, in handle_stderr
buffer_, hide, output, reader=self.read_proc_stderr
File "/home/amezin/test/.venv/lib/python3.6/site-packages/invoke/runners.py", line 717, in _handle_output
self.respond(buffer_)
File "/home/amezin/test/.venv/lib/python3.6/site-packages/invoke/runners.py", line 884, in respond
self.write_proc_stdin(response)
File "/home/amezin/test/.venv/lib/python3.6/site-packages/invoke/runners.py", line 960, in write_proc_stdin
self._write_proc_stdin(data.encode(self.encoding))
File "/home/amezin/test/.venv/lib/python3.6/site-packages/fabric/runners.py", line 67, in _write_proc_stdin
return self.channel.sendall(data)
File "/home/amezin/test/.venv/lib/python3.6/site-packages/paramiko/channel.py", line 846, in sendall
sent = self.send(s)
File "/home/amezin/test/.venv/lib/python3.6/site-packages/paramiko/channel.py", line 801, in send
return self._send(s, m)
File "/home/amezin/test/.venv/lib/python3.6/site-packages/paramiko/channel.py", line 1198, in _send
raise socket.error("Socket is closed")
OSError: Socket is closed
Acho que o que você deve estar vendo é um erro diferente: não acho que esteja chegando à fase de autenticação do sudo. Estou vendo isso no Python 2.7, mas apenas quando stdin é redirecionado de / dev / null. Talvez tente novamente com pty=True
?
@matt-hayden Depois de horas de depuração, você acabou de me salvar de um colapso mental. Também gostaria de acrescentar que só recebi esse erro ao usar multiprocessing.Process, mesmo que seja apenas um processo.
@ matt-hayden Eu vi esse problema no python 3.6, ssh'ing no contêiner Ubuntu 18.04 local (com o openssh sshd rodando nele). O mesmo comando 'sudo' em exatamente a mesma configuração estava funcionando corretamente 99% do tempo (aumentando AuthFailure) e aumentando OSError no 1% restante.
Não consigo me lembrar se pty foi definido como True.
De qualquer forma, não estou usando tecido agora e não tenho tempo para verificar se esse problema ainda está presente. Então, acho que devo encerrar o problema
O erro aconteceu, novamente e sim, eu também estava usando um contêiner docker
@ luke-goddard, se ocorreu dentro do paramiko (como o traceback acima) então talvez seja mais apropriado como um problema no projeto paramiko.
Comentários muito úteis
@matt-hayden Depois de horas de depuração, você acabou de me salvar de um colapso mental. Também gostaria de acrescentar que só recebi esse erro ao usar multiprocessing.Process, mesmo que seja apenas um processo.