parallel: --memfree kills do not count as --retries.

This commit is contained in:
Ole Tange 2024-05-05 19:06:38 +02:00
parent aea0ed19bc
commit 78d14e0e40
9 changed files with 375 additions and 330 deletions

View file

@ -8,11 +8,19 @@ test:
cd testsuite; make 1 cd testsuite; make 1
tortest: tortest:
torsocks ssh -t cn6kfd6pfck5kosywnuf33zvje2ifmelrz656rhzqjkpd77ib4sbzzad.onion 'cd privat/parallel/testsuite/ && make short && make long && make mem' torsocks ssh -t tortest 'export SSH_AUTH_SOCK=`cat ~/.ssh/SSH_AUTH_SOCK`;\
export SSH_AGENT_PID=`cat ~/.ssh/SSH_AGENT_PID`;\
cd privat/parallel/testsuite/ &&\
make short && make long && make mem'
make torresults
torresults:
torsocks rsync -Hazv --progress --exclude authorized_keys --exclude .vagrant/ tortest:privat/parallel/testsuite/actual-results/ testsuite/actual-results/
torsync: torsync:
torsocks rsync -Hazv --exclude authorized_keys --exclude .vagrant/ ./ cn6kfd6pfck5kosywnuf33zvje2ifmelrz656rhzqjkpd77ib4sbzzad.onion:privat/parallel/ torsocks rsync -Hazv --progress --exclude authorized_keys --exclude .vagrant/ ./ tortest:privat/parallel/
torsocks ssh -t cn6kfd6pfck5kosywnuf33zvje2ifmelrz656rhzqjkpd77ib4sbzzad.onion 'cd privat/parallel/testsuite/ && make prereqlocal' make tortest
web: web:
cd src; make web cd src; make web

View file

@ -777,11 +777,18 @@ test:
cd testsuite; make 1 cd testsuite; make 1
tortest: tortest:
torsocks ssh -t cn6kfd6pfck5kosywnuf33zvje2ifmelrz656rhzqjkpd77ib4sbzzad.onion 'cd privat/parallel/testsuite/ && make short && make long && make mem' torsocks ssh -t tortest 'export SSH_AUTH_SOCK=`cat ~/.ssh/SSH_AUTH_SOCK`;\
export SSH_AGENT_PID=`cat ~/.ssh/SSH_AGENT_PID`;\
cd privat/parallel/testsuite/ &&\
make short && make long && make mem'
make torresults
torresults:
torsocks rsync -Hazv --progress --exclude authorized_keys --exclude .vagrant/ tortest:privat/parallel/testsuite/actual-results/ testsuite/actual-results/
torsync: torsync:
torsocks rsync -Hazv --exclude authorized_keys --exclude .vagrant/ ./ cn6kfd6pfck5kosywnuf33zvje2ifmelrz656rhzqjkpd77ib4sbzzad.onion:privat/parallel/ torsocks rsync -Hazv --progress --exclude authorized_keys --exclude .vagrant/ ./ tortest:privat/parallel/
torsocks ssh -t cn6kfd6pfck5kosywnuf33zvje2ifmelrz656rhzqjkpd77ib4sbzzad.onion 'cd privat/parallel/testsuite/ && make prereqlocal' make tortest
web: web:
cd src; make web cd src; make web

View file

