parallel: Use file descriptors instead of STDOUT/STDERR.

Fixed up Polarhome tests.
Passes testsuite.
This commit is contained in:
Ole Tange 2013-07-19 19:13:00 +02:00
parent 7ff2e711db
commit dd1a637822
9 changed files with 224 additions and 396 deletions

View file

@ -1310,18 +1310,17 @@ sub save_stdin_stdout_stderr {
# Returns: N/A # Returns: N/A
# Find file descriptors that are already opened (by the shell) # Find file descriptors that are already opened (by the shell)
for (1..60) { for my $fdno (1..61) {
# /dev/fd/62 and above are used by bash for <(cmd) # /dev/fd/62 and above are used by bash for <(cmd)
my $fh; my $fh;
if(open($fh,">&=$_")) { if(open($fh,">&=",$fdno)) {
$Global::fd{$_}=$fh; $Global::fd{$fdno}=$fh;
} }
} }
open $Global::original_stderr, ">&", "STDERR" or open $Global::original_stderr, ">&", "STDERR" or
::die_bug("Can't dup STDERR: $!"); ::die_bug("Can't dup STDERR: $!");
open $Global::original_stdin, "<&", "STDIN" or open $Global::original_stdin, "<&", "STDIN" or
::die_bug("Can't dup STDIN: $!"); ::die_bug("Can't dup STDIN: $!");
$Global::fd{0} = $Global::original_stdin;
} }
sub enough_file_handles { sub enough_file_handles {
@ -1334,16 +1333,18 @@ sub enough_file_handles {
if($Global::grouped) { if($Global::grouped) {
my %fh; my %fh;
my $enough_filehandles = 1; my $enough_filehandles = 1;
# We need a filehandle for STDOUT and STDERR # perl uses 7 filehandles for something?
# perl uses 7 filehandles for something?
# open3 uses 2 extra filehandles temporarily # open3 uses 2 extra filehandles temporarily
for my $i (1..8) { # We need a filehandle for each redirected file descriptor
# (normally just STDOUT and STDERR)
for my $i (1..(7+2+keys %Global::fd)) {
$enough_filehandles &&= open($fh{$i}, "<", "/dev/null"); $enough_filehandles &&= open($fh{$i}, "<", "/dev/null");
} }
for (values %fh) { close $_; } for (values %fh) { close $_; }
return $enough_filehandles; return $enough_filehandles;
} else { } else {
return 1; # Ungrouped does not need extra file handles
return 1;
} }
} }
@ -1490,13 +1491,15 @@ sub start_another_job {
::usleep(rand()*300); ::usleep(rand()*300);
::warning("No more processes: ", ::warning("No more processes: ",
"Decreasing number of running jobs to $max. ", "Decreasing number of running jobs to $max. ",
"Raising ulimit -u may help.\n"); "Raising ulimit -u or /etc/security/limits.conf may help.\n");
return 0; return 0;
} }
} }
} else { } else {
# No more file handles # No more file handles
debug("Not starting: no more file handles\n"); $Global::no_more_file_handles_warned++ or
::warning("No more file handles. ".
"Raising ulimit -n or /etc/security/limits.conf may help.\n");
return 0; return 0;
} }
} }
@ -2882,16 +2885,16 @@ sub processes_available_by_system_limit {
if($system_limit < $wanted_processes) { if($system_limit < $wanted_processes) {
# The system_limit is less than the wanted_processes # The system_limit is less than the wanted_processes
if($system_limit < 1 and not $Global::JobQueue->empty()) { if($system_limit < 1 and not $Global::JobQueue->empty()) {
::warning("Cannot spawn any jobs. Raising ulimit -u may help.\n"); ::warning("Cannot spawn any jobs. Raising ulimit -u or /etc/security/limits.conf may help.\n");
::wait_and_exit(255); ::wait_and_exit(255);
} }
if(not $more_filehandles) { if(not $more_filehandles) {
::warning("Only enough filehandles to run ", $system_limit, ::warning("Only enough file handles to run ", $system_limit, " jobs in parallel.\n",
" jobs in parallel. Raising ulimit -n may help.\n"); "Raising ulimit -n or /etc/security/limits.conf may help.\n");
} }
if($max_system_proc_reached) { if($max_system_proc_reached) {
::warning("Only enough available processes to run ", $system_limit, ::warning("Only enough available processes to run ", $system_limit,
" jobs in parallel. Raising ulimit -u may help.\n"); " jobs in parallel. Raising ulimit -u or /etc/security/limits.conf may help.\n");
} }
} }
if($] == 5.008008 and $system_limit > 1000) { if($] == 5.008008 and $system_limit > 1000) {
@ -3599,10 +3602,7 @@ sub new {
'commandline' => $commandline, # The commandline with no args 'commandline' => $commandline, # The commandline with no args
'workdir' => undef, # --workdir 'workdir' => undef, # --workdir
'stdin' => undef, # filehandle for stdin (used for --pipe) 'stdin' => undef, # filehandle for stdin (used for --pipe)
'stdout' => undef, # filehandle for stdout (used for --group)
# filename for writing stdout to (used for --files) # filename for writing stdout to (used for --files)
'stdoutfilename' => undef,
'stderr' => undef, # filehandle for stderr (used for --group)
'remaining' => "", # remaining data not sent to stdin (used for --pipe) 'remaining' => "", # remaining data not sent to stdin (used for --pipe)
'datawritten' => 0, # amount of data sent via stdin (used for --pipe) 'datawritten' => 0, # amount of data sent via stdin (used for --pipe)
'transfersize' => 0, # size of files using --transfer 'transfersize' => 0, # size of files using --transfer
@ -3645,13 +3645,14 @@ sub openresultsfile {
::error("Cannot write to `$name'.\n"); ::error("Cannot write to `$name'.\n");
::wait_and_exit(255); ::wait_and_exit(255);
} }
$self->set_stdoutfilename($name); $self->set_fd_file_name(1,$name);
# prefix/name1/val1/name2/val2/stderr # prefix/name1/val1/name2/val2/stderr
$name = "$dir/stderr"; $name = "$dir/stderr";
if(not open($errfh,"+>",$name)) { if(not open($errfh,"+>",$name)) {
::error("Cannot write to `$name'.\n"); ::error("Cannot write to `$name'.\n");
::wait_and_exit(255); ::wait_and_exit(255);
} }
$self->set_fd_file_name(2,$name);
open OUT, '>&', $outfh or ::die_bug("Can't redirect STDOUT: $!"); open OUT, '>&', $outfh or ::die_bug("Can't redirect STDOUT: $!");
open ERR, '>&', $errfh or ::die_bug("Can't dup STDOUT: $!"); open ERR, '>&', $errfh or ::die_bug("Can't dup STDOUT: $!");
$self->set_fd(1,$outfh); $self->set_fd(1,$outfh);
@ -3672,14 +3673,18 @@ sub fd {
return $self->{'fd'}{$fd_no}; return $self->{'fd'}{$fd_no};
} }
sub set_stdoutfilename { sub set_fd_file_name {
# Set file name for a file descriptor
my $self = shift; my $self = shift;
$self->{'stdoutfilename'} = shift; my $fd_no = shift;
$self->{'fd_file_name',$fd_no} = shift;
} }
sub stdoutfilename { sub fd_file_name {
# Get file name for a file descriptor
my $self = shift; my $self = shift;
return $self->{'stdoutfilename'}; my $fd_no = shift;
return $self->{'fd_file_name',$fd_no};
} }
sub write { sub write {
@ -4229,7 +4234,7 @@ sub start {
# To group we create temporary files for STDOUT and STDERR # To group we create temporary files for STDOUT and STDERR
# To avoid the cleanup unlink the files immediately (but keep them open) # To avoid the cleanup unlink the files immediately (but keep them open)
($outfh, $name) = ::tempfile(SUFFIX => ".par"); ($outfh, $name) = ::tempfile(SUFFIX => ".par");
$job->set_stdoutfilename($name); $job->set_fd_file_name(1,$name);
$opt::files or unlink $name; $opt::files or unlink $name;
($errfh, $name) = ::tempfile(SUFFIX => ".par"); ($errfh, $name) = ::tempfile(SUFFIX => ".par");
unlink $name; unlink $name;
@ -4383,18 +4388,16 @@ sub print {
if($opt::pipe and $self->virgin()) { if($opt::pipe and $self->virgin()) {
# Nothing was printed to this job: # Nothing was printed to this job:
# cleanup tmp files if --files was set # cleanup tmp files if --files was set
unlink $self->{'stdoutfilename'}; unlink $self->fd_file_name(1);
return; return;
} }
if($opt::dryrun) { if($opt::dryrun) {
# Nothing was printed to this job: # Nothing was printed to this job:
# cleanup tmp files if --files was set # cleanup tmp files if --files was set
unlink $self->{'stdoutfilename'}; unlink $self->fd_file_name(1);
} }
# Only relevant for grouping # Only relevant for grouping
$Global::grouped or return; $Global::grouped or return;
my $out = $self->fd(1);
my $err = $self->fd(2);
my $command = $self->sshlogin_wrap(); my $command = $self->sshlogin_wrap();
if($Global::joblog) { if($Global::joblog) {
@ -4427,60 +4430,61 @@ sub print {
# so flush to avoid STDOUT being buffered # so flush to avoid STDOUT being buffered
flush STDOUT; flush STDOUT;
} }
seek $err, 0, 0; for my $fdno (sort { $a <=> $b } keys %Global::fd) {
if($Global::debug) { # Sort by file descriptor numerically: 1,2,3,..,9,10,11
print STDERR "ERR:\n"; $fdno == 0 and next;
} my $out_fd = $Global::fd{$fdno};
if($opt::tag or defined $opt::tagstring) { my $in_fd = $self->fd($fdno);
my $tag = $self->tag(); if(not $in_fd) {
# OpenSSH_3.6.1p2 gives 'tcgetattr: Invalid argument' with -tt # ::warning("File descriptor $fdno not defined\n");
# This is a crappy way of ignoring it. next;
while(<$err>) {
if($_ ne "tcgetattr: Invalid argument\n") {
print STDERR $tag,$_;
}
# At most run the loop once
last;
} }
while(<$err>) { seek $in_fd, 0, 0;
print STDERR $tag,$_;
}
} else {
my $buf;
sysread($err,$buf,1_000_000);
# OpenSSH_3.6.1p2 gives 'tcgetattr: Invalid argument' with -tt
$buf =~ s/^tcgetattr: Invalid argument\n//;
print STDERR $buf;
while(sysread($err,$buf,1_000_000)) {
print STDERR $buf;
}
}
flush STDERR;
if($opt::files) {
print STDOUT $self->{'stdoutfilename'},"\n";
} else {
my $buf;
seek $out, 0, 0;
if($Global::debug) { if($Global::debug) {
print STDOUT "OUT:\n"; print STDERR "File descriptor $fdno:\n";
} }
if($opt::tag or defined $opt::tagstring) { if($opt::files) {
my $tag = $self->tag(); $self->fd_file_name($fdno) and print $out_fd $self->fd_file_name($fdno),"\n";
while(<$out>) {
print STDOUT $tag,$_;
}
} else { } else {
my $buf; my $buf;
while(sysread($out,$buf,1_000_000)) { seek $in_fd, 0, 0;
print STDOUT $buf; if($Global::debug) {
print STDOUT "OUT:\n";
}
if($opt::tag or defined $opt::tagstring) {
my $tag = $self->tag();
if($fdno == 2) {
# OpenSSH_3.6.1p2 gives 'tcgetattr: Invalid argument' with -tt
# This is a crappy way of ignoring it.
while(<$in_fd>) {
if($_ ne "tcgetattr: Invalid argument\n") {
print $out_fd $tag,$_;
}
# At most run the loop once
last;
}
}
while(<$in_fd>) {
print $out_fd $tag,$_;
}
} else {
my $buf;
if($fdno == 2) {
# OpenSSH_3.6.1p2 gives 'tcgetattr: Invalid argument' with -tt
# This is a crappy way of ignoring it.
sysread($in_fd,$buf,1_000_000);
$buf =~ s/^tcgetattr: Invalid argument\n//;
print $out_fd $buf;
}
while(sysread($in_fd,$buf,1_000_000)) {
print $out_fd $buf;
}
} }
} }
flush STDOUT; flush $out_fd;
::debug("<<joboutput $command\n"); ::debug("<<joboutput $command\n");
close $in_fd;
} }
close $out;
close $err;
} }
sub tag { sub tag {
@ -5972,6 +5976,6 @@ sub mkdir_or_die {
} }
# Keep perl -w happy # Keep perl -w happy
$opt::x = $Semaphore::timeout = $Semaphore::wait = $opt::shebang = $opt::x = $Semaphore::timeout = $Semaphore::wait = $opt::shebang = $Global::no_more_file_handles_warned =
0; 0;

View file

@ -5,50 +5,72 @@
# I.e.: No race conditions, no logins # I.e.: No race conditions, no logins
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -k -j4 -L1 cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -k -j4 -L1
echo '### Test if we can deal with output > 4 GB' echo '### Test if we can deal with output > 4 GB'
# echo | niceload --io 10 parallel -q perl -e '"\$a=\"x\"x1000000;for(0..4300){print \$a}"' | md5sum ## echo | niceload --io 10 parallel -q perl -e '"\$a=\"x\"x1000000;for(0..4300){print \$a}"' | md5sum
echo | parallel -q perl -e '$a="x"x1000000;for(0..4300){print $a}' | md5sum echo | parallel -q perl -e '$a="x"x1000000;for(0..4300){print $a}' | md5sum
echo '**'
echo "### Test Force outside the file handle limit, 2009-02-17 Gave fork error" echo "### Test Force outside the file handle limit, 2009-02-17 Gave fork error"
(echo echo Start; seq 1 20000 | perl -pe 's/^/true /'; echo echo end) | stdout parallel -uj 0 | egrep -v 'processes took|adjusting' (echo echo Start; seq 1 20000 | perl -pe 's/^/true /'; echo echo end) | stdout parallel -uj 0 | egrep -v 'processes took|adjusting'
echo '**'
echo '### Test of --retries on unreachable host' echo '### Test of --retries on unreachable host'
seq 2 | stdout parallel -k --retries 2 -v -S 4.3.2.1,: echo seq 2 | stdout parallel -k --retries 2 -v -S 4.3.2.1,: echo
echo '**'
echo '### Test race condition on 8 CPU (my laptop)'; echo '### Test race condition on 8 CPU (my laptop)';
seq 1 5000000 > /tmp/parallel_test; seq 1 5000000 > /tmp/parallel_test;
seq 1 10 | parallel -k "cat /tmp/parallel_test | parallel --pipe --recend '' -k gzip >/dev/null; echo {}" seq 1 10 | parallel -k "cat /tmp/parallel_test | parallel --pipe --recend '' -k gzip >/dev/null; echo {}"
echo '**'
echo '### Test exit val - true'; echo '### Test exit val - true';
echo true | parallel; echo true | parallel;
echo $? echo $?
echo '**'
echo '### Test exit val - false'; echo '### Test exit val - false';
echo false | parallel; echo false | parallel;
echo $? echo $?
echo '**'
echo '### Test --halt-on-error 0'; echo '### Test --halt-on-error 0';
(echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true") | parallel -j10 --halt-on-error 0; (echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true") | parallel -j10 --halt-on-error 0;
echo $?; echo $?;
(echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true";echo "sleep 4; non_exist") | parallel -j10 --halt 0; (echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true";echo "sleep 4; non_exist") | parallel -j10 --halt 0;
echo $? echo $?
echo '**'
echo '### Test --halt-on-error 1'; echo '### Test --halt-on-error 1';
(echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true") | parallel -j10 --halt-on-error 1; (echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true") | parallel -j10 --halt-on-error 1;
echo $?; echo $?;
(echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true";echo "sleep 4; non_exist") | parallel -j10 --halt 1; (echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true";echo "sleep 4; non_exist") | parallel -j10 --halt 1;
echo $? echo $?
echo '**'
echo '### Test --halt-on-error 2'; echo '### Test --halt-on-error 2';
(echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true") | parallel -j10 --halt-on-error 2; (echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true") | parallel -j10 --halt-on-error 2;
echo $?; echo $?;
(echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true";echo "sleep 4; non_exist") | parallel -j10 --halt 2; (echo "sleep 1;true"; echo "sleep 2;false";echo "sleep 3;true";echo "sleep 4; non_exist") | parallel -j10 --halt 2;
echo $? echo $?
echo '### Test last dying print --halt-on-error'; echo '**'
echo '### Test last dying print --halt-on-error 1';
(seq 0 8;echo 0; echo 9) | parallel -j10 -kq --halt 1 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit shift'; (seq 0 8;echo 0; echo 9) | parallel -j10 -kq --halt 1 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit shift';
echo $?; echo exit code $?
echo '### Test last dying print --halt-on-error 2';
(seq 0 8;echo 0; echo 9) | parallel -j10 -kq --halt 2 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit shift'; (seq 0 8;echo 0; echo 9) | parallel -j10 -kq --halt 2 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit shift';
echo $? echo exit code $?
echo '**'
echo '### Test slow arguments generation - https://savannah.gnu.org/bugs/?32834'; echo '### Test slow arguments generation - https://savannah.gnu.org/bugs/?32834';
seq 1 3 | parallel -j1 "sleep 2; echo {}" | parallel -kj2 echo seq 1 3 | parallel -j1 "sleep 2; echo {}" | parallel -kj2 echo

View file

@ -35,11 +35,17 @@ parallel -S localhost --env SPC echo 'a"$SPC"b' ::: 5
parallel -S csh@localhost --env SPC echo 'a"$SPC"b' ::: 5 parallel -S csh@localhost --env SPC echo 'a"$SPC"b' ::: 5
parallel -S tcsh@localhost --env SPC echo 'a"$SPC"b' ::: 5 parallel -S tcsh@localhost --env SPC echo 'a"$SPC"b' ::: 5
echo '### Test --env for \n and \\ - single and double - no output is good' echo '### Test --env for \n and \\ - single and double (bash only) - no output is good'
perl -e 'for(10,92) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 19 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S :,1/lo,1/tcsh@lo,1/csh@lo --env V,V2 echo \''"{}$V$V2"'\' ::: {#} {#} {#} {#} | sort | uniq -c | grep -v ' 4 '|grep -v xauth |grep -v X11 perl -e 'for(10,92) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 19 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S 2/:,2/lo --env V,V2 echo \''"{}$V$V2"'\' ::: {#} {#} {#} {#} | sort | uniq -c | grep -v ' 4 '|grep -v xauth |grep -v X11
echo '### Test --env for \n and \\ - single and double --onall - no output is good' echo '### Test --env for \n and \\ - single and double (*csh only) - no output is good'
perl -e 'for(10,92) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 19 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S :,1/lo,1/tcsh@lo,1/csh@lo --onall --env V,V2 echo \''"{}$V$V2"'\' ::: {#} | sort | uniq -c | grep -v ' 4 '|grep -v xauth |grep -v X11 perl -e 'for(10,92) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 19 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S 2/tcsh@lo,2/csh@lo --env V,V2 echo \''"{}$V$V2"'\' ::: {#} {#} {#} {#} | sort | uniq -c | grep -v ' 4 '|grep -v xauth |grep -v X11
echo '### Test --env for \n and \\ - single and double --onall (bash only) - no output is good'
perl -e 'for(10,92) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 19 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S :,lo --onall --env V,V2 echo \''"{}$V$V2"'\' ::: {#} | sort | uniq -c | grep -v ' 4 '|grep -v xauth |grep -v X11
echo '### Test --env for \n and \\ - single and double --onall (*csh only) - no output is good'
perl -e 'for(10,92) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 19 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S 1/tcsh@lo,1/csh@lo --onall --env V,V2 echo \''"{}$V$V2"'\' ::: {#} | sort | uniq -c | grep -v ' 2 '|grep -v xauth |grep -v X11
echo '### Test --env for \160 - which kills csh - single and double - no output is good' echo '### Test --env for \160 - which kills csh - single and double - no output is good'
perl -e 'for(160) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 19 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S :,1/lo,1/tcsh@lo --env V,V2 echo \''"{}$V$V2"'\' ::: {#} {#} {#} | uniq -c | grep -v ' 3 '|grep -v xauth |grep -v X11 perl -e 'for(160) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 19 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S :,1/lo,1/tcsh@lo --env V,V2 echo \''"{}$V$V2"'\' ::: {#} {#} {#} | uniq -c | grep -v ' 3 '|grep -v xauth |grep -v X11

View file

@ -1,19 +1,29 @@
#!/bin/bash #!/bin/bash
P="scosysv centos dragonfly netbsd freebsd solaris openbsd debian aix hpux qnx irix suse minix openindiana mandriva unixware miros raspberrypi hurd ultrix ubuntu redhat" P_ALL="vax freebsd solaris openbsd netbsd debian alpha aix redhat hpux ultrix qnx irix tru64 openindiana suse openstep mandriva ubuntu scosysv unixware dragonfly centos miros hurd minix raspberrypi"
P="scosysv centos dragonfly netbsd freebsd solaris openbsd debian aix hpux qnx irix suse minix openindiana mandriva unixware raspberrypi hurd ultrix ubuntu" P_NOTWORKING="vax alpha openstep"
#P="scosysv hpux qnx irix openindiana ultrix" P_NOTWORKING_YET="ultrix tru64"
POLAR=`parallel echo {}.polarhome.com ::: $P`
P_WORKING="freebsd solaris openbsd netbsd debian aix redhat hpux qnx irix openindiana suse mandriva ubuntu scosysv unixware dragonfly centos miros hurd minix raspberrypi"
P="$P_WORKING"
POLAR=`parallel -k echo {}.polarhome.com ::: $P`
# Avoid the stupid /etc/issue.net banner at Polarhome
echo '### Tests on polarhome machines' echo '### Tests on polarhome machines'
echo 'Setup on polarhome machines' echo 'Setup on polarhome machines'
stdout parallel -kj0 ssh {} mkdir -p bin ::: $POLAR >/dev/null 2>/dev/null & stdout parallel -kj0 ssh -oLogLevel=quiet {} mkdir -p bin ::: $POLAR &
# scp to each polarhome machine do not work. From redhat it works. # scp to each polarhome machine do not work. Use cat
stdout rsync -a `which parallel` redhat.polarhome.com:bin/ copy_to_host() {
stdout ssh redhat.polarhome.com \ H=$1
chmod 755 bin/parallel\; \ # Avoid the stupid /etc/issue.net banner with -oLogLevel=quiet
bin/parallel --tag -kj0 -v --delay 0.2 ssh {} rm -f bin/parallel\\\;scp bin/parallel {}:bin/ ::: $POLAR | sort ssh -oLogLevel=quiet $H rm -f bin/parallel
cat `which parallel` | ssh -oLogLevel=quiet $H 'cat > bin/parallel; chmod 755 bin/parallel'
}
export -f copy_to_host
stdout parallel -j0 --timeout 20 --tag -kj0 -v copy_to_host {} ::: $POLAR
# Now test # Now test
echo 'Run the test on polarhome machines' echo '### Run the test on polarhome machines'
stdout parallel --argsep // -k --tag ssh {} bin/parallel -k echo Works on ::: {} // $POLAR | sort stdout parallel -j0 --argsep // -k --tag ssh -oLogLevel=quiet {} bin/perl bin/parallel -k echo Works on ::: {} // $POLAR

View file

@ -1,9 +1,12 @@
### Test if we can deal with output > 4 GB ### Test if we can deal with output > 4 GB
46a318993dfc8e2afd71ff2bc6f605f1 - 46a318993dfc8e2afd71ff2bc6f605f1 -
**
### Test Force outside the file handle limit, 2009-02-17 Gave fork error ### Test Force outside the file handle limit, 2009-02-17 Gave fork error
parallel: Warning: Only enough filehandles to run 506 jobs in parallel. Raising ulimit -n may help. parallel: Warning: Only enough file handles to run 506 jobs in parallel.
Raising ulimit -n or /etc/security/limits.conf may help.
Start Start
end end
**
### Test of --retries on unreachable host ### Test of --retries on unreachable host
ssh: connect to host 4.3.2.1 port 22: Connection timed out ssh: connect to host 4.3.2.1 port 22: Connection timed out
parallel: Warning: Could not figure out number of cpus on 4.3.2.1 (). Using 1. parallel: Warning: Could not figure out number of cpus on 4.3.2.1 (). Using 1.
@ -11,6 +14,7 @@ echo 1
1 1
echo 2 echo 2
2 2
**
### Test race condition on 8 CPU (my laptop) ### Test race condition on 8 CPU (my laptop)
1 1
2 2
@ -22,14 +26,21 @@ echo 2
8 8
9 9
10 10
**
### Test exit val - true ### Test exit val - true
0 0
**
### Test exit val - false ### Test exit val - false
1 1
/bin/bash: non_exist: command not found **
### Test --halt-on-error 0 ### Test --halt-on-error 0
1 1
2 2
/bin/bash: non_exist: command not found
**
### Test --halt-on-error 1
1
127
parallel: Starting no more jobs. Waiting for 2 jobs to finish. This job failed: parallel: Starting no more jobs. Waiting for 2 jobs to finish. This job failed:
sleep 2;false sleep 2;false
/bin/bash: non_exist: command not found /bin/bash: non_exist: command not found
@ -37,16 +48,17 @@ parallel: Starting no more jobs. Waiting for 3 jobs to finish. This job failed:
sleep 2;false sleep 2;false
parallel: Starting no more jobs. Waiting for 1 jobs to finish. This job failed: parallel: Starting no more jobs. Waiting for 1 jobs to finish. This job failed:
sleep 4; non_exist sleep 4; non_exist
### Test --halt-on-error 1 **
1
127
parallel: This job failed:
sleep 2;false
parallel: This job failed:
sleep 2;false
### Test --halt-on-error 2 ### Test --halt-on-error 2
1 1
1 1
parallel: This job failed:
sleep 2;false
parallel: This job failed:
sleep 2;false
**
### Test last dying print --halt-on-error 1
exit code 9
0 0
1 1
2 2
@ -76,13 +88,13 @@ parallel: Starting no more jobs. Waiting for 2 jobs to finish. This job failed:
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 8 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 8
parallel: Starting no more jobs. Waiting for 1 jobs to finish. This job failed: parallel: Starting no more jobs. Waiting for 1 jobs to finish. This job failed:
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 9 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 9
### Test last dying print --halt-on-error 2
exit code 1
0 0
1 1
parallel: This job failed: parallel: This job failed:
perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 1
### Test last dying print --halt-on-error **
9
1
### Test slow arguments generation - https://savannah.gnu.org/bugs/?32834 ### Test slow arguments generation - https://savannah.gnu.org/bugs/?32834
1 1
2 2

View file

@ -24,19 +24,25 @@ a' * ? >o <i*? ][\!#¤%=( ) | }b 5
a' * ? >o <i*? ][\!#¤%=( ) | }b 5 a' * ? >o <i*? ][\!#¤%=( ) | }b 5
a' * ? >o <i*? ][\!#¤%=( ) | }b 5 a' * ? >o <i*? ][\!#¤%=( ) | }b 5
a' * ? >o <i*? ][\!#¤%=( ) | }b 5 a' * ? >o <i*? ][\!#¤%=( ) | }b 5
### Test --env for \n and \\ - single and double - no output is good ### Test --env for \n and \\ - single and double (bash only) - no output is good
2 1 10V2= 10 8
8
### Test --env for \n and \\ - single and double (*csh only) - no output is good
2 2\ \92V2=\ \92
2 2\\ \92V2=\\ \92
16 : Command not found.
8 Unmatched ".
16 \ : Command not found.
### Test --env for \n and \\ - single and double --onall (bash only) - no output is good
2 1
2 10
2 10V2=
2 2\\ \92V2=\\ \92
### Test --env for \n and \\ - single and double --onall (*csh only) - no output is good
1 2\ \92V2=\ \92 1 2\ \92V2=\ \92
3 2\\ \92V2=\\ \92 1 2\\ \92V2=\\ \92
1 V: Undefined variable. 8 : Command not found.
1 export: Command not found. 4 Unmatched ".
2 setenv: Too many arguments. 8 \ : Command not found.
### Test --env for \n and \\ - single and double --onall - no output is good
2 1 10V2= 10
1 2\ \92V2=\ \92
3 2\\ \92V2=\\ \92
1 V: Undefined variable.
1 export: Command not found.
2 setenv: Too many arguments.
### Test --env for \160 - which kills csh - single and double - no output is good ### Test --env for \160 - which kills csh - single and double - no output is good
### Test --env for \160 - which kills csh - single and double --onall - no output is good ### Test --env for \160 - which kills csh - single and double --onall - no output is good

View file

@ -36,16 +36,16 @@ Cores should complete first on machines with less than 4 physical CPUs
cores done cores done
CPUs done CPUs done
### Test --tag ::: a ::: b ### Test --tag ::: a ::: b
a b stderr-a b
a b stdout-a b a b stdout-a b
a b stderr-a b
### Test --tag ::: a b ### Test --tag ::: a b
a stderr-a
a stdout-a a stdout-a
b stderr-b a stderr-a
b stdout-b b stdout-b
b stderr-b
### Test --tag -X ::: a b ### Test --tag -X ::: a b
a b stderr-a stderr-b
a b stdout-a stdout-b a b stdout-a stdout-b
a b stderr-a stderr-b
### Test bash redirection <() ### Test bash redirection <()
a a
b b

View file

@ -1,282 +1,48 @@
### Tests on polarhome machines ### Tests on polarhome machines
Setup on polarhome machines Setup on polarhome machines
Fedora release 17 (Beefy Miracle) copy_to_host freebsd.polarhome.com
Welcome to RedHat/Fedora ...member of polarhome.com realm copy_to_host solaris.polarhome.com
copy_to_host openbsd.polarhome.com
copy_to_host netbsd.polarhome.com
Fedora release 17 (Beefy Miracle) copy_to_host debian.polarhome.com
Welcome to RedHat/Fedora ...member of polarhome.com realm copy_to_host aix.polarhome.com
aix.polarhome.com copy_to_host redhat.polarhome.com
aix.polarhome.com copy_to_host hpux.polarhome.com
aix.polarhome.com Welcome to AIX7 ...member of polarhome.com realm copy_to_host qnx.polarhome.com
aix.polarhome.com Welcome to AIX7 ...member of polarhome.com realm copy_to_host irix.polarhome.com
centos.polarhome.com copy_to_host openindiana.polarhome.com
centos.polarhome.com copy_to_host suse.polarhome.com
centos.polarhome.com copy_to_host mandriva.polarhome.com
centos.polarhome.com copy_to_host ubuntu.polarhome.com
centos.polarhome.com CentOS release 5.6 (Final) copy_to_host scosysv.polarhome.com
centos.polarhome.com CentOS release 5.6 (Final) copy_to_host unixware.polarhome.com
centos.polarhome.com Welcome to CentOS ...member of polarhome.com realm copy_to_host dragonfly.polarhome.com
centos.polarhome.com Welcome to CentOS ...member of polarhome.com realm copy_to_host centos.polarhome.com
debian.polarhome.com copy_to_host miros.polarhome.com
debian.polarhome.com copy_to_host hurd.polarhome.com
debian.polarhome.com copy_to_host minix.polarhome.com
debian.polarhome.com copy_to_host raspberrypi.polarhome.com
debian.polarhome.com Debian GNU/Linux 6.0.2 (squeeze) ### Run the test on polarhome machines
debian.polarhome.com Debian GNU/Linux 6.0.2 (squeeze)
debian.polarhome.com Welcome to debian ...member of polarhome.com realm
debian.polarhome.com Welcome to debian ...member of polarhome.com realm
dragonfly.polarhome.com
dragonfly.polarhome.com
dragonfly.polarhome.com
dragonfly.polarhome.com
dragonfly.polarhome.com DragonFly v2.10.1.1
dragonfly.polarhome.com DragonFly v2.10.1.1
dragonfly.polarhome.com Welcome to DragonFly ...member of polarhome.com realm
dragonfly.polarhome.com Welcome to DragonFly ...member of polarhome.com realm
freebsd.polarhome.com
freebsd.polarhome.com
freebsd.polarhome.com
freebsd.polarhome.com
freebsd.polarhome.com FreeBSD 8.2
freebsd.polarhome.com FreeBSD 8.2
freebsd.polarhome.com Welcome to FreeBSD ...member of polarhome.com realm
freebsd.polarhome.com Welcome to FreeBSD ...member of polarhome.com realm
hpux.polarhome.com
hpux.polarhome.com
hpux.polarhome.com
hpux.polarhome.com
hpux.polarhome.com HP-UX hpux.polarhome.com B.11.11 U 9000/785 (ta)
hpux.polarhome.com HP-UX hpux.polarhome.com B.11.11 U 9000/785 (ta)
hpux.polarhome.com Welcome to HPUX... member of polarhome.com realm
hpux.polarhome.com Welcome to HPUX... member of polarhome.com realm
hurd.polarhome.com
hurd.polarhome.com
hurd.polarhome.com
hurd.polarhome.com
hurd.polarhome.com Debian GNU/Hurd wheezy/sid
hurd.polarhome.com Debian GNU/Hurd wheezy/sid
hurd.polarhome.com Welcome to hurd ...member of polarhome.com realm.
hurd.polarhome.com Welcome to hurd ...member of polarhome.com realm.
irix.polarhome.com
irix.polarhome.com
irix.polarhome.com IRIX64 6.5 07202013 IP35
irix.polarhome.com IRIX64 6.5 07202013 IP35
irix.polarhome.com Welcome to irix ...member of polarhome.com realm
irix.polarhome.com Welcome to irix ...member of polarhome.com realm
mandriva.polarhome.com
mandriva.polarhome.com
mandriva.polarhome.com
mandriva.polarhome.com
mandriva.polarhome.com Mandriva Linux release 2010.2 (Official) for x86_64
mandriva.polarhome.com Mandriva Linux release 2010.2 (Official) for x86_64
mandriva.polarhome.com Welcome to Mandrake/Mandriva ...member of polarhome.com realm
mandriva.polarhome.com Welcome to Mandrake/Mandriva ...member of polarhome.com realm
netbsd.polarhome.com
netbsd.polarhome.com
netbsd.polarhome.com
netbsd.polarhome.com
netbsd.polarhome.com NetBSD 5.1
netbsd.polarhome.com NetBSD 5.1
netbsd.polarhome.com Welcome to NetBSD ...member of polarhome.com realm
netbsd.polarhome.com Welcome to NetBSD ...member of polarhome.com realm
openbsd.polarhome.com
openbsd.polarhome.com
openbsd.polarhome.com
openbsd.polarhome.com
openbsd.polarhome.com OpenBSD 4.9
openbsd.polarhome.com OpenBSD 4.9
openbsd.polarhome.com Welcome to OpenBSD ...member of polarhome.com realm
openbsd.polarhome.com Welcome to OpenBSD ...member of polarhome.com realm
openindiana.polarhome.com
openindiana.polarhome.com
openindiana.polarhome.com
openindiana.polarhome.com
openindiana.polarhome.com OpenIndiana SunOS 5.11
openindiana.polarhome.com OpenIndiana SunOS 5.11
openindiana.polarhome.com Welcome to OpenIndiana ...member of polarhome.com realm
openindiana.polarhome.com Welcome to OpenIndiana ...member of polarhome.com realm
qnx.polarhome.com
qnx.polarhome.com
qnx.polarhome.com
qnx.polarhome.com
qnx.polarhome.com QNX 6.5.0
qnx.polarhome.com QNX 6.5.0
qnx.polarhome.com Welcome to QNX ...member of polarhome.com realm
qnx.polarhome.com Welcome to QNX ...member of polarhome.com realm
raspberrypi.polarhome.com
raspberrypi.polarhome.com
raspberrypi.polarhome.com Debian GNU/Linux 6.0
raspberrypi.polarhome.com Debian GNU/Linux 6.0
raspberrypi.polarhome.com RaspberryPi/bcm2708 reference 2.0
raspberrypi.polarhome.com RaspberryPi/bcm2708 reference 2.0
raspberrypi.polarhome.com Welcome to raspberrypi ...member of polarhome.com realm
raspberrypi.polarhome.com Welcome to raspberrypi ...member of polarhome.com realm
scosysv.polarhome.com
scosysv.polarhome.com
scosysv.polarhome.com SCO OpenServer(TM) Release 6
scosysv.polarhome.com SCO OpenServer(TM) Release 6
scosysv.polarhome.com Welcome to scosysv ...member of polarhome.com realm
scosysv.polarhome.com Welcome to scosysv ...member of polarhome.com realm
solaris.polarhome.com
solaris.polarhome.com
solaris.polarhome.com
solaris.polarhome.com
solaris.polarhome.com SUN Ultra-5
solaris.polarhome.com SUN Ultra-5
solaris.polarhome.com SunOS 5.10
solaris.polarhome.com SunOS 5.10
solaris.polarhome.com Welcome to Solaris ...member of polarhome.com realm
solaris.polarhome.com Welcome to Solaris ...member of polarhome.com realm
ssh aix.polarhome.com rm -f bin/parallel;scp bin/parallel aix.polarhome.com:bin/
ssh centos.polarhome.com rm -f bin/parallel;scp bin/parallel centos.polarhome.com:bin/
ssh debian.polarhome.com rm -f bin/parallel;scp bin/parallel debian.polarhome.com:bin/
ssh dragonfly.polarhome.com rm -f bin/parallel;scp bin/parallel dragonfly.polarhome.com:bin/
ssh freebsd.polarhome.com rm -f bin/parallel;scp bin/parallel freebsd.polarhome.com:bin/
ssh hpux.polarhome.com rm -f bin/parallel;scp bin/parallel hpux.polarhome.com:bin/
ssh hurd.polarhome.com rm -f bin/parallel;scp bin/parallel hurd.polarhome.com:bin/
ssh irix.polarhome.com rm -f bin/parallel;scp bin/parallel irix.polarhome.com:bin/
ssh mandriva.polarhome.com rm -f bin/parallel;scp bin/parallel mandriva.polarhome.com:bin/
ssh minix.polarhome.com rm -f bin/parallel;scp bin/parallel minix.polarhome.com:bin/
ssh netbsd.polarhome.com rm -f bin/parallel;scp bin/parallel netbsd.polarhome.com:bin/
ssh openbsd.polarhome.com rm -f bin/parallel;scp bin/parallel openbsd.polarhome.com:bin/
ssh openindiana.polarhome.com rm -f bin/parallel;scp bin/parallel openindiana.polarhome.com:bin/
ssh qnx.polarhome.com rm -f bin/parallel;scp bin/parallel qnx.polarhome.com:bin/
ssh raspberrypi.polarhome.com rm -f bin/parallel;scp bin/parallel raspberrypi.polarhome.com:bin/
ssh scosysv.polarhome.com rm -f bin/parallel;scp bin/parallel scosysv.polarhome.com:bin/
ssh solaris.polarhome.com rm -f bin/parallel;scp bin/parallel solaris.polarhome.com:bin/
ssh suse.polarhome.com rm -f bin/parallel;scp bin/parallel suse.polarhome.com:bin/
ssh ubuntu.polarhome.com rm -f bin/parallel;scp bin/parallel ubuntu.polarhome.com:bin/
ssh ultrix.polarhome.com rm -f bin/parallel;scp bin/parallel ultrix.polarhome.com:bin/
ssh unixware.polarhome.com rm -f bin/parallel;scp bin/parallel unixware.polarhome.com:bin/
suse.polarhome.com
suse.polarhome.com
suse.polarhome.com
suse.polarhome.com
suse.polarhome.com Welcome to SuSE/openSUSE ...member of polarhome.com realm
suse.polarhome.com Welcome to SuSE/openSUSE ...member of polarhome.com realm
suse.polarhome.com openSUSE 11.4 "Celadon"
suse.polarhome.com openSUSE 11.4 "Celadon"
ubuntu.polarhome.com
ubuntu.polarhome.com
ubuntu.polarhome.com
ubuntu.polarhome.com
ubuntu.polarhome.com Ubuntu 10.04.2 LTS
ubuntu.polarhome.com Ubuntu 10.04.2 LTS
ubuntu.polarhome.com Welcome to Ubuntu ...member of polarhome.com realm
ubuntu.polarhome.com Welcome to Ubuntu ...member of polarhome.com realm
unixware.polarhome.com
unixware.polarhome.com
unixware.polarhome.com SCO UnixWare 7.1.4
unixware.polarhome.com SCO UnixWare 7.1.4
unixware.polarhome.com Welcome to unixware ...member of polarhome.com realm
unixware.polarhome.com Welcome to unixware ...member of polarhome.com realm
Run the test on polarhome machines
aix.polarhome.com
aix.polarhome.com Welcome to AIX7 ...member of polarhome.com realm
aix.polarhome.com Works on aix.polarhome.com
centos.polarhome.com
centos.polarhome.com
centos.polarhome.com CentOS release 5.6 (Final)
centos.polarhome.com Welcome to CentOS ...member of polarhome.com realm
centos.polarhome.com Works on centos.polarhome.com
debian.polarhome.com
debian.polarhome.com
debian.polarhome.com Debian GNU/Linux 6.0.2 (squeeze)
debian.polarhome.com Welcome to debian ...member of polarhome.com realm
debian.polarhome.com Works on debian.polarhome.com
dragonfly.polarhome.com
dragonfly.polarhome.com
dragonfly.polarhome.com DragonFly v2.10.1.1
dragonfly.polarhome.com Welcome to DragonFly ...member of polarhome.com realm
dragonfly.polarhome.com Works on dragonfly.polarhome.com
freebsd.polarhome.com
freebsd.polarhome.com
freebsd.polarhome.com FreeBSD 8.2
freebsd.polarhome.com Welcome to FreeBSD ...member of polarhome.com realm
freebsd.polarhome.com Works on freebsd.polarhome.com freebsd.polarhome.com Works on freebsd.polarhome.com
hpux.polarhome.com solaris.polarhome.com Works on solaris.polarhome.com
hpux.polarhome.com
hpux.polarhome.com HP-UX hpux.polarhome.com B.11.11 U 9000/785 (ta)
hpux.polarhome.com No such file or directory: perl
hpux.polarhome.com Welcome to HPUX... member of polarhome.com realm
hurd.polarhome.com
hurd.polarhome.com
hurd.polarhome.com Debian GNU/Hurd wheezy/sid
hurd.polarhome.com Welcome to hurd ...member of polarhome.com realm.
hurd.polarhome.com Works on hurd.polarhome.com
irix.polarhome.com
irix.polarhome.com IRIX64 6.5 07202013 IP35
irix.polarhome.com Unknown open() mode '>&' at bin/parallel line 1310.
irix.polarhome.com Welcome to irix ...member of polarhome.com realm
mandriva.polarhome.com
mandriva.polarhome.com
mandriva.polarhome.com Mandriva Linux release 2010.2 (Official) for x86_64
mandriva.polarhome.com Welcome to Mandrake/Mandriva ...member of polarhome.com realm
mandriva.polarhome.com Works on mandriva.polarhome.com
minix.polarhome.com Works on minix.polarhome.com
netbsd.polarhome.com
netbsd.polarhome.com
netbsd.polarhome.com NetBSD 5.1
netbsd.polarhome.com Welcome to NetBSD ...member of polarhome.com realm
netbsd.polarhome.com Works on netbsd.polarhome.com
openbsd.polarhome.com
openbsd.polarhome.com
openbsd.polarhome.com OpenBSD 4.9
openbsd.polarhome.com Welcome to OpenBSD ...member of polarhome.com realm
openbsd.polarhome.com Works on openbsd.polarhome.com openbsd.polarhome.com Works on openbsd.polarhome.com
openindiana.polarhome.com netbsd.polarhome.com Works on netbsd.polarhome.com
openindiana.polarhome.com debian.polarhome.com Works on debian.polarhome.com
openindiana.polarhome.com OpenIndiana SunOS 5.11 aix.polarhome.com Works on aix.polarhome.com
openindiana.polarhome.com Welcome to OpenIndiana ...member of polarhome.com realm redhat.polarhome.com Works on redhat.polarhome.com
hpux.polarhome.com Works on hpux.polarhome.com
qnx.polarhome.com Works on qnx.polarhome.com
qnx.polarhome.com parallel: Warning: Cannot figure out number of CPU cores. Using 1.
irix.polarhome.com Unknown open() mode '>&=' at bin/parallel line 1316.
openindiana.polarhome.com Works on openindiana.polarhome.com openindiana.polarhome.com Works on openindiana.polarhome.com
openindiana.polarhome.com parallel: Warning: Cannot figure out number of CPU cores. Using 1. openindiana.polarhome.com parallel: Warning: Cannot figure out number of CPU cores. Using 1.
qnx.polarhome.com
qnx.polarhome.com
qnx.polarhome.com QNX 6.5.0
qnx.polarhome.com Welcome to QNX ...member of polarhome.com realm
qnx.polarhome.com perl: No such file or directory
raspberrypi.polarhome.com
raspberrypi.polarhome.com
raspberrypi.polarhome.com CentOS release 5.6 (Final)
raspberrypi.polarhome.com Welcome to CentOS ...member of polarhome.com realm
raspberrypi.polarhome.com Works on raspberrypi.polarhome.com
scosysv.polarhome.com
scosysv.polarhome.com SCO OpenServer(TM) Release 6
scosysv.polarhome.com Welcome to scosysv ...member of polarhome.com realm
scosysv.polarhome.com Works on scosysv.polarhome.com
solaris.polarhome.com
solaris.polarhome.com
solaris.polarhome.com SUN Ultra-5
solaris.polarhome.com SunOS 5.10
solaris.polarhome.com Welcome to Solaris ...member of polarhome.com realm
solaris.polarhome.com Works on solaris.polarhome.com
suse.polarhome.com
suse.polarhome.com
suse.polarhome.com Welcome to SuSE/openSUSE ...member of polarhome.com realm
suse.polarhome.com Works on suse.polarhome.com suse.polarhome.com Works on suse.polarhome.com
suse.polarhome.com openSUSE 11.4 "Celadon" mandriva.polarhome.com Works on mandriva.polarhome.com
ubuntu.polarhome.com
ubuntu.polarhome.com
ubuntu.polarhome.com Ubuntu 10.04.2 LTS
ubuntu.polarhome.com Welcome to Ubuntu ...member of polarhome.com realm
ubuntu.polarhome.com Works on ubuntu.polarhome.com ubuntu.polarhome.com Works on ubuntu.polarhome.com
ultrix.polarhome.com BEGIN failed--compilation aborted at File/Temp.pm line 148. scosysv.polarhome.com Works on scosysv.polarhome.com
ultrix.polarhome.com BEGIN failed--compilation aborted at bin/parallel line 28.
ultrix.polarhome.com BEGIN not safe after errors--compilation aborted at Errno.pm line 188.
ultrix.polarhome.com Global symbol "EXPORT_OK" requires explicit package name at Errno.pm line 14.
ultrix.polarhome.com Global symbol "EXPORT_TAGS" requires explicit package name at Errno.pm line 32.
ultrix.polarhome.com Global symbol "ISA" requires explicit package name at Errno.pm line 12.
ultrix.polarhome.com Global symbol "VERSION" requires explicit package name at Errno.pm line 10.
ultrix.polarhome.com Global symbol "VERSION" requires explicit package name at Errno.pm line 11.
ultrix.polarhome.com Global symbol "VERSION" requires explicit package name at Errno.pm line 11.
ultrix.polarhome.com Variable "$VERSION" is not imported at Errno.pm line 10.
ultrix.polarhome.com Variable "$VERSION" is not imported at Errno.pm line 11.
ultrix.polarhome.com Variable "$VERSION" is not imported at Errno.pm line 11.
ultrix.polarhome.com Variable "%EXPORT_TAGS" is not imported at Errno.pm line 32.
ultrix.polarhome.com Variable "@EXPORT_OK" is not imported at Errno.pm line 14.
ultrix.polarhome.com Variable "@ISA" is not imported at Errno.pm line 12.
unixware.polarhome.com
unixware.polarhome.com SCO UnixWare 7.1.4
unixware.polarhome.com Welcome to unixware ...member of polarhome.com realm
unixware.polarhome.com Works on unixware.polarhome.com unixware.polarhome.com Works on unixware.polarhome.com
dragonfly.polarhome.com Works on dragonfly.polarhome.com
centos.polarhome.com Works on centos.polarhome.com
miros.polarhome.com Works on miros.polarhome.com
hurd.polarhome.com Works on hurd.polarhome.com
minix.polarhome.com Works on minix.polarhome.com

View file

@ -1,5 +1,6 @@
### Test -k ### Test -k
parallel: Warning: Only enough filehandles to run 19 jobs in parallel. Raising ulimit -n may help. parallel: Warning: Only enough file handles to run 19 jobs in parallel.
Raising ulimit -n or /etc/security/limits.conf may help.
begin begin
1 1
2 2
@ -17,6 +18,7 @@ begin
14 14
15 15
16 16
parallel: Warning: No more file handles. Raising ulimit -n or /etc/security/limits.conf may help.
17 17
18 18
19 19