4f1877c2974ee37a984000e1add2c4c27da0de7b hiram Fri Oct 25 18:48:17 2024 -0700 the TMPDIR needs to be set locally on the para node not where the driver script is making the sub-script refs #34685 diff --git src/hg/utils/automation/doRepeatMasker.pl src/hg/utils/automation/doRepeatMasker.pl index 19586ad..3c1afdd 100755 --- src/hg/utils/automation/doRepeatMasker.pl +++ src/hg/utils/automation/doRepeatMasker.pl @@ -229,42 +229,57 @@ print $fh <<_EOF_ #!/bin/csh -ef set path = (/cluster/software/bin \$path) $RepeatMasker $RepeatMaskerEngine $repeatLib /dev/null _EOF_ ; close($fh); my $tmpDir = &HgAutomate::tmpDir(); # Cluster job script: $fh = &HgAutomate::mustOpen(">$runDir/RMRun.csh"); print $fh <<_EOF_ #!/bin/csh -ef +if ( -d "/data/tmp" ) then + setenv TMPDIR "/data/tmp" +else if ( -d "/scratch/tmp" ) then + setenv TMPDIR "/scratch/tmp" +else + set tmpSz = `df --output=avail -k /tmp | tail -1` + set shmSz = `df --output=avail -k /dev/shm | tail -1` + if ( "\${shmSz}" > "\${tmpSz}" ) then + mkdir -p /dev/shm/tmp + chmod 777 /dev/shm/tmp + setenv TMPDIR "/dev/shm/tmp" + else + setenv TMPDIR "/tmp" + endif +endif set path = (/cluster/software/bin \$path) set finalOut = \$1 set inLst = \$finalOut:r set inLft = \$inLst:r.lft set alignOut = \$finalOut:r.align set catOut = \$finalOut:r.cat # Use local disk for output, and move the final result to \$outPsl # when done, to minimize I/O. -set tmpDir = `mktemp -d -p $tmpDir doRepeatMasker.cluster.XXXXXX` +set tmpDir = `mktemp -d -p \$TMPDIR doRepeatMasker.cluster.XXXXXX` pushd \$tmpDir # Initialize local library $RepeatMasker $RepeatMaskerEngine $repeatLib /dev/null foreach spec (`cat \$inLst`) # Remove path and .2bit filename to get just the seq:start-end spec: set base = `echo \$spec | sed -r -e 's/^[^:]+://'` # RM has a limitation of the length of a sequence name # in the case of name too long, create a shorter name, then lift set nameLength = `echo \$base | wc -c` set shortName = `echo \$base | sed -e 's/>//;' | md5sum | cut -d' ' -f1` # If \$spec is the whole sequence, twoBitToFa removes the :start-end part, # which causes liftUp to barf later. So tweak the header back to # seq:start-end for liftUp's sake: