diff options
Diffstat (limited to 'vest')
| -rwxr-xr-x | vest/dist-vest.pl | 12 | ||||
| -rwxr-xr-x | vest/parallelize.pl | 9 | 
2 files changed, 12 insertions, 9 deletions
diff --git a/vest/dist-vest.pl b/vest/dist-vest.pl index 973a29ef..d17d7de1 100755 --- a/vest/dist-vest.pl +++ b/vest/dist-vest.pl @@ -194,7 +194,6 @@ sub modbin {          my $src=$$_;          $$_="$bindir/".basename($src);          check_call("cp -p $src $$_"); -        die "cp $src $$_ failed: $!" unless $? == 0;      }  }  sub dirsize { @@ -372,13 +371,12 @@ while (1){  				if ($first_shard) { print STDERR "$script\n"; $first_shard=0; }  				$nmappers++; -				my $qcmd = "QSUB_CMD -N $client_name -o /dev/null -e $logdir/$client_name.ER $script_file"; +				my $qcmd = "$QSUB_CMD -N $client_name -o /dev/null -e $logdir/$client_name.ER $script_file";  				my $jobid = check_output("$qcmd"); -				die "qsub failed: $!\nCMD was: $qcmd" unless $? == 0;  				chomp $jobid;  				$jobid =~ s/^(\d+)(.*?)$/\1/g;  				$jobid =~ s/^Your job (\d+) .*$/\1/; -		 	 	push(@cleanupcmds, check_output("qdel $jobid 2> /dev/null")); +		 	 	push(@cleanupcmds, "qdel $jobid 2> /dev/null");  				print STDERR " $jobid";  				if ($joblist == "") { $joblist = $jobid; }  				else {$joblist = $joblist . "\|" . $jobid; } @@ -398,7 +396,7 @@ while (1){  			print STDERR "Waiting for mappers to complete...\n";  			while ($nmappers > 0) {  			  sleep 5; -			  my @livejobs = grep(/$joblist/, split(/\n/, check_output("qstat | grep -v ' C '"))); +			  my @livejobs = grep(/$joblist/, split(/\n/, unchecked_output("qstat | grep -v ' C '")));  			  $nmappers = scalar @livejobs;  			}  			print STDERR "All mappers complete.\n"; @@ -575,7 +573,11 @@ sub enseg {  	while (my $line=<SRC>){  		chomp $line;  		if ($line =~ /^\s*<seg/i) { +		    if($line =~ /id="[0-9]+"/) {  			print NEWSRC "$line\n"; +		    } else { +			die "When using segments with pre-generated <seg> tags, you must include a zero-based id attribute"; +		    }  		} else {  			print NEWSRC "<seg id=\"$i\">$line</seg>\n";  		} diff --git a/vest/parallelize.pl b/vest/parallelize.pl index 47b77c79..b4783f91 100755 --- a/vest/parallelize.pl +++ b/vest/parallelize.pl @@ -82,7 +82,7 @@ sub preview_files {      my @f=grep { ! ($skipempty && -z $_) } @$l;      my $fn=join(' ',map {escape_shell($_)} @f);      my $cmd="tail -n $n $fn"; -    check_output("$cmd").($footer?"\nNONEMPTY FILES:\n$fn\n":""); +    unchecked_output("$cmd").($footer?"\nNONEMPTY FILES:\n$fn\n":"");  }  sub prefix_dirname($) {      #like `dirname but if ends in / then return the whole thing @@ -283,7 +283,8 @@ sub numof_live_jobs {    if ($use_fork) {      die "not implemented";    } else { -    my @livejobs = grep(/$joblist/, split(/\n/, check_output("qstat"))); +    # We can probably continue decoding if the qstat error is only temporary +    my @livejobs = grep(/$joblist/, split(/\n/, unchecked_output("qstat")));      return ($#livejobs + 1);    }  } @@ -323,7 +324,7 @@ sub launch_job {              }        if ($joblist == "") { $joblist = $jobid; }        else {$joblist = $joblist . "\|" . $jobid; } -            my $cleanfn=check_output("qdel $jobid 2> /dev/null"); +      my $cleanfn="qdel $jobid 2> /dev/null";        push(@cleanup_cmds, $cleanfn);      }      close QOUT; @@ -346,7 +347,7 @@ sub launch_job_fork {      my ($fh, $scr_name) = get_temp_script();      print $fh $script;      close $fh; -    my $todo = "/bin/sh $scr_name 1> $outfile 2> $errorfile"; +    my $todo = "/bin/bash -xeo pipefail $scr_name 1> $outfile 2> $errorfile";      print STDERR "EXEC: $todo\n";      my $out = check_output("$todo");      print STDERR "RES: $out\n";  | 
