Fixed bug #44546: If --compress-program fails: fail.

Passes testsuite.
This commit is contained in:
Ole Tange 2015-03-22 01:51:30 +01:00
parent 8eae0edbbb
commit ebf4242ea8
12 changed files with 168 additions and 51 deletions

View file

@ -33,7 +33,7 @@ make -j && sudo make install
== Testsuite == == Testsuite ==
cd testsuite; make cd testsuite; make mem; make
== Update NEWS == == Update NEWS ==
@ -236,23 +236,53 @@ New in this release:
* GNU Parallel was cited in: Evidence for DCO+ as a probe of ionization in the warm disk surface http://arxiv.org/pdf/1503.02659.pdf * GNU Parallel was cited in: Evidence for DCO+ as a probe of ionization in the warm disk surface http://arxiv.org/pdf/1503.02659.pdf
* GNU Parallel was cited in: De novo assembly and annotation of the Asian tiger mosquito (Aedes albopictus) repeatome with dnaPipeTE from raw genomic reads and comparative analysis with the yellow fever mosquito (Aedes aegypti) http://gbe.oxfordjournals.org/content/early/2015/03/11/gbe.evv050.full.pdf
* GNU Parallel was cited in: A General Approach to Network Configuration Analysis http://research.microsoft.com/en-us/um/people/ratul/papers/nsdi2015-batfish.pdf
* GNU Parallel was cited in: Scrimer: designing primers from transcriptome data http://onlinelibrary.wiley.com/doi/10.1111/1755-0998.12403/pdf
* GNU Parallel was cited in: Efficient Retrieval of Key Material for Inspecting Potentially Malicious Traffic in the Cloud http://sacko.uk/pdf/2015.1.pdf
* <<afventer opdatering>> CIDER: a pipeline for detecting waves of coordinated transcriptional regulation in gene expression time-course data http://biorxiv.org/content/biorxiv/early/2015/03/17/012518.full.pdf
* <<afventer opdatering>> GNU Parallel was used (unfortunately without citation) in: MUGBAS: a species free gene-based programme suite for post-GWAS analysis http://www.ncbi.nlm.nih.gov/pubmed/25765345
taxator-tk http://algbio.cs.uni-duesseldorf.de/webapps/wa-download/ (check it)
* GNU Parallel will be presented at Strataconf: Poor Man's Parallel Pipelines http://strataconf.com/big-data-conference-uk-2015/public/schedule/detail/40031
* GNU Parallel was used in: https://github.com/alexbyrnes/FCC-Political-Ads_The-Code * GNU Parallel was used in: https://github.com/alexbyrnes/FCC-Political-Ads_The-Code
* GNU Parallel was used in: https://github.com/martymac/fpart * GNU Parallel was used in: https://github.com/martymac/fpart
* GNU Parallel was used in: https://github.com/hoytak/diabetic-retinopathy-code
* GNU Parallel was used in: https://github.com/mehmattski/HybSeqPipeline * GNU Parallel was used in: https://github.com/mehmattski/HybSeqPipeline
* GNU Parallel was used in: http://search.cpan.org/~ajpage/Bio-Roary-2.0.0/lib/Bio/Roary/JobRunner/Parallel.pm
taxator-tk http://algbio.cs.uni-duesseldorf.de/webapps/wa-download/ (check it)
* Using GNU Parallel on a Raspberry Pi cluster: http://www.dcglug.org.uk/cluster-progress/ * Using GNU Parallel on a Raspberry Pi cluster: http://www.dcglug.org.uk/cluster-progress/
* An introduction to vector tiling and map reduce in postgis: http://dimensionaledge.com/intro-vector-tiling-map-reduce-postgis/
* Running scripts in parallel with GNU Parallel: http://code.jasonbhill.com/2015/03/ * Running scripts in parallel with GNU Parallel: http://code.jasonbhill.com/2015/03/
* Mahout: Parallelising the creation of DecisionTrees: http://www.markhneedham.com/blog/2012/12/27/mahout-parallelising-the-creation-of-decisiontrees/ * Mahout: Parallelising the creation of DecisionTrees: http://www.markhneedham.com/blog/2012/12/27/mahout-parallelising-the-creation-of-decisiontrees/
* High-Performance Scientific Computing: Running serial jobs in parallel https://support.scinet.utoronto.ca/education/staticpublic/course178/serial.pdf
* Parallel cardinality on your laptop https://highonscience.wordpress.com/2015/03/15/parallel-cardinality-on-your-laptop/
* Experiments about a better locate using grep http://a3nm.net/blog/better_locate.html
* Homework with GNU Parallel: https://support.scinet.utoronto.ca/education/staticpublic/course178content349.html
* Parallel - Jobs in Skripten parallelisieren: https://slzm.de/blog/linux-tool-des-tages-parallel-jobs-in-skripten-parallelisieren/#more-612 * Parallel - Jobs in Skripten parallelisieren: https://slzm.de/blog/linux-tool-des-tages-parallel-jobs-in-skripten-parallelisieren/#more-612
* GNU Parallel, czyli 100% użycia procesora http://matmatyk.blogspot.dk/2015/03/gnu-parallel-czyli-100-uzycia-procesora.html
* Bug fixes and man page updates. * Bug fixes and man page updates.
GNU Parallel - For people who live life in the parallel lane. GNU Parallel - For people who live life in the parallel lane.

