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
Je pense que ce que vous pourriez voir est une erreur différente : je ne pense pas que cela arrive à la phase sudo auth. Je vois cela sur Python 2.7 mais uniquement lorsque stdin est redirigé depuis /dev/null. Peut-être réessayer avec pty=True
?
@matt-hayden Après des heures de débogage, vous venez de me sauver d'une dépression nerveuse. Je voudrais également ajouter que je n'ai eu cette erreur qu'en utilisant multiprocessing.Process même s'il ne s'agit que d'un seul processus.
@matt-hayden J'ai vu ce problème sur python 3.6, ssh dans le conteneur local Ubuntu 18.04 (avec openssh sshd en cours d'exécution). La même commande 'sudo' dans exactement la même configuration fonctionnait correctement 99% du temps (levant AuthFailure) et soulevant OSError dans les 1% restants.
Je ne me souviens pas si pty était défini sur True.
Quoi qu'il en soit, je n'utilise pas de tissu actuellement, et je n'ai pas le temps de vérifier que ce problème est toujours présent. Donc je suppose que je devrais clore le sujet
L'erreur s'est encore produite et oui, j'utilisais également un conteneur docker
@luke-goddard , si cela s'est produit dans paramiko (comme le retraçage ci-dessus), cela est peut-être plus approprié comme problème dans le projet paramiko.
Commentaire le plus utile
@matt-hayden Après des heures de débogage, vous venez de me sauver d'une dépression nerveuse. Je voudrais également ajouter que je n'ai eu cette erreur qu'en utilisant multiprocessing.Process même s'il ne s'agit que d'un seul processus.