@ -5727,6 +5727,9 @@ sub kill_sleep_seq(@) {
# Send jobs TERM,TERM,KILL to processgroups # Send jobs TERM,TERM,KILL to processgroups
# Input: # Input:
# @pids = list of pids that are also processgroups # @pids = list of pids that are also processgroups
# Killing can be slow if you follow @term_seq
# So run the killing in parallel
if(not fork()) {
# Convert pids to process groups ($processgroup = -$pid) # Convert pids to process groups ($processgroup = -$pid)
my @pgrps = map { -$_ } @_; my @pgrps = map { -$_ } @_;
my @term_seq = split/,/,$opt::termseq; my @term_seq = split/,/,$opt::termseq;
@ -5737,6 +5740,8 @@ sub kill_sleep_seq(@) {
while(@term_seq) { while(@term_seq) {
@pgrps = kill_sleep(shift @term_seq, shift @term_seq, @pgrps); @pgrps = kill_sleep(shift @term_seq, shift @term_seq, @pgrps);
} }
exit(0);
}
} }
sub kill_sleep() { sub kill_sleep() {
@ -7140,6 +7145,7 @@ sub kill_youngster_if_not_enough_mem() {
::debug("mem","\n", $job->seq(), "killed ", ::debug("mem","\n", $job->seq(), "killed ",
$sshlogin->memfree()," < ",$limit); $sshlogin->memfree()," < ",$limit);
$job->kill(); $job->kill();
$job->set_killreason("mem");
$sshlogin->memfree_recompute(); $sshlogin->memfree_recompute();
} else { } else {
last; last;
@ -9964,6 +9970,16 @@ sub kill($) {
::kill_sleep_seq($self->pid()); ::kill_sleep_seq($self->pid());
} }
sub killreason($) {
my $self = shift;
return $self->{'killreason'};
}
sub set_killreason($) {
my $self = shift;
$self->{'killreason'} = shift;
}
sub suspend($) { sub suspend($) {
my $self = shift; my $self = shift;
my @pgrps = map { -$_ } $self->pid(); my @pgrps = map { -$_ } $self->pid();
@ -11298,12 +11314,28 @@ sub set_job_in_joblog($) {
vec($Global::job_already_run,$job->seq(),1) = 1; vec($Global::job_already_run,$job->seq(),1) = 1;
} }
sub retry() {
# This command should be retried
my $self = shift;
$self->set_endtime(undef);
$self->reset_exitstatus();
$self->set_killreason(undef);
$Global::JobQueue->unget($self);
::debug("run", "Retry ", $self->seq(), "\n");
return 1;
}
sub should_be_retried($) { sub should_be_retried($) {
# Should this job be retried? # Should this job be retried?
# Returns # Returns
# 0 - do not retry # 0 - do not retry
# 1 - job queued for retry # 1 - job queued for retry
my $self = shift; my $self = shift;
if(0 and $opt::memfree and $self->killreason() eq "mem") {
# Job was killed due to memfree => retry
return $self->retry();
}
if (not defined $opt::retries) { return 0; } if (not defined $opt::retries) { return 0; }
if(not $self->exitstatus() and not $self->exitsignal()) { if(not $self->exitstatus() and not $self->exitsignal()) {
# Completed with success. If there is a recorded failure: forget it # Completed with success. If there is a recorded failure: forget it
@ -11324,11 +11356,7 @@ sub should_be_retried($) {
return 0; return 0;
} else { } else {
# This command should be retried # This command should be retried
$self->set_endtime(undef); return $self->retry();
$self->reset_exitstatus();
$Global::JobQueue->unget($self);
::debug("run", "Retry ", $self->seq(), "\n");
return 1;
} }
} }
} }

View file

@ -116,7 +116,7 @@ start=(stdout ping -w 1 -c 1 {} && ssh vagrant@{} echo ssh {} works || \
(cat ../../authorized_keys | vagrant ssh -c "cat >>.ssh/authorized_keys"; \ (cat ../../authorized_keys | vagrant ssh -c "cat >>.ssh/authorized_keys"; \
vagrant ssh -c "sudo /sbin/ifconfig eth1 172.27.27.3"); \ vagrant ssh -c "sudo /sbin/ifconfig eth1 172.27.27.3"); \
ssh-keygen -R {}; \ ssh-keygen -R {}; \
stdout wssh -oStrictHostKeyChecking=accept-new vagrant@{} echo {} is up) ) | \ stdout wssh -oStrictHostKeyChecking=accept-new vagrant@{} echo ssh {} started and works) ) | \
grep -Ev "${ignore}" grep -Ev "${ignore}"
stop=(stdout ping -w 1 -c 1 {} && \ stop=(stdout ping -w 1 -c 1 {} && \

View file

@ -419,8 +419,8 @@ par_disk_full() {
) >/dev/null 2>/dev/null ) >/dev/null 2>/dev/null
cat /dev/zero >$SMALLDISK/out cat /dev/zero >$SMALLDISK/out
parallel --tmpdir $SMALLDISK echo ::: OK stdout parallel --tmpdir $SMALLDISK echo ::: OK |
grep -v 'Warning: unable to close filehandle.* No space left on device'
rm $SMALLDISK/out rm $SMALLDISK/out
sudo umount -l /tmp/smalldisk.img sudo umount -l /tmp/smalldisk.img

View file

@ -591,7 +591,8 @@ par_tmp_full() {
sudo mount -t tmpfs -o size=10% none $SHM sudo mount -t tmpfs -o size=10% none $SHM
echo "### Test --tmpdir running full. bug #40733 was caused by this" echo "### Test --tmpdir running full. bug #40733 was caused by this"
stdout parallel -j1 --tmpdir $SHM cat /dev/zero ::: dummy stdout parallel -j1 --tmpdir $SHM cat /dev/zero ::: dummy |
grep -v 'Warning:.*No space left on device during global destruction'
} }
par_jobs_file() { par_jobs_file() {

View file

@ -110,7 +110,7 @@ par_over_4GB() {
nice md5sum nice md5sum
} }
par_mem_leak() { par__mem_leak() {
echo "### test for mem leak" echo "### test for mem leak"
export parallel=parallel export parallel=parallel
@ -161,7 +161,7 @@ par_mem_leak() {
fi fi
} }
par_halt_on_error() { par_xhalt_on_error() {
mytest() { mytest() {
HALT=$1 HALT=$1
BOOL1=$2 BOOL1=$2
@ -183,7 +183,7 @@ par_halt_on_error() {
parallel -j1 -k --tag mytest ::: -2 -1 0 1 2 ::: true false ::: true false parallel -j1 -k --tag mytest ::: -2 -1 0 1 2 ::: true false ::: true false
} }
par_test_build_and_install() { par__test_build_and_install() {
cd ~/privat/parallel cd ~/privat/parallel
# Make a .tar.gz file # Make a .tar.gz file
stdout make dist | stdout make dist |

View file

@ -28,6 +28,7 @@ par_sshlogin_with_comma() {
par_sshpass_with_password() { par_sshpass_with_password() {
echo '### sshpass' echo '### sshpass'
. ~/.passwords
echo OK | parallel -S "sshpass -p $withpassword ssh withpassword@lo:22" echo echo OK | parallel -S "sshpass -p $withpassword ssh withpassword@lo:22" echo
echo OK | parallel -S withpassword:"$withpassword"@lo:22 echo echo OK | parallel -S withpassword:"$withpassword"@lo:22 echo
export SSHPASS="$withpassword" export SSHPASS="$withpassword"

View file

@ -1,308 +1,5 @@
par_compare_exit_codes ### compare the exit codes
par_compare_exit_codes directly from shells, shells called from parallel,
par_compare_exit_codes killed with different signals
par_compare_exit_codes sig=joblog_sig shell=parallel=joblog
par_compare_exit_codes par_compare_exit_codes
par_compare_exit_codes csh sig 2=0 130=1=1
par_compare_exit_codes posh sig 34=11 162=139=139
par_compare_exit_codes posh sig 35=11 163=139=139
par_compare_exit_codes posh sig 36=11 164=139=139
par_compare_exit_codes posh sig 37=11 165=139=139
par_compare_exit_codes posh sig 38=11 166=139=139
par_compare_exit_codes posh sig 39=11 167=139=139
par_compare_exit_codes posh sig 40=11 168=139=139
par_compare_exit_codes posh sig 41=11 169=139=139
par_compare_exit_codes posh sig 42=11 170=139=139
par_compare_exit_codes posh sig 43=11 171=139=139
par_compare_exit_codes posh sig 44=11 172=139=139
par_compare_exit_codes posh sig 45=11 173=139=139
par_compare_exit_codes posh sig 46=11 174=139=139
par_compare_exit_codes posh sig 47=11 175=139=139
par_compare_exit_codes posh sig 48=11 176=139=139
par_compare_exit_codes posh sig 49=11 177=139=139
par_compare_exit_codes posh sig 50=11 178=139=139
par_compare_exit_codes posh sig 51=11 179=139=139
par_compare_exit_codes posh sig 52=11 180=139=139
par_compare_exit_codes posh sig 53=11 181=139=139
par_compare_exit_codes posh sig 54=11 182=139=139
par_compare_exit_codes posh sig 55=11 183=139=139
par_compare_exit_codes posh sig 56=11 184=139=139
par_compare_exit_codes posh sig 57=11 185=139=139
par_compare_exit_codes posh sig 58=11 186=139=139
par_compare_exit_codes posh sig 59=11 187=139=139
par_compare_exit_codes posh sig 60=11 188=139=139
par_compare_exit_codes posh sig 61=11 189=139=139
par_compare_exit_codes posh sig 62=11 190=139=139
par_compare_exit_codes posh sig 63=11 191=139=139
par_compare_exit_codes posh sig 64=11 192=139=139
par_compare_exit_codes par_compare_exit_codes
par_compare_exit_codes tcsh sig 2=0 130=1=1
par_compare_exit_codes fdsh sig 2=0 0=2=2
par_compare_exit_codes fdsh exit 130=0 130=2=2
par_compare_exit_codes fdsh sig 9=0 137=2=2
par_compare_exit_codes fdsh exit 137=0 137=2=2
par_compare_exit_codes fdsh sig 10=0 0=2=2
par_compare_exit_codes fdsh exit 138=0 138=2=2
par_compare_exit_codes fdsh sig 11=0 0=2=2
par_compare_exit_codes fdsh exit 139=0 139=2=2
par_compare_exit_codes fdsh sig 12=0 0=2=2
par_compare_exit_codes fdsh exit 140=0 140=2=2
par_compare_exit_codes fdsh sig 15=0 0=2=2
par_compare_exit_codes fdsh exit 143=0 143=2=2
par_compare_exit_codes fdsh sig 16=0 144=2=2
par_compare_exit_codes fdsh exit 144=0 144=2=2
par_compare_exit_codes fdsh sig 17=0 0=2=2
par_compare_exit_codes fdsh exit 145=0 145=2=2
par_compare_exit_codes fdsh sig 18=0 0=2=2
par_compare_exit_codes fdsh exit 146=0 146=2=2
par_compare_exit_codes fdsh sig 20=0 0=2=2
par_compare_exit_codes fdsh exit 148=0 148=2=2
par_compare_exit_codes fdsh sig 21=0 0=2=2
par_compare_exit_codes fdsh exit 149=0 149=2=2
par_compare_exit_codes fdsh sig 22=0 0=2=2
par_compare_exit_codes fdsh exit 150=0 150=2=2
par_compare_exit_codes fdsh sig 23=0 0=2=2
par_compare_exit_codes fdsh exit 151=0 151=2=2
par_compare_exit_codes fdsh sig 26=0 154=2=2
par_compare_exit_codes fdsh exit 154=0 154=2=2
par_compare_exit_codes fdsh sig 27=0 155=2=2
par_compare_exit_codes fdsh exit 155=0 155=2=2
par_compare_exit_codes fdsh sig 29=0 157=2=2
par_compare_exit_codes fdsh exit 157=0 157=2=2
par_compare_exit_codes fdsh sig 30=0 158=2=2
par_compare_exit_codes fdsh exit 158=0 158=2=2
par_compare_exit_codes fdsh sig 32=0 0=2=2
par_compare_exit_codes fdsh exit 160=0 160=2=2
par_compare_exit_codes fdsh sig 33=0 0=2=2
par_compare_exit_codes fdsh exit 161=0 161=2=2
par_compare_exit_codes fdsh sig 35=0 163=2=2
par_compare_exit_codes fdsh exit 163=0 163=2=2
par_compare_exit_codes fdsh sig 36=0 164=2=2
par_compare_exit_codes fdsh exit 164=0 164=2=2
par_compare_exit_codes fdsh sig 37=0 165=2=2
par_compare_exit_codes fdsh exit 165=0 165=2=2
par_compare_exit_codes fdsh sig 38=0 166=2=2
par_compare_exit_codes fdsh exit 166=0 166=2=2
par_compare_exit_codes fdsh sig 39=0 167=2=2
par_compare_exit_codes fdsh exit 167=0 167=2=2
par_compare_exit_codes fdsh sig 40=0 168=2=2
par_compare_exit_codes fdsh exit 168=0 168=2=2
par_compare_exit_codes fdsh sig 41=0 169=2=2
par_compare_exit_codes fdsh exit 169=0 169=2=2
par_compare_exit_codes fdsh sig 42=0 170=2=2
par_compare_exit_codes fdsh exit 170=0 170=2=2
par_compare_exit_codes fdsh sig 43=0 171=2=2
par_compare_exit_codes fdsh exit 171=0 171=2=2
par_compare_exit_codes fdsh sig 45=0 173=2=2
par_compare_exit_codes fdsh exit 173=0 173=2=2
par_compare_exit_codes fdsh sig 46=0 174=2=2
par_compare_exit_codes fdsh exit 174=0 174=2=2
par_compare_exit_codes fdsh sig 47=0 175=2=2
par_compare_exit_codes fdsh exit 175=0 175=2=2
par_compare_exit_codes fdsh sig 48=0 176=2=2
par_compare_exit_codes fdsh exit 176=0 176=2=2
par_compare_exit_codes fdsh sig 49=0 177=2=2
par_compare_exit_codes fdsh exit 177=0 177=2=2
par_compare_exit_codes fdsh sig 50=0 178=2=2
par_compare_exit_codes fdsh exit 178=0 178=2=2
par_compare_exit_codes fdsh sig 51=0 179=2=2
par_compare_exit_codes fdsh exit 179=0 179=2=2
par_compare_exit_codes fdsh sig 52=0 180=2=2
par_compare_exit_codes fdsh exit 180=0 180=2=2
par_compare_exit_codes fdsh sig 53=0 181=2=2
par_compare_exit_codes fdsh exit 181=0 181=2=2
par_compare_exit_codes fdsh sig 55=0 183=2=2
par_compare_exit_codes fdsh exit 183=0 183=2=2
par_compare_exit_codes fdsh sig 56=0 184=2=2
par_compare_exit_codes fdsh exit 184=0 184=2=2
par_compare_exit_codes fdsh sig 57=0 185=2=2
par_compare_exit_codes fdsh exit 185=0 185=2=2
par_compare_exit_codes fdsh sig 58=0 186=2=2
par_compare_exit_codes fdsh exit 186=0 186=2=2
par_compare_exit_codes fdsh sig 59=0 187=2=2
par_compare_exit_codes fdsh exit 187=0 187=2=2
par_compare_exit_codes fdsh sig 60=0 188=2=2
par_compare_exit_codes fdsh exit 188=0 188=2=2
par_compare_exit_codes fdsh sig 61=0 189=2=2
par_compare_exit_codes fdsh exit 189=0 189=2=2
par_compare_exit_codes fdsh sig 62=0 190=2=2
par_compare_exit_codes fdsh exit 190=0 190=2=2
par_compare_exit_codes fdsh sig 63=0 191=2=2
par_compare_exit_codes fdsh exit 191=0 191=2=2
par_halt_on_error -2 true true 0
par_halt_on_error -2 true true 0
par_halt_on_error -2 true true parallel: This job succeeded:
par_halt_on_error -2 true true sleep 1;true
par_halt_on_error -2 true true parallel: This job succeeded:
par_halt_on_error -2 true true sleep 1;true
par_halt_on_error -2 true false 0
par_halt_on_error -2 true false 0
par_halt_on_error -2 true false parallel: This job succeeded:
par_halt_on_error -2 true false sleep 1;true
par_halt_on_error -2 true false parallel: This job succeeded:
par_halt_on_error -2 true false sleep 1;true
par_halt_on_error -2 false true 0
par_halt_on_error -2 false true 0
par_halt_on_error -2 false true parallel: This job succeeded:
par_halt_on_error -2 false true sleep 2;true
par_halt_on_error -2 false true parallel: This job succeeded:
par_halt_on_error -2 false true sleep 2;true
par_halt_on_error -2 false false 3
par_halt_on_error -2 false false 4
par_halt_on_error -2 false false /bin/bash: line 1: non_exist: command not found
par_halt_on_error -1 true true 0
par_halt_on_error -1 true true 0
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 1;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 2;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 3;true
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 1;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 2;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 3;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 true true /bin/bash: line 1: non_exist: command not found
par_halt_on_error -1 true false 0
par_halt_on_error -1 true false 0
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 1;true
par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 3;true
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 1;true
par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 3;true
par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 true false /bin/bash: line 1: non_exist: command not found
par_halt_on_error -1 false true 0
par_halt_on_error -1 false true 0
par_halt_on_error -1 false true parallel: This job succeeded:
par_halt_on_error -1 false true sleep 2;true
par_halt_on_error -1 false true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 false true parallel: This job succeeded:
par_halt_on_error -1 false true sleep 2;true
par_halt_on_error -1 false true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 false true /bin/bash: line 1: non_exist: command not found
par_halt_on_error -1 false false 3
par_halt_on_error -1 false false 4
par_halt_on_error -1 false false /bin/bash: line 1: non_exist: command not found
par_halt_on_error 0 true true 0
par_halt_on_error 0 true true 1
par_halt_on_error 0 true true /bin/bash: line 1: non_exist: command not found
par_halt_on_error 0 true false 1
par_halt_on_error 0 true false 2
par_halt_on_error 0 true false /bin/bash: line 1: non_exist: command not found
par_halt_on_error 0 false true 2
par_halt_on_error 0 false true 3
par_halt_on_error 0 false true /bin/bash: line 1: non_exist: command not found
par_halt_on_error 0 false false 3
par_halt_on_error 0 false false 4
par_halt_on_error 0 false false /bin/bash: line 1: non_exist: command not found
par_halt_on_error 1 true true 0
par_halt_on_error 1 true true 127
par_halt_on_error 1 true true /bin/bash: line 1: non_exist: command not found
par_halt_on_error 1 true true parallel: This job failed:
par_halt_on_error 1 true true sleep 4;non_exist
par_halt_on_error 1 true false 1
par_halt_on_error 1 true false 1
par_halt_on_error 1 true false parallel: This job failed:
par_halt_on_error 1 true false sleep 2;false
par_halt_on_error 1 true false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 true false parallel: This job failed:
par_halt_on_error 1 true false sleep 2;false
par_halt_on_error 1 true false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 true false /bin/bash: line 1: non_exist: command not found
par_halt_on_error 1 true false parallel: This job failed:
par_halt_on_error 1 true false sleep 4;non_exist
par_halt_on_error 1 false true 1
par_halt_on_error 1 false true 1
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 1;false
par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 3;false
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 1;false
par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 3;false
par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 false true /bin/bash: line 1: non_exist: command not found
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 4;non_exist
par_halt_on_error 1 false false 1
par_halt_on_error 1 false false 1
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 1;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 2;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 3;false
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 1;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 2;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 3;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 false false /bin/bash: line 1: non_exist: command not found
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 4;non_exist
par_halt_on_error 2 true true 0
par_halt_on_error 2 true true 127
par_halt_on_error 2 true true /bin/bash: line 1: non_exist: command not found
par_halt_on_error 2 true true parallel: This job failed:
par_halt_on_error 2 true true sleep 4;non_exist
par_halt_on_error 2 true false 1
par_halt_on_error 2 true false 1
par_halt_on_error 2 true false parallel: This job failed:
par_halt_on_error 2 true false sleep 2;false
par_halt_on_error 2 true false parallel: This job failed:
par_halt_on_error 2 true false sleep 2;false
par_halt_on_error 2 false true 1
par_halt_on_error 2 false true 1
par_halt_on_error 2 false true parallel: This job failed:
par_halt_on_error 2 false true sleep 1;false
par_halt_on_error 2 false true parallel: This job failed:
par_halt_on_error 2 false true sleep 1;false
par_halt_on_error 2 false false 1
par_halt_on_error 2 false false 1
par_halt_on_error 2 false false parallel: This job failed:
par_halt_on_error 2 false false sleep 1;false
par_halt_on_error 2 false false parallel: This job failed:
par_halt_on_error 2 false false sleep 1;false
par_mem_leak ### test for mem leak par_mem_leak ### test for mem leak
par_mem_leak no mem leak detected par_mem_leak no mem leak detected
par_outside_file_handle_limit ### Test Force outside the file handle limit, 2009-02-17 Gave fork error
par_outside_file_handle_limit parallel: Warning: Only enough file handles to run 999 jobs in parallel.
par_outside_file_handle_limit parallel: Warning: Try running 'parallel -j0 -N 999 --pipe parallel -j0'
par_outside_file_handle_limit parallel: Warning: or increasing 'ulimit -n' (try: ulimit -n `ulimit -Hn`)
par_outside_file_handle_limit parallel: Warning: or increasing 'nofile' in /etc/security/limits.conf
par_outside_file_handle_limit parallel: Warning: or increasing /proc/sys/fs/file-max
par_outside_file_handle_limit Start
par_outside_file_handle_limit end
par_over_4GB ### Test if we can deal with output > 4 GB
par_over_4GB 46a318993dfc8e2afd71ff2bc6f605f1 -
par_retries_unreachable ### Test of --retries on unreachable host
par_retries_unreachable parallel: Warning: Could not figure out number of cpus on 4.3.2.1 (). Using 1.
par_retries_unreachable echo 1
par_retries_unreachable 1
par_retries_unreachable echo 2
par_retries_unreachable 2
par_test_build_and_install make[0]: Entering directory '~/privat/parallel' par_test_build_and_install make[0]: Entering directory '~/privat/parallel'
par_test_build_and_install make dist-gzip am__post_remove_distdir='@:' par_test_build_and_install make dist-gzip am__post_remove_distdir='@:'
par_test_build_and_install make[0]: Entering directory '~/privat/parallel' par_test_build_and_install make[0]: Entering directory '~/privat/parallel'
@ -1006,3 +703,306 @@ par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000'
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000' par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000'
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000' par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000'
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000' par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000'
par_compare_exit_codes ### compare the exit codes
par_compare_exit_codes directly from shells, shells called from parallel,
par_compare_exit_codes killed with different signals
par_compare_exit_codes sig=joblog_sig shell=parallel=joblog
par_compare_exit_codes par_compare_exit_codes
par_compare_exit_codes csh sig 2=0 130=1=1
par_compare_exit_codes posh sig 34=11 162=139=139
par_compare_exit_codes posh sig 35=11 163=139=139
par_compare_exit_codes posh sig 36=11 164=139=139
par_compare_exit_codes posh sig 37=11 165=139=139
par_compare_exit_codes posh sig 38=11 166=139=139
par_compare_exit_codes posh sig 39=11 167=139=139
par_compare_exit_codes posh sig 40=11 168=139=139
par_compare_exit_codes posh sig 41=11 169=139=139
par_compare_exit_codes posh sig 42=11 170=139=139
par_compare_exit_codes posh sig 43=11 171=139=139
par_compare_exit_codes posh sig 44=11 172=139=139
par_compare_exit_codes posh sig 45=11 173=139=139
par_compare_exit_codes posh sig 46=11 174=139=139
par_compare_exit_codes posh sig 47=11 175=139=139
par_compare_exit_codes posh sig 48=11 176=139=139
par_compare_exit_codes posh sig 49=11 177=139=139
par_compare_exit_codes posh sig 50=11 178=139=139
par_compare_exit_codes posh sig 51=11 179=139=139
par_compare_exit_codes posh sig 52=11 180=139=139
par_compare_exit_codes posh sig 53=11 181=139=139
par_compare_exit_codes posh sig 54=11 182=139=139
par_compare_exit_codes posh sig 55=11 183=139=139
par_compare_exit_codes posh sig 56=11 184=139=139
par_compare_exit_codes posh sig 57=11 185=139=139
par_compare_exit_codes posh sig 58=11 186=139=139
par_compare_exit_codes posh sig 59=11 187=139=139
par_compare_exit_codes posh sig 60=11 188=139=139
par_compare_exit_codes posh sig 61=11 189=139=139
par_compare_exit_codes posh sig 62=11 190=139=139
par_compare_exit_codes posh sig 63=11 191=139=139
par_compare_exit_codes posh sig 64=11 192=139=139
par_compare_exit_codes par_compare_exit_codes
par_compare_exit_codes tcsh sig 2=0 130=1=1
par_compare_exit_codes fdsh sig 2=0 0=2=2
par_compare_exit_codes fdsh exit 130=0 130=2=2
par_compare_exit_codes fdsh sig 9=0 137=2=2
par_compare_exit_codes fdsh exit 137=0 137=2=2
par_compare_exit_codes fdsh sig 10=0 0=2=2
par_compare_exit_codes fdsh exit 138=0 138=2=2
par_compare_exit_codes fdsh sig 11=0 0=2=2
par_compare_exit_codes fdsh exit 139=0 139=2=2
par_compare_exit_codes fdsh sig 12=0 0=2=2
par_compare_exit_codes fdsh exit 140=0 140=2=2
par_compare_exit_codes fdsh sig 15=0 0=2=2
par_compare_exit_codes fdsh exit 143=0 143=2=2
par_compare_exit_codes fdsh sig 16=0 144=2=2
par_compare_exit_codes fdsh exit 144=0 144=2=2
par_compare_exit_codes fdsh sig 17=0 0=2=2
par_compare_exit_codes fdsh exit 145=0 145=2=2
par_compare_exit_codes fdsh sig 18=0 0=2=2
par_compare_exit_codes fdsh exit 146=0 146=2=2
par_compare_exit_codes fdsh sig 20=0 0=2=2
par_compare_exit_codes fdsh exit 148=0 148=2=2
par_compare_exit_codes fdsh sig 21=0 0=2=2
par_compare_exit_codes fdsh exit 149=0 149=2=2
par_compare_exit_codes fdsh sig 22=0 0=2=2
par_compare_exit_codes fdsh exit 150=0 150=2=2
par_compare_exit_codes fdsh sig 23=0 0=2=2
par_compare_exit_codes fdsh exit 151=0 151=2=2
par_compare_exit_codes fdsh sig 26=0 154=2=2
par_compare_exit_codes fdsh exit 154=0 154=2=2
par_compare_exit_codes fdsh sig 27=0 155=2=2
par_compare_exit_codes fdsh exit 155=0 155=2=2
par_compare_exit_codes fdsh sig 29=0 157=2=2
par_compare_exit_codes fdsh exit 157=0 157=2=2
par_compare_exit_codes fdsh sig 30=0 158=2=2
par_compare_exit_codes fdsh exit 158=0 158=2=2
par_compare_exit_codes fdsh sig 32=0 0=2=2
par_compare_exit_codes fdsh exit 160=0 160=2=2
par_compare_exit_codes fdsh sig 33=0 0=2=2
par_compare_exit_codes fdsh exit 161=0 161=2=2
par_compare_exit_codes fdsh sig 35=0 163=2=2
par_compare_exit_codes fdsh exit 163=0 163=2=2
par_compare_exit_codes fdsh sig 36=0 164=2=2
par_compare_exit_codes fdsh exit 164=0 164=2=2
par_compare_exit_codes fdsh sig 37=0 165=2=2
par_compare_exit_codes fdsh exit 165=0 165=2=2
par_compare_exit_codes fdsh sig 38=0 166=2=2
par_compare_exit_codes fdsh exit 166=0 166=2=2
par_compare_exit_codes fdsh sig 39=0 167=2=2
par_compare_exit_codes fdsh exit 167=0 167=2=2
par_compare_exit_codes fdsh sig 40=0 168=2=2
par_compare_exit_codes fdsh exit 168=0 168=2=2
par_compare_exit_codes fdsh sig 41=0 169=2=2
par_compare_exit_codes fdsh exit 169=0 169=2=2
par_compare_exit_codes fdsh sig 42=0 170=2=2
par_compare_exit_codes fdsh exit 170=0 170=2=2
par_compare_exit_codes fdsh sig 43=0 171=2=2
par_compare_exit_codes fdsh exit 171=0 171=2=2
par_compare_exit_codes fdsh sig 45=0 173=2=2
par_compare_exit_codes fdsh exit 173=0 173=2=2
par_compare_exit_codes fdsh sig 46=0 174=2=2
par_compare_exit_codes fdsh exit 174=0 174=2=2
par_compare_exit_codes fdsh sig 47=0 175=2=2
par_compare_exit_codes fdsh exit 175=0 175=2=2
par_compare_exit_codes fdsh sig 48=0 176=2=2
par_compare_exit_codes fdsh exit 176=0 176=2=2
par_compare_exit_codes fdsh sig 49=0 177=2=2
par_compare_exit_codes fdsh exit 177=0 177=2=2
par_compare_exit_codes fdsh sig 50=0 178=2=2
par_compare_exit_codes fdsh exit 178=0 178=2=2
par_compare_exit_codes fdsh sig 51=0 179=2=2
par_compare_exit_codes fdsh exit 179=0 179=2=2
par_compare_exit_codes fdsh sig 52=0 180=2=2
par_compare_exit_codes fdsh exit 180=0 180=2=2
par_compare_exit_codes fdsh sig 53=0 181=2=2
par_compare_exit_codes fdsh exit 181=0 181=2=2
par_compare_exit_codes fdsh sig 55=0 183=2=2
par_compare_exit_codes fdsh exit 183=0 183=2=2
par_compare_exit_codes fdsh sig 56=0 184=2=2
par_compare_exit_codes fdsh exit 184=0 184=2=2
par_compare_exit_codes fdsh sig 57=0 185=2=2
par_compare_exit_codes fdsh exit 185=0 185=2=2
par_compare_exit_codes fdsh sig 58=0 186=2=2
par_compare_exit_codes fdsh exit 186=0 186=2=2
par_compare_exit_codes fdsh sig 59=0 187=2=2
par_compare_exit_codes fdsh exit 187=0 187=2=2
par_compare_exit_codes fdsh sig 60=0 188=2=2
par_compare_exit_codes fdsh exit 188=0 188=2=2
par_compare_exit_codes fdsh sig 61=0 189=2=2
par_compare_exit_codes fdsh exit 189=0 189=2=2
par_compare_exit_codes fdsh sig 62=0 190=2=2
par_compare_exit_codes fdsh exit 190=0 190=2=2
par_compare_exit_codes fdsh sig 63=0 191=2=2
par_compare_exit_codes fdsh exit 191=0 191=2=2
par_outside_file_handle_limit ### Test Force outside the file handle limit, 2009-02-17 Gave fork error
par_outside_file_handle_limit parallel: Warning: Only enough file handles to run 999 jobs in parallel.
par_outside_file_handle_limit parallel: Warning: Try running 'parallel -j0 -N 999 --pipe parallel -j0'
par_outside_file_handle_limit parallel: Warning: or increasing 'ulimit -n' (try: ulimit -n `ulimit -Hn`)
par_outside_file_handle_limit parallel: Warning: or increasing 'nofile' in /etc/security/limits.conf
par_outside_file_handle_limit parallel: Warning: or increasing /proc/sys/fs/file-max
par_outside_file_handle_limit Start
par_outside_file_handle_limit end
par_over_4GB ### Test if we can deal with output > 4 GB
par_over_4GB 46a318993dfc8e2afd71ff2bc6f605f1 -
par_retries_unreachable ### Test of --retries on unreachable host
par_retries_unreachable parallel: Warning: Could not figure out number of cpus on 4.3.2.1 (). Using 1.
par_retries_unreachable echo 1
par_retries_unreachable 1
par_retries_unreachable echo 2
par_retries_unreachable 2
par_halt_on_error -2 true true 0
par_halt_on_error -2 true true 0
par_halt_on_error -2 true true parallel: This job succeeded:
par_halt_on_error -2 true true sleep 1;true
par_halt_on_error -2 true true parallel: This job succeeded:
par_halt_on_error -2 true true sleep 1;true
par_halt_on_error -2 true false 0
par_halt_on_error -2 true false 0
par_halt_on_error -2 true false parallel: This job succeeded:
par_halt_on_error -2 true false sleep 1;true
par_halt_on_error -2 true false parallel: This job succeeded:
par_halt_on_error -2 true false sleep 1;true
par_halt_on_error -2 false true 0
par_halt_on_error -2 false true 0
par_halt_on_error -2 false true parallel: This job succeeded:
par_halt_on_error -2 false true sleep 2;true
par_halt_on_error -2 false true parallel: This job succeeded:
par_halt_on_error -2 false true sleep 2;true
par_halt_on_error -2 false false 3
par_halt_on_error -2 false false 4
par_halt_on_error -2 false false /bin/bash: line 1: non_exist: command not found
par_halt_on_error -1 true true 0
par_halt_on_error -1 true true 0
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 1;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 2;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 3;true
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 1;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 2;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 3;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 true true /bin/bash: line 1: non_exist: command not found
par_halt_on_error -1 true false 0
par_halt_on_error -1 true false 0
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 1;true
par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 3;true
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 1;true
par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 3;true
par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 true false /bin/bash: line 1: non_exist: command not found
par_halt_on_error -1 false true 0
par_halt_on_error -1 false true 0
par_halt_on_error -1 false true parallel: This job succeeded:
par_halt_on_error -1 false true sleep 2;true
par_halt_on_error -1 false true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 false true parallel: This job succeeded:
par_halt_on_error -1 false true sleep 2;true
par_halt_on_error -1 false true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 false true /bin/bash: line 1: non_exist: command not found
par_halt_on_error -1 false false 3
par_halt_on_error -1 false false 4
par_halt_on_error -1 false false /bin/bash: line 1: non_exist: command not found
par_halt_on_error 0 true true 0
par_halt_on_error 0 true true 1
par_halt_on_error 0 true true /bin/bash: line 1: non_exist: command not found
par_halt_on_error 0 true false 1
par_halt_on_error 0 true false 2
par_halt_on_error 0 true false /bin/bash: line 1: non_exist: command not found
par_halt_on_error 0 false true 2
par_halt_on_error 0 false true 3
par_halt_on_error 0 false true /bin/bash: line 1: non_exist: command not found
par_halt_on_error 0 false false 3
par_halt_on_error 0 false false 4
par_halt_on_error 0 false false /bin/bash: line 1: non_exist: command not found
par_halt_on_error 1 true true 0
par_halt_on_error 1 true true 127
par_halt_on_error 1 true true /bin/bash: line 1: non_exist: command not found
par_halt_on_error 1 true true parallel: This job failed:
par_halt_on_error 1 true true sleep 4;non_exist
par_halt_on_error 1 true false 1
par_halt_on_error 1 true false 1
par_halt_on_error 1 true false parallel: This job failed:
par_halt_on_error 1 true false sleep 2;false
par_halt_on_error 1 true false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 true false parallel: This job failed:
par_halt_on_error 1 true false sleep 2;false
par_halt_on_error 1 true false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 true false /bin/bash: line 1: non_exist: command not found
par_halt_on_error 1 true false parallel: This job failed:
par_halt_on_error 1 true false sleep 4;non_exist
par_halt_on_error 1 false true 1
par_halt_on_error 1 false true 1
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 1;false
par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 3;false
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 1;false
par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 3;false
par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 false true /bin/bash: line 1: non_exist: command not found
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 4;non_exist
par_halt_on_error 1 false false 1
par_halt_on_error 1 false false 1
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 1;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 2;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 3;false
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 1;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 2;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 3;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 false false /bin/bash: line 1: non_exist: command not found
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 4;non_exist
par_halt_on_error 2 true true 0
par_halt_on_error 2 true true 127
par_halt_on_error 2 true true /bin/bash: line 1: non_exist: command not found
par_halt_on_error 2 true true parallel: This job failed:
par_halt_on_error 2 true true sleep 4;non_exist
par_halt_on_error 2 true false 1
par_halt_on_error 2 true false 1
par_halt_on_error 2 true false parallel: This job failed:
par_halt_on_error 2 true false sleep 2;false
par_halt_on_error 2 true false parallel: This job failed:
par_halt_on_error 2 true false sleep 2;false
par_halt_on_error 2 false true 1
par_halt_on_error 2 false true 1
par_halt_on_error 2 false true parallel: This job failed:
par_halt_on_error 2 false true sleep 1;false
par_halt_on_error 2 false true parallel: This job failed:
par_halt_on_error 2 false true sleep 1;false
par_halt_on_error 2 false false 1
par_halt_on_error 2 false false 1
par_halt_on_error 2 false false parallel: This job failed:
par_halt_on_error 2 false false sleep 1;false
par_halt_on_error 2 false false parallel: This job failed:
par_halt_on_error 2 false false sleep 1;false