View file

@ -1052,7 +1052,7 @@ sub parse_options {
sub init_globals { sub init_globals {
# Defaults: # Defaults:
$Global::version = 20150308; $Global::version = 20150311;
$Global::progname = 'parallel'; $Global::progname = 'parallel';
$Global::infinity = 2**31; $Global::infinity = 2**31;
$Global::debug = 0; $Global::debug = 0;
@ -3060,7 +3060,7 @@ sub citation_notice {
"This helps funding further development; and it won't cost you a cent.\n", "This helps funding further development; and it won't cost you a cent.\n",
"If you pay 10000 EUR you should feel free to use GNU Parallel without citing.\n", "If you pay 10000 EUR you should feel free to use GNU Parallel without citing.\n",
"\n", "\n",
"Silence the citation notice: run 'parallel --bibtex' once or use '--will-cite'.\n\n", "To silence the citation notice: run 'parallel --bibtex'.\n\n",
); );
} }
} }
@ -3149,11 +3149,15 @@ sub bibtex {
my $input = <STDIN>; my $input = <STDIN>;
if($input =~ /will cite/i) { if($input =~ /will cite/i) {
mkdir $ENV{'HOME'}."/.parallel"; mkdir $ENV{'HOME'}."/.parallel";
open (my $fh, ">", $ENV{'HOME'}."/.parallel/will-cite") if(open (my $fh, ">", $ENV{'HOME'}."/.parallel/will-cite")) {
|| ::die_bug("Cannot write: ".$ENV{'HOME'}."/.parallel/will-cite"); close $fh;
close $fh; print "\nThank you for your support. It is much appreciated. The citation\n",
print "\nThank you for your support. It is much appreciated. The citation\n", "notice is now silenced. You may also use '--will-cite'.\n";
"notice is now silenced.\n"; } else {
print "\nThank you for your support. It is much appreciated. The citation\n",
"cannot permanently be disabled. Use --will-cite instead.\n";
last;
}
} }
} }
} }
@ -3542,7 +3546,8 @@ sub tmpfile {
print $disk_full_fh $b8193; print $disk_full_fh $b8193;
if(not $disk_full_fh if(not $disk_full_fh
or or
tell $disk_full_fh == 0) { tell $disk_full_fh != 8193) {
# On raspbian the disk can be full except for 10 chars.
::error("Output is incomplete. Cannot append to buffer file in $ENV{'TMPDIR'}. Is the disk full?\n"); ::error("Output is incomplete. Cannot append to buffer file in $ENV{'TMPDIR'}. Is the disk full?\n");
::error("Change \$TMPDIR with --tmpdir or use --compress.\n"); ::error("Change \$TMPDIR with --tmpdir or use --compress.\n");
::wait_and_exit(255); ::wait_and_exit(255);
@ -4835,11 +4840,10 @@ sub no_of_cpus_freebsd {
# Returns: # Returns:
# Number of physical CPUs on FreeBSD # Number of physical CPUs on FreeBSD
# undef if not FreeBSD # undef if not FreeBSD
# TODO sh -c wrapper to work in csh
my $no_of_cpus = my $no_of_cpus =
(`sysctl -a dev.cpu 2>/dev/null | grep \%parent | awk '{ print \$2 }' | uniq | wc -l | awk '{ print \$1 }'` (qx{ sh -c 'sysctl -a dev.cpu 2>/dev/null' | grep \%parent | awk '{ print \$2 }' | uniq | wc -l | awk '{ print \$1 }' }
or or
`sysctl hw.ncpu 2>/dev/null | awk '{ print \$2 }'`); qx{ sh -c 'sysctl hw.ncpu 2>/dev/null' | awk '{ print \$2 }' });
chomp $no_of_cpus; chomp $no_of_cpus;
return $no_of_cpus; return $no_of_cpus;
} }
@ -4848,11 +4852,10 @@ sub no_of_cores_freebsd {
# Returns: # Returns:
# Number of CPU cores on FreeBSD # Number of CPU cores on FreeBSD
# undef if not FreeBSD # undef if not FreeBSD
# TODO sh -c wrapper to work in csh
my $no_of_cores = my $no_of_cores =
(`sysctl hw.ncpu 2>/dev/null | awk '{ print \$2 }'` (qx{ sh -c 'sysctl hw.ncpu 2>/dev/null' | awk '{ print \$2 }' }
or or
`sysctl -a hw 2>/dev/null | grep [^a-z]logicalcpu[^a-z] | awk '{ print \$2 }'`); qx{ sh -c 'sysctl -a hw 2>/dev/null' | grep [^a-z]logicalcpu[^a-z] | awk '{ print \$2 }' });
chomp $no_of_cores; chomp $no_of_cores;
return $no_of_cores; return $no_of_cores;
} }
@ -4915,11 +4918,10 @@ sub no_of_cpus_darwin {
# Returns: # Returns:
# Number of physical CPUs on Mac Darwin # Number of physical CPUs on Mac Darwin
# undef if not Mac Darwin # undef if not Mac Darwin
# TODO sh -c wrapper to work in csh
my $no_of_cpus = my $no_of_cpus =
(`sysctl -n hw.physicalcpu 2>/dev/null` (qx{ sh -c 'sysctl -n hw.physicalcpu 2>/dev/null' }
or or
`sysctl -a hw 2>/dev/null | grep [^a-z]physicalcpu[^a-z] | awk '{ print \$2 }'`); qx{ sh -c 'sysctl -a hw 2>/dev/null' | grep [^a-z]physicalcpu[^a-z] | awk '{ print \$2 }' });
return $no_of_cpus; return $no_of_cpus;
} }
@ -4927,11 +4929,10 @@ sub no_of_cores_darwin {
# Returns: # Returns:
# Number of CPU cores on Mac Darwin # Number of CPU cores on Mac Darwin
# undef if not Mac Darwin # undef if not Mac Darwin
# TODO sh -c wrapper to work in csh
my $no_of_cores = my $no_of_cores =
(`sysctl -n hw.logicalcpu 2>/dev/null` (qx{ sh -c 'sysctl -n hw.logicalcpu 2>/dev/null' }
or or
`sysctl -a hw 2>/dev/null | grep [^a-z]logicalcpu[^a-z] | awk '{ print \$2 }'`); qx{ sh -c 'sysctl -a hw 2>/dev/null' | grep [^a-z]logicalcpu[^a-z] | awk '{ print \$2 }' });
return $no_of_cores; return $no_of_cores;
} }
@ -4946,7 +4947,7 @@ sub no_of_cpus_solaris {
} }
} }
if(-x "/usr/sbin/prtconf") { if(-x "/usr/sbin/prtconf") {
my @prtconf = `/usr/sbin/prtconf | grep cpu..instance`; my @prtconf = qx{ /usr/sbin/prtconf | grep cpu..instance };
if($#prtconf >= 0) { if($#prtconf >= 0) {
return $#prtconf +1; return $#prtconf +1;
} }
@ -4965,7 +4966,7 @@ sub no_of_cores_solaris {
} }
} }
if(-x "/usr/sbin/prtconf") { if(-x "/usr/sbin/prtconf") {
my @prtconf = `/usr/sbin/prtconf | grep cpu..instance`; my @prtconf = qx{ /usr/sbin/prtconf | grep cpu..instance };
if($#prtconf >= 0) { if($#prtconf >= 0) {
return $#prtconf +1; return $#prtconf +1;
} }
@ -6923,7 +6924,12 @@ sub files_print {
# If --compress: $in_fh must be closed first. # If --compress: $in_fh must be closed first.
close $self->fh($fdno,"w"); close $self->fh($fdno,"w");
if($? and $opt::compress) {
::error($opt::decompress_program." failed\n");
$self->set_exitstatus(255);
}
close $in_fh; close $in_fh;
# TODO if $?: die(?)
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 unused tmp files if --files was set # cleanup unused tmp files if --files was set
@ -6945,6 +6951,10 @@ sub linebuffer_print {
if(defined $self->{'exitstatus'}) { if(defined $self->{'exitstatus'}) {
# If the job is dead: close printing fh. Needed for --compress # If the job is dead: close printing fh. Needed for --compress
close $self->fh($fdno,"w"); close $self->fh($fdno,"w");
if($? and $opt::compress) {
::error($opt::decompress_program." failed\n");
$self->set_exitstatus(255);
}
if($opt::compress) { if($opt::compress) {
# Blocked reading in final round # Blocked reading in final round
$Global::use{"Fcntl"} ||= eval "use Fcntl qw(:DEFAULT :flock); 1;"; $Global::use{"Fcntl"} ||= eval "use Fcntl qw(:DEFAULT :flock); 1;";
@ -7011,6 +7021,7 @@ sub linebuffer_print {
} else { } else {
# decompress done: close fh # decompress done: close fh
close $in_fh; close $in_fh;
# TODO if $?: die(?)
} }
} }
} }
@ -7020,6 +7031,10 @@ sub tag_print {
my ($fdno,$in_fh,$out_fd) = @_; my ($fdno,$in_fh,$out_fd) = @_;
my $buf; my $buf;
close $self->fh($fdno,"w"); close $self->fh($fdno,"w");
if($? and $opt::compress) {
::error($opt::decompress_program." failed\n");
$self->set_exitstatus(255);
}
seek $in_fh, 0, 0; seek $in_fh, 0, 0;
# $in_fh is now ready for reading at position 0 # $in_fh is now ready for reading at position 0
my $tag = $self->tag(); my $tag = $self->tag();
@ -7053,6 +7068,10 @@ sub normal_print {
my ($fdno,$in_fh,$out_fd) = @_; my ($fdno,$in_fh,$out_fd) = @_;
my $buf; my $buf;
close $self->fh($fdno,"w"); close $self->fh($fdno,"w");
if($? and $opt::compress) {
::error($opt::decompress_program." failed\n");
$self->set_exitstatus(255);
}
seek $in_fh, 0, 0; seek $in_fh, 0, 0;
# $in_fh is now ready for reading at position 0 # $in_fh is now ready for reading at position 0
if($fdno == 2) { if($fdno == 2) {

View file

@ -1175,14 +1175,6 @@ Overrides an earlier B<--keep-order> (e.g. if set in
B<~/.parallel/config>). B<~/.parallel/config>).
=item B<--no-notice>
Do not display citation notice. A citation notice is printed on stderr
(standard error) only if stderr (standard error) is a terminal, the
user has not specified B<--no-notice>, and the user has not run
B<--bibtex> once.
=item B<--nice> I<niceness> =item B<--nice> I<niceness>
Run the command at this niceness. For simple commands you can just add Run the command at this niceness. For simple commands you can just add

View file

@ -13,21 +13,21 @@ testsuite: 3
date date
make stopvm make stopvm
mem: ../src/parallel tests-to-run/*mem* wanted-results/*mem* startdb prereqlocal prereqremote mem: ../src/parallel tests-to-run/*mem* wanted-results/*mem* prereqlocal
time sh Start.sh mem NONE || true time sh Start.sh mem NONE || true
touch ~/.parallel/will-cite touch ~/.parallel/will-cite
date date
make stopvm make stopvm
testdb: ../src/parallel tests-to-run/*sql* wanted-results/*sql* prereqdb testdb: ../src/parallel tests-to-run/*sql* wanted-results/*sql* prereqdb
time sh Start.sh sql time sh Start.sh sql NONE
date date
local: testlocal local: testlocal
true true
testlocal: ../src/parallel tests-to-run/*local* wanted-results/*local* prereqlocal installparallel testlocal: ../src/parallel tests-to-run/*local* wanted-results/*local* prereqlocal installparallel
time sh Start.sh local time sh Start.sh local NONE
date date
prereqlocal: installparallel prereqlocal: installparallel
@ -97,3 +97,4 @@ timingbar:
mv vmstat.timestamp.1 vmstat.timestamp mv vmstat.timestamp.1 vmstat.timestamp
mv make.timestamp.1 make.timestamp mv make.timestamp.1 make.timestamp
sort vmstat.timestamp make.timestamp | perl -pe '/tests-to-run(\S+)/ and $$p=$$1; print "$$p "' | field 6,1,2 | perl -ne '/^\d+ / and print' | histogram -i vh sort vmstat.timestamp make.timestamp | perl -pe '/tests-to-run(\S+)/ and $$p=$$1; print "$$p "' | field 6,1,2 | perl -ne '/^\d+ / and print' | histogram -i vh

View file

@ -74,4 +74,14 @@ cat /dev/zero >/mnt/ram/out;
parallel --tmpdir /mnt/ram echo ::: OK; parallel --tmpdir /mnt/ram echo ::: OK;
rm /mnt/ram/out rm /mnt/ram/out
echo '**'
echo '### bug #44546: If --compress-program fails: fail'
parallel --line-buffer --compress-program false echo \;ls ::: /no-existing; echo $?
parallel --tag --line-buffer --compress-program false echo \;ls ::: /no-existing; echo $?
(parallel --files --tag --line-buffer --compress-program false echo \;sleep 1\;ls ::: /no-existing; echo $?) | tail -n1
parallel --tag --compress-program false echo \;ls ::: /no-existing; echo $?
parallel --line-buffer --compress-program false echo \;ls ::: /no-existing; echo $?
parallel --compress-program false echo \;ls ::: /no-existing; echo $?
EOF EOF

View file

@ -1,7 +1,8 @@
#!/bin/bash #!/bin/bash
# SSH only allowed to localhost/lo # SSH only allowed to localhost/lo
cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | parallel -vj7 -k --joblog /tmp/jl-`basename $0` -L1 # --retries if ssh dies
cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | parallel -vj7 --retries 2 -k --joblog /tmp/jl-`basename $0` -L1
echo '### zsh' echo '### zsh'
ssh zsh@lo 'fun="() { echo function from zsh to zsh \$*; }"; ssh zsh@lo 'fun="() { echo function from zsh to zsh \$*; }";
export fun; export fun;

View file

@ -2,11 +2,11 @@
# Check servers up on http://www.polarhome.com/service/status/ # Check servers up on http://www.polarhome.com/service/status/
P_ALL="vax freebsd solaris openbsd netbsd debian alpha aix redhat hpux ultrix minix qnx irix tru64 openindiana suse solaris-x86 mandriva ubuntu scosysv unixware dragonfly centos miros hurd raspberrypi macosx hpux-ia64 syllable" P_ALL="vax freebsd solaris openbsd netbsd debian alpha aix redhat hpux ultrix minix qnx irix tru64 openindiana suse solaris-x86 mandriva ubuntu scosysv unixware dragonfly centos miros hurd raspbian macosx hpux-ia64 syllable"
P_NOTWORKING="vax alpha openstep" P_NOTWORKING="vax alpha openstep"
P_NOTWORKING_YET="ultrix irix" P_NOTWORKING_YET="ultrix irix"
P_WORKING="minix freebsd solaris openbsd netbsd debian aix redhat hpux qnx tru64 openindiana suse solaris-x86 mandriva ubuntu scosysv unixware dragonfly centos miros hurd raspberrypi macosx hpux-ia64 syllable" P_WORKING="minix freebsd solaris openbsd netbsd debian aix redhat hpux qnx tru64 openindiana suse solaris-x86 mandriva ubuntu scosysv unixware dragonfly centos miros hurd raspbian macosx hpux-ia64 syllable"
P="$P_WORKING" P="$P_WORKING"
POLAR=`parallel -k echo {}.polarhome.com ::: $P` POLAR=`parallel -k echo {}.polarhome.com ::: $P`
@ -21,7 +21,9 @@ copy_and_test() {
# scp to each polarhome machine do not work. Use cat # scp to each polarhome machine do not work. Use cat
# Avoid the stupid /etc/issue.net banner with -oLogLevel=quiet # Avoid the stupid /etc/issue.net banner with -oLogLevel=quiet
echo '### Run the test on '$H echo '### Run the test on '$H
cat `which parallel` | ssh -oLogLevel=quiet $H 'cat > bin/p.tmp && chmod 755 bin/p.tmp && mv bin/p.tmp bin/parallel && bin/perl bin/parallel echo Works on {} ::: '$H cat `which parallel` |
stdout ssh -oLogLevel=quiet $H 'cat > bin/p.tmp && chmod 755 bin/p.tmp && mv bin/p.tmp bin/parallel && bin/perl bin/parallel echo Works on {} ::: '$H'; bin/perl bin/parallel --tmpdir / echo ::: test read-only tmp' |
perl -pe 's:/[a-z0-9_]+.arg:/XXXXXXXX.arg:gi'
} }
export -f copy_and_test export -f copy_and_test
stdout parallel -j0 -k --retries 5 --timeout 80 --delay 0.1 --tag -v copy_and_test {} ::: $POLAR stdout parallel -j0 -k --retries 5 --timeout 80 --delay 0.1 --tag -v copy_and_test {} ::: $POLAR

View file

@ -98,3 +98,33 @@ cat /dev/zero >/mnt/ram/out; parallel --tmpdir /mnt/ram echo ::: OK; rm /mnt
cat: write error: No space left on device cat: write error: No space left on device
parallel: Error: Output is incomplete. Cannot append to buffer file in /mnt/ram. Is the disk full? parallel: Error: Output is incomplete. Cannot append to buffer file in /mnt/ram. Is the disk full?
parallel: Error: Change $TMPDIR with --tmpdir or use --compress. parallel: Error: Change $TMPDIR with --tmpdir or use --compress.
echo '**'
**
echo '### bug #44546: If --compress-program fails: fail'
### bug #44546: If --compress-program fails: fail
parallel --line-buffer --compress-program false echo \;ls ::: /no-existing; echo $?
1
parallel: Error: false -dc failed
parallel: Error: false -dc failed
parallel --tag --line-buffer --compress-program false echo \;ls ::: /no-existing; echo $?
1
parallel: Error: false -dc failed
parallel: Error: false -dc failed
(parallel --files --tag --line-buffer --compress-program false echo \;sleep 1\;ls ::: /no-existing; echo $?) | tail -n1
1
parallel: Error: false -dc failed
parallel: Error: false -dc failed
parallel: Error: false -dc failed
parallel: Error: false -dc failed
parallel --tag --compress-program false echo \;ls ::: /no-existing; echo $?
1
parallel: Error: false -dc failed
parallel: Error: false -dc failed
parallel --line-buffer --compress-program false echo \;ls ::: /no-existing; echo $?
1
parallel: Error: false -dc failed
parallel: Error: false -dc failed
parallel --compress-program false echo \;ls ::: /no-existing; echo $?
1
parallel: Error: false -dc failed
parallel: Error: false -dc failed

View file

@ -1,7 +1,8 @@
make[1]: Entering directory `/home/tange/privat/parallel/testsuite' make[1]: Entering directory `/home/tange/privat/parallel/testsuite'
VBoxManage controlvm CentOS3-root:centos3 savestate # || true - because this should not fail if the VM is not running
VBoxManage controlvm RedHat9-root:redhat9 savestate VBoxManage controlvm CentOS3-root:centos3 savestate || true
VBoxManage controlvm OracleXE savestate VBoxManage controlvm RedHat9-root:redhat9 savestate || true
VBoxManage controlvm OracleXE savestate || true
make[1]: Leaving directory `/home/tange/privat/parallel/testsuite' make[1]: Leaving directory `/home/tange/privat/parallel/testsuite'
echo '### Trouble reading a record > 2 GB for certain versions of Perl (substr($a,0,2G+1)="fails")' echo '### Trouble reading a record > 2 GB for certain versions of Perl (substr($a,0,2G+1)="fails")'
### Trouble reading a record > 2 GB for certain versions of Perl (substr($a,0,2G+1)="fails") ### Trouble reading a record > 2 GB for certain versions of Perl (substr($a,0,2G+1)="fails")

View file

@ -9,7 +9,7 @@ please cite:
This helps funding further development; and it won't cost you a cent. This helps funding further development; and it won't cost you a cent.
If you pay 10000 EUR you should feel free to use GNU Parallel without citing. If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
Silence the citation notice: run 'parallel --bibtex' once or use '--will-cite'. To silence the citation notice: run 'parallel --bibtex'.
cat - cat -
via first cat via first cat
@ -28,7 +28,7 @@ please cite:
This helps funding further development; and it won't cost you a cent. This helps funding further development; and it won't cost you a cent.
If you pay 10000 EUR you should feel free to use GNU Parallel without citing. If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
Silence the citation notice: run 'parallel --bibtex' once or use '--will-cite'. To silence the citation notice: run 'parallel --bibtex'.
echo a echo a
a a
@ -49,7 +49,7 @@ please cite:
This helps funding further development; and it won't cost you a cent. This helps funding further development; and it won't cost you a cent.
If you pay 10000 EUR you should feel free to use GNU Parallel without citing. If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
Silence the citation notice: run 'parallel --bibtex' once or use '--will-cite'. To silence the citation notice: run 'parallel --bibtex'.
10 files to edit 10 files to edit
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"file1" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25lE173: 9 more files to edit[?12l[?25h[?1l>[?1049l [?1049h[?1h=[?12;25h[?12l[?25h[?25l"file1" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25lE173: 9 more files to edit[?12l[?25h[?1l>[?1049l

View file

@ -3,6 +3,7 @@ bug #44250: pxz complains File format not recognized but decompresses anyway
# The first line dumps core if run from make file. Why?! # The first line dumps core if run from make file. Why?!
stdout parallel --compress --compress-program pxz ls /{} ::: OK-if-missing-file stdout parallel --compress --compress-program pxz ls /{} ::: OK-if-missing-file
Segmentation fault (core dumped) Segmentation fault (core dumped)
parallel: Error: pxz -dc failed
stdout parallel --compress --compress-program pixz --decompress-program 'pixz -d' ls /{} ::: OK-if-missing-file stdout parallel --compress --compress-program pixz --decompress-program 'pixz -d' ls /{} ::: OK-if-missing-file
ls: cannot access /OK-if-missing-file: No such file or directory ls: cannot access /OK-if-missing-file: No such file or directory
stdout parallel --compress --compress-program pixz --decompress-program 'pixz -d' true ::: OK-if-no-output stdout parallel --compress --compress-program pixz --decompress-program 'pixz -d' true ::: OK-if-no-output

View file

@ -5,77 +5,107 @@ minix.polarhome.com ### Run the test on minix.polarhome.com
copy_and_test freebsd.polarhome.com copy_and_test freebsd.polarhome.com
freebsd.polarhome.com ### Run the test on freebsd.polarhome.com freebsd.polarhome.com ### Run the test on freebsd.polarhome.com
freebsd.polarhome.com Works on freebsd.polarhome.com freebsd.polarhome.com Works on freebsd.polarhome.com
freebsd.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515.
copy_and_test solaris.polarhome.com copy_and_test solaris.polarhome.com
solaris.polarhome.com ### Run the test on solaris.polarhome.com solaris.polarhome.com ### Run the test on solaris.polarhome.com
solaris.polarhome.com Works on solaris.polarhome.com solaris.polarhome.com Works on solaris.polarhome.com
solaris.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable
solaris.polarhome.com at bin/parallel line 3515
copy_and_test openbsd.polarhome.com copy_and_test openbsd.polarhome.com
openbsd.polarhome.com ### Run the test on openbsd.polarhome.com openbsd.polarhome.com ### Run the test on openbsd.polarhome.com
openbsd.polarhome.com Works on openbsd.polarhome.com openbsd.polarhome.com Works on openbsd.polarhome.com
openbsd.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515
copy_and_test netbsd.polarhome.com copy_and_test netbsd.polarhome.com
netbsd.polarhome.com ### Run the test on netbsd.polarhome.com netbsd.polarhome.com ### Run the test on netbsd.polarhome.com
netbsd.polarhome.com Works on netbsd.polarhome.com netbsd.polarhome.com Works on netbsd.polarhome.com
netbsd.polarhome.com Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515.
copy_and_test debian.polarhome.com copy_and_test debian.polarhome.com
debian.polarhome.com ### Run the test on debian.polarhome.com debian.polarhome.com ### Run the test on debian.polarhome.com
debian.polarhome.com Works on debian.polarhome.com debian.polarhome.com Works on debian.polarhome.com
debian.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515
copy_and_test aix.polarhome.com copy_and_test aix.polarhome.com
aix.polarhome.com ### Run the test on aix.polarhome.com aix.polarhome.com ### Run the test on aix.polarhome.com
aix.polarhome.com Works on aix.polarhome.com aix.polarhome.com Works on aix.polarhome.com
aix.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: The file access permissions do not allow the specified action. at bin/parallel line 3515
copy_and_test redhat.polarhome.com copy_and_test redhat.polarhome.com
redhat.polarhome.com ### Run the test on redhat.polarhome.com redhat.polarhome.com ### Run the test on redhat.polarhome.com
redhat.polarhome.com Works on redhat.polarhome.com redhat.polarhome.com Works on redhat.polarhome.com
redhat.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515
copy_and_test hpux.polarhome.com copy_and_test hpux.polarhome.com
hpux.polarhome.com ### Run the test on hpux.polarhome.com hpux.polarhome.com ### Run the test on hpux.polarhome.com
hpux.polarhome.com Works on hpux.polarhome.com hpux.polarhome.com Works on hpux.polarhome.com
hpux.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515
copy_and_test qnx.polarhome.com copy_and_test qnx.polarhome.com
qnx.polarhome.com ### Run the test on qnx.polarhome.com qnx.polarhome.com ### Run the test on qnx.polarhome.com
qnx.polarhome.com Works on qnx.polarhome.com
qnx.polarhome.com parallel: Warning: Cannot figure out number of CPU cores. Using 1. qnx.polarhome.com parallel: Warning: Cannot figure out number of CPU cores. Using 1.
qnx.polarhome.com Works on qnx.polarhome.com
qnx.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515
copy_and_test tru64.polarhome.com copy_and_test tru64.polarhome.com
tru64.polarhome.com ### Run the test on tru64.polarhome.com tru64.polarhome.com ### Run the test on tru64.polarhome.com
tru64.polarhome.com Works on tru64.polarhome.com tru64.polarhome.com Works on tru64.polarhome.com
tru64.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable
tru64.polarhome.com at bin/parallel line 3515
copy_and_test openindiana.polarhome.com copy_and_test openindiana.polarhome.com
openindiana.polarhome.com ### Run the test on openindiana.polarhome.com openindiana.polarhome.com ### Run the test 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.
openindiana.polarhome.com Works on openindiana.polarhome.com
openindiana.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515
copy_and_test suse.polarhome.com copy_and_test suse.polarhome.com
suse.polarhome.com ### Run the test on suse.polarhome.com suse.polarhome.com ### Run the test on suse.polarhome.com
suse.polarhome.com Works on suse.polarhome.com suse.polarhome.com Works on suse.polarhome.com
suse.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515.
copy_and_test solaris-x86.polarhome.com copy_and_test solaris-x86.polarhome.com
solaris-x86.polarhome.com ### Run the test on solaris-x86.polarhome.com solaris-x86.polarhome.com ### Run the test on solaris-x86.polarhome.com
solaris-x86.polarhome.com Works on solaris-x86.polarhome.com solaris-x86.polarhome.com Works on solaris-x86.polarhome.com
solaris-x86.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515
copy_and_test mandriva.polarhome.com copy_and_test mandriva.polarhome.com
mandriva.polarhome.com ### Run the test on mandriva.polarhome.com mandriva.polarhome.com ### Run the test on mandriva.polarhome.com
mandriva.polarhome.com Works on mandriva.polarhome.com mandriva.polarhome.com Works on mandriva.polarhome.com
mandriva.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515
copy_and_test ubuntu.polarhome.com copy_and_test ubuntu.polarhome.com
ubuntu.polarhome.com ### Run the test on ubuntu.polarhome.com ubuntu.polarhome.com ### Run the test on ubuntu.polarhome.com
ubuntu.polarhome.com Works on ubuntu.polarhome.com ubuntu.polarhome.com Works on ubuntu.polarhome.com
ubuntu.polarhome.com Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515.
copy_and_test scosysv.polarhome.com copy_and_test scosysv.polarhome.com
scosysv.polarhome.com ### Run the test on scosysv.polarhome.com scosysv.polarhome.com ### Run the test on scosysv.polarhome.com
scosysv.polarhome.com Works on scosysv.polarhome.com scosysv.polarhome.com Works on scosysv.polarhome.com
scosysv.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable
scosysv.polarhome.com at bin/parallel line 3515
copy_and_test unixware.polarhome.com copy_and_test unixware.polarhome.com
unixware.polarhome.com ### Run the test on unixware.polarhome.com unixware.polarhome.com ### Run the test on unixware.polarhome.com
unixware.polarhome.com Works on unixware.polarhome.com unixware.polarhome.com Works on unixware.polarhome.com
unixware.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515
copy_and_test dragonfly.polarhome.com copy_and_test dragonfly.polarhome.com
dragonfly.polarhome.com ### Run the test on dragonfly.polarhome.com dragonfly.polarhome.com ### Run the test on dragonfly.polarhome.com
dragonfly.polarhome.com Works on dragonfly.polarhome.com dragonfly.polarhome.com Works on dragonfly.polarhome.com
dragonfly.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515
copy_and_test centos.polarhome.com copy_and_test centos.polarhome.com
centos.polarhome.com ### Run the test on centos.polarhome.com centos.polarhome.com ### Run the test on centos.polarhome.com
centos.polarhome.com Works on centos.polarhome.com centos.polarhome.com Works on centos.polarhome.com
centos.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable
centos.polarhome.com at bin/parallel line 3515
copy_and_test miros.polarhome.com copy_and_test miros.polarhome.com
miros.polarhome.com ### Run the test on miros.polarhome.com miros.polarhome.com ### Run the test on miros.polarhome.com
miros.polarhome.com Works on miros.polarhome.com miros.polarhome.com Works on miros.polarhome.com
miros.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable
miros.polarhome.com at bin/parallel line 3515
copy_and_test hurd.polarhome.com copy_and_test hurd.polarhome.com
hurd.polarhome.com ### Run the test on hurd.polarhome.com hurd.polarhome.com ### Run the test on hurd.polarhome.com
hurd.polarhome.com Works on hurd.polarhome.com hurd.polarhome.com Works on hurd.polarhome.com
copy_and_test raspberrypi.polarhome.com hurd.polarhome.com Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515.
raspberrypi.polarhome.com ### Run the test on raspberrypi.polarhome.com copy_and_test raspbian.polarhome.com
raspberrypi.polarhome.com Works on raspberrypi.polarhome.com raspbian.polarhome.com ### Run the test on raspbian.polarhome.com
raspbian.polarhome.com Works on raspbian.polarhome.com
raspbian.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515
copy_and_test macosx.polarhome.com copy_and_test macosx.polarhome.com
macosx.polarhome.com ### Run the test on macosx.polarhome.com macosx.polarhome.com ### Run the test on macosx.polarhome.com
macosx.polarhome.com Works on macosx.polarhome.com macosx.polarhome.com Works on macosx.polarhome.com
macosx.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 3515
copy_and_test hpux-ia64.polarhome.com copy_and_test hpux-ia64.polarhome.com
hpux-ia64.polarhome.com ### Run the test on hpux-ia64.polarhome.com hpux-ia64.polarhome.com ### Run the test on hpux-ia64.polarhome.com
hpux-ia64.polarhome.com Works on hpux-ia64.polarhome.com hpux-ia64.polarhome.com Works on hpux-ia64.polarhome.com
hpux-ia64.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable
hpux-ia64.polarhome.com at bin/parallel line 3515
copy_and_test syllable.polarhome.com copy_and_test syllable.polarhome.com
syllable.polarhome.com ### Run the test on syllable.polarhome.com syllable.polarhome.com ### Run the test on syllable.polarhome.com
syllable.polarhome.com chmod: changing permissions of `bin/p.tmp': Function not implemented syllable.polarhome.com chmod: changing permissions of `bin/p.tmp': Function not implemented