parallel: Ignore "client_process_control: tcgetattr: Invalid argument"

This commit is contained in:
Ole Tange 2014-04-01 10:45:17 +02:00
parent d11e6478c0
commit 67a874362f

View file

@ -3839,7 +3839,7 @@ sub sshcommand_of_sshlogin {
open(STDIN,"<","/dev/null"); open(STDIN,"<","/dev/null");
# Run a sleep that outputs data, so it will discover if the ssh connection closes. # Run a sleep that outputs data, so it will discover if the ssh connection closes.
my $sleep = ::shell_quote_scalar('$|=1;while(1){sleep 1;print "foo\n"}'); my $sleep = ::shell_quote_scalar('$|=1;while(1){sleep 1;print "foo\n"}');
my @master = ("ssh", "-MTS", $control_path, $serverlogin, "perl", "-e", $sleep); my @master = ("ssh", "-tt", "-MTS", $control_path, $serverlogin, "perl", "-e", $sleep);
::debug("@master\n"); ::debug("@master\n");
exec(@master); exec(@master);
} }
@ -5019,7 +5019,7 @@ sub print {
if($fdno == 2 and not $self->{'printed_first_line',$fdno}++) { if($fdno == 2 and not $self->{'printed_first_line',$fdno}++) {
# OpenSSH_3.6.1p2 gives 'tcgetattr: Invalid argument' with -tt # OpenSSH_3.6.1p2 gives 'tcgetattr: Invalid argument' with -tt
# This is a crappy way of ignoring it. # This is a crappy way of ignoring it.
$$partial =~ s/^tcgetattr: Invalid argument\n//; $$partial =~ s/^(client_process_control: )?tcgetattr: Invalid argument\n//;
# Length of partial line has changed: Find the last \n again # Length of partial line has changed: Find the last \n again
$i = rindex($$partial,"\n"); $i = rindex($$partial,"\n");
} }
@ -5064,7 +5064,9 @@ sub print {
# OpenSSH_3.6.1p2 gives 'tcgetattr: Invalid argument' with -tt # OpenSSH_3.6.1p2 gives 'tcgetattr: Invalid argument' with -tt
# This is a crappy way of ignoring it. # This is a crappy way of ignoring it.
while(<$in_fh>) { while(<$in_fh>) {
if($_ ne "tcgetattr: Invalid argument\n") { if(/^(client_process_control: )?tcgetattr: Invalid argument\n/) {
# Skip
} else {
print $out_fd $tag,$_; print $out_fd $tag,$_;
} }
# At most run the loop once # At most run the loop once
@ -5080,7 +5082,7 @@ sub print {
# OpenSSH_3.6.1p2 gives 'tcgetattr: Invalid argument' with -tt # OpenSSH_3.6.1p2 gives 'tcgetattr: Invalid argument' with -tt
# This is a crappy way of ignoring it. # This is a crappy way of ignoring it.
sysread($in_fh,$buf,1_000); sysread($in_fh,$buf,1_000);
$buf =~ s/^tcgetattr: Invalid argument\n//; $buf =~ s/^(client_process_control: )?tcgetattr: Invalid argument\n//;
print $out_fd $buf; print $out_fd $buf;
} }
while(sysread($in_fh,$buf,32768)) { while(sysread($in_fh,$buf,32768)) {