7e3b5a8fb40226e35e2312321ac38f035e858e90 hiram Tue Aug 11 08:26:14 2026 -0700 running the asmAlias table update in otto cron job refs #31811 diff --git src/hg/utils/otto/genArk/asmAlias/runUpdate.sh src/hg/utils/otto/genArk/asmAlias/runUpdate.sh new file mode 100755 index 00000000000..ad9a6232021 --- /dev/null +++ src/hg/utils/otto/genArk/asmAlias/runUpdate.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +# fail on any failed command +set -eEu -o pipefail + +export TOP="/hive/data/inside/GenArk/asmAlias" + +cd "${TOP}" + +eval "$(date "+YMD=%F Y=%Y M=%m DS=%F_%T")" +export YMD Y M DS + +export db="hgcentraltest" +export logDir="${TOP}/log/${Y}/${M}" +mkdir -p "${logDir}" +export logFile="${logDir}/${DS}.txt" +export prevAliasTsv="${logDir}/${YMD}.asmAlias.tsv.gz" +export updateTsv="${logDir}/update.${YMD}.tsv" + +# do not overwrite this copy if it was already done today +if [ ! -s "${prevAliasTsv}" ]; then + hgsql -N -e 'select * from asmAlias;' "${db}" \ + | gzip -c > "${prevAliasTsv}" +fi + +printf "### cwd: %s\n" "`pwd -P`" >> "${logFile}" +printf "### logFile: log/${Y}/${M}/${DS}.txt.gz\n" >> "${logFile}" +printf "####### running the update command:\n" >> "${logFile}" +printf "time (./asmAliasUpdate.py -o update.${YMD}.tsv > update.${DS}.out 2> update.${DS}.err) >> logFile\n" >> "${logFile}" + +time (./asmAliasUpdate.py -o "${updateTsv}" > ${logDir}/update.${DS}.out 2> ${logDir}/update.${DS}.err) >> "${logFile}" 2>&1 + +# watch for any new types of errors +unexpected=$(egrep -v "OBSOLETE|UPDATE|NEW ALIAS|NOTE" "${logDir}/update.${DS}.err" \ + | egrep -v "ing to browser=[a-z]" \ + | egrep -v "are not case-independent|skipping" \ + | grep ERROR || true) +if [ -n "${unexpected}" ]; then + printf '%s\n' "${unexpected}" 1>&2 + echo "unexpected ERROR lines found, aborting before load" 1>&2 + exit 1 +fi + +hgLoadSqlTab "${db}" asmAliasUpdate ${TOP}/asmAlias.sql \ + "${updateTsv}" >> "${logFile}" 2>&1 + +gzip -f "${updateTsv}" +hgsql "${db}" -e 'DROP TABLE IF EXISTS asmAliasPrev;' >> "${logFile}" 2>&1 +hgsql "${db}" -e "RENAME TABLE asmAlias TO asmAliasPrev, asmAliasUpdate TO asmAlias;" >> "${logFile}" 2>&1 + +printf "previous asmAlias size:\n" >> "${logFile}" 2>&1 +hgsql -t "${db}" -e 'select count(*) from asmAliasPrev;' >> "${logFile}" 2>&1 +printf "updated asmAlias size:\n" >> "${logFile}" 2>&1 +hgsql -t "${db}" -e 'select count(*) from asmAlias;' >> "${logFile}" 2>&1 +gzip -f "${logFile}" "${logDir}/update.${DS}.out" "${logDir}/update.${DS}.err" + +printf "##############################################\n" 1>&2 +printf "### asmAlias update change log ${DS}\n" 1>&2 +zcat "${logFile}.gz" 1>&2 +printf "##############################################\n" 1>&2