l4mer <janusz.dzied...@gmail.com> added the comment: janusz@nc6120:~$ ssh -V OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 Mar 2016 janusz@nc6120:~$
I) manual check janusz@nc6120:~$ ssh root@localhost -p 50494 -O exit janusz@nc6120:~$ python Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import subprocess >>> cmd = ["ssh", "root@localhost", "-p", "50494"] >>> buf = subprocess.check_output(cmd, stderr=subprocess.STDOUT) Terminated janusz@nc6120:~$ ssh root@localhost -p 50494 -O exit Exit request sent. janusz@nc6120:~$ python Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import subprocess32 >>> cmd= ["ssh", "root@localhost", "-p", "50494"] >>> buf = subprocess32.check_output(cmd, stderr=subprocess32.STDOUT) Terminated II) strace Correct case (mux exist): pipe2([3, 4], O_CLOEXEC) = 0 fstat64(3, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 fcntl64(3, F_GETFL) = 0 (flags O_RDONLY) pipe2([5, 6], O_CLOEXEC) = 0 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb747a768) = 2207 close(6) = 0 close(4) = 0 brk(0x9741000) = 0x9741000 read(5, "", 50000) = 0 brk(0x9735000) = 0x9735000 close(5) = 0 fstat64(3, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 _llseek(3, 0, 0xbfc1d350, SEEK_CUR) = -1 ESPIPE (Illegal seek) read(3, "root\n", 6) = 5 read(3, "", 1) = 0 close(3) = 0 waitpid(2207, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 2207 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2207, si_uid=1000, si_status=0, si_utime=0, si_stime=0} --- rt_sigaction(SIGINT, {SIG_DFL, [], 0}, {0x8183c10, [], 0}, 8) = 0 brk(0x9733000) = 0x9733000 exit_group(0) = ? +++ exited with 0 +++ Fail case: read(7, "menting schedulers (this is what"..., 8192) = 8192 read(7, "\0\0\0_lent\1\0\0\0ht\10\0\0\0h_appendt\5\0\0\0i"..., 4096) = 2240 read(7, "", 4096) = 0 close(7) = 0 mmap2(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb70c7000 close(6) = 0 close(5) = 0 close(4) = 0 ugetrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=64*1024}) = 0 close(3) = 0 pipe2([3, 4], O_CLOEXEC) = 0 fstat64(3, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 fcntl64(3, F_GETFL) = 0 (flags O_RDONLY) pipe2([5, 6], O_CLOEXEC) = 0 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb7539768) = 2238 close(6) = 0 close(4) = 0 brk(0xa30e000) = 0xa30e000 read(5, "", 50000) = 0 brk(0xa302000) = 0xa302000 close(5) = 0 fstat64(3, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 _llseek(3, 0, 0xbf8a0600, SEEK_CUR) = -1 ESPIPE (Illegal seek) read(3, "root\n", 6) = 5 read(3, 0xb710db19, 1) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2238, si_uid=1000, si_status=0, si_utime=4, si_stime=1} --- read(3, d(3, ^Cstrace: Process 2237 detached <detached ...> janusz@nc6120:~$ Traceback (most recent call last): File "test.py", line 6, in <module> buf = subprocess32.check_output(cmd, stderr=subprocess32.STDOUT) File "/usr/lib/python2.7/dist-packages/subprocess32.py", line 628, in check_output output, unused_err = process.communicate(timeout=timeout) File "/usr/lib/python2.7/dist-packages/subprocess32.py", line 915, in communicate stdout = _eintr_retry_call(self.stdout.read) File "/usr/lib/python2.7/dist-packages/subprocess32.py", line 543, in _eintr_retry_call return func(*args) KeyboardInterrupt When hang: janusz@nc6120:~$ ls -l "/proc/$(pgrep python)/fd/3" lr-x------ 1 janusz janusz 64 paź 7 10:25 /proc/2336/fd/3 -> pipe:[29858] janusz@nc6120:~$ lsof |grep 29858 lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/108/gvfs Output information may be incomplete. python 2336 janusz 3r FIFO 0,10 0t0 29858 pipe ssh 2342 janusz 2w FIFO 0,10 0t0 29858 pipe janusz@nc6120:~$ ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue31712> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com