Fabric: Connection.sudo() terkadang memunculkan ThreadException/OSError alih-alih AuthFailure

Dibuat pada 18 Feb 2020  ·  5Komentar  ·  Sumber: fabric/fabric

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

Komentar yang paling membantu

@matt-hayden Setelah berjam-jam debugging Anda baru saja menyelamatkan saya dari gangguan mental. Saya juga ingin menambahkan bahwa saya hanya mendapatkan kesalahan ini saat menggunakan multiprocessing.Process meskipun hanya satu proses.

Semua 5 komentar

Saya pikir apa yang mungkin Anda lihat adalah kesalahan yang berbeda: Saya tidak berpikir itu sampai ke fase auth Sudo. Saya melihat ini di Python 2.7 tetapi hanya ketika stdin dialihkan dari /dev/null. Mungkin coba lagi dengan pty=True ?

@matt-hayden Setelah berjam-jam debugging Anda baru saja menyelamatkan saya dari gangguan mental. Saya juga ingin menambahkan bahwa saya hanya mendapatkan kesalahan ini saat menggunakan multiprocessing.Process meskipun hanya satu proses.

@ matt-hayden Saya telah melihat masalah ini pada python 3.6, ssh'ing ke wadah Ubuntu 18.04 lokal (dengan openssh sshd berjalan di dalamnya). Perintah 'Sudo' yang sama dalam konfigurasi yang sama persis bekerja dengan benar 99% dari waktu (meningkatkan AuthFailure) dan meningkatkan OSError di 1% sisanya.
Saya tidak ingat apakah pty disetel ke True.

Bagaimanapun, saya tidak menggunakan kain sekarang, dan saya tidak punya waktu untuk memverifikasi bahwa masalah ini masih ada. Jadi saya kira saya harus menutup masalah ini

Kesalahan terjadi, lagi dan ya saya juga menggunakan wadah buruh pelabuhan

@luke-goddard , jika itu terjadi di dalam paramiko (seperti traceback di atas) maka mungkin ini lebih tepat sebagai masalah dalam proyek paramiko.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

acdha picture acdha  ·  4Komentar

Grazfather picture Grazfather  ·  4Komentar

bitprophet picture bitprophet  ·  4Komentar

shadyabhi picture shadyabhi  ·  5Komentar

neemxyang picture neemxyang  ·  6Komentar