From 573e62343cadeb92a3513f4c6568eb7357ef30d5 Mon Sep 17 00:00:00 2001 From: Emil Obreshkov <emil.obreshkov@cern.ch> Date: Wed, 28 Mar 2018 18:05:10 +0000 Subject: [PATCH] Merge branch 'copy-rpm-eos-retry' into 'master' RPM to EOS copy: 5 retries for mkdir and cp before counting failure as an error See merge request atlas/athena!10083 (cherry picked from commit e74ddf61fc3228ba30ea81a96b6bd392da187e9e [formerly 492b0b9a15e082eaa45254b2a326b1f92c2e3133]) c1147375 RPM to EOS copy: 5 retries for mkdir and cp before counting failure as an error 356c6297 RPM to EOS copy: 6 retries (>10m tot) for mkdir and cp before counting failure as an error Former-commit-id: 85302a414ffc07d1267541d7827a86723987f347 --- Build/AtlasBuildScripts/copy_rpm_eos.sh | 20 +++++++++++++++++-- .../CscCalib/CscCalibAlgs/cmt/cdb.log | 0 2 files changed, 18 insertions(+), 2 deletions(-) mode change 100644 => 100755 MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/cmt/cdb.log diff --git a/Build/AtlasBuildScripts/copy_rpm_eos.sh b/Build/AtlasBuildScripts/copy_rpm_eos.sh index 38745d8d0eb7..9253ac2ef520 100755 --- a/Build/AtlasBuildScripts/copy_rpm_eos.sh +++ b/Build/AtlasBuildScripts/copy_rpm_eos.sh @@ -65,9 +65,25 @@ echo "=====================================================" DESTDIR=${DESTDIR}/${BRANCH}/${ARCH}/${DDAY} +_retry_() { + local cmd="$*" dt=16 retr=0 + while ! $cmd ; do + if test $retr -ge 6 ; then + echo "ERROR: 6 retries of $cmd FAILED ... " >&2 + return 1 + fi + echo "WARNING: $cmd failed, waiting $dt sec ..." + sleep ${dt}s + dt=`expr $dt + $dt` + retr=`expr $retr + 1` + done + return 0 +} + + if [ ! -d ${DESTDIR} ] ; then echo "mkdir -p ${DESTDIR}" - mkdir -p ${DESTDIR} + _retry_ mkdir -p ${DESTDIR} if [ ! -d ${DESTDIR} ] ; then ((ERROR_COUNT++)) ; fi #avoid false positive eos error if the directory was actually created fi @@ -79,7 +95,7 @@ if [ "${#arr_rpm[@]}" -le 0 ]; then for ele in "${arr_rpm[@]}" do echo "Info: copying $ele to ${DESTDIR}" - cp -a $ele ${DESTDIR} || ((ERROR_COUNT++)) + _retry_ cp -a $ele ${DESTDIR} || ((ERROR_COUNT++)) done fi echo "=====================================================" diff --git a/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/cmt/cdb.log b/MuonSpectrometer/MuonCalib/CscCalib/CscCalibAlgs/cmt/cdb.log old mode 100644 new mode 100755 -- GitLab