From 9cf1a9c8ee438964649e20292c139d6b3feb6c27 Mon Sep 17 00:00:00 2001 From: Kalle Samuels Date: Thu, 28 Oct 2021 12:38:04 -0700 Subject: [PATCH] Don't sometimes hang just after launching ssh sshd has a bug in which the sometimes it may get stuck trying to read from the client even though the child process has already exited. This is visible at https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/serverloop.c?annotate=1.226 line 274: once the child is waited on, `child_terminated` is reset to 0, which causes it to use an infinite timeout in the select there. This workaround causes mosh to disconnect from the server, thereby allowing sshd finish. --- scripts/mosh.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mosh.pl b/scripts/mosh.pl index 56e96d7..f224ef3 100755 --- a/scripts/mosh.pl +++ b/scripts/mosh.pl @@ -439,8 +439,8 @@ if ( $pid == 0 ) { # child print "$_\n"; } } - waitpid $pid, 0; close $pipe; + waitpid $pid, 0; if ( not defined $ip ) { if ( defined $sship ) {