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
表示される可能性のあるものは別のエラーだと思います。sudo認証フェーズに到達しているとは思いません。 これはPython2.7で見られますが、stdinが/ dev / nullからリダイレクトされた場合のみです。 たぶんpty=True
再試行しますか?
@ matt-hayden何時間ものデバッグの後、あなたは私を神経衰弱から救ってくれました。 また、multiprocessing.Processを使用しているときにのみこのエラーが発生したことを付け加えたいと思います。これは、1つのプロセスであってもです。
@ matt-hayden python 3.6でこの問題が発生し、ローカルのUbuntu 18.04コンテナー(openssh sshdが実行されている)にsshで接続されています。 まったく同じ構成の同じ「sudo」コマンドは、99%の時間で正しく機能し(AuthFailureを発生)、残りの1%でOSErrorを発生させていました。
ptyがTrueに設定されているかどうか思い出せません。
とにかく、私は現在ファブリックを使用しておらず、この問題がまだ存在することを確認する時間がありません。 だから私は問題を閉じる必要があると思います
エラーが発生しました。また、はい、Dockerコンテナも使用していました。
@ luke-goddard、それがparamiko内で発生した場合(上記のトレースバックのように)、おそらくこれはparamikoプロジェクトの問題としてより適切です。
最も参考になるコメント
@ matt-hayden何時間ものデバッグの後、あなたは私を神経衰弱から救ってくれました。 また、multiprocessing.Processを使用しているときにのみこのエラーが発生したことを付け加えたいと思います。これは、1つのプロセスであってもです。