From 5b6fd3ae353dd65e57ab138d7dca640d1c88d32c Mon Sep 17 00:00:00 2001 From: Scott Moser Date: Mon, 23 Oct 2017 14:11:38 -0400 Subject: tools: make yum package installation more reliable During continuous integration tests, we're seeing quite a lot of unreliablity when running 'yum install'. The change here is to move to re-trying a run of 'yum install --downloadonly' for 10 times or until it succeeds. Then afterwards, running yum install from the cache. This seems safer in general than just re-trying an install operation, since we are specifically affected by the download phase failing. Also present are some flake8 fixes to tools/read-dependencies. --- tools/run-centos | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'tools/run-centos') diff --git a/tools/run-centos b/tools/run-centos index e87b2025..d58ef3e8 100755 --- a/tools/run-centos +++ b/tools/run-centos @@ -123,7 +123,22 @@ prep() { return 0 fi error "Installing prep packages: ${needed}" - yum install --assumeyes ${needed} + set -- $needed + local n max r + n=0; max=10; + bcmd="yum install --downloadonly --assumeyes --setopt=keepcache=1" + while n=$(($n+1)); do + error ":: running $bcmd $* [$n/$max]" + $bcmd "$@" + r=$? + [ $r -eq 0 ] && break + [ $n -ge $max ] && { error "gave up on $bcmd"; exit $r; } + nap=$(($n*5)) + error ":: failed [$r] ($n/$max). sleeping $nap." + sleep $nap + done + error ":: running yum install --cacheonly --assumeyes $*" + yum install --cacheonly --assumeyes "$@" } start_container() { -- cgit v1.2.3