torture: Make kvm-remote.sh try multiple times to download tarball
authorPaul E. McKenney <paulmck@kernel.org>
Tue, 21 Dec 2021 04:24:25 +0000 (20:24 -0800)
committerPaul E. McKenney <paulmck@kernel.org>
Wed, 2 Feb 2022 01:25:41 +0000 (17:25 -0800)
This commit ups the retries for downloading the build-product tarball
to a given remote system from once to five times, the better to handle
transient network failures.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
tools/testing/selftests/rcutorture/bin/kvm-remote.sh

index e09b1bc787084f0d78d000c4997305a759d7b359..29b068a55b46667ea68f4cc4c12dc10410f2ac74 100755 (executable)
@@ -155,18 +155,23 @@ do
        echo Downloading tarball to $i `date` | tee -a "$oldrun/remote-log"
        cat $T/binres.tgz | ssh $i "cd /tmp; tar -xzf -"
        ret=$?
-       if test "$ret" -ne 0
-       then
-               echo Unable to download $T/binres.tgz to system $i, waiting and then retrying. | tee -a "$oldrun/remote-log"
+       tries=0
+       while test "$ret" -ne 0
+       do
+               echo Unable to download $T/binres.tgz to system $i, waiting and then retrying.  $tries prior retries. | tee -a "$oldrun/remote-log"
                sleep 60
                cat $T/binres.tgz | ssh $i "cd /tmp; tar -xzf -"
                ret=$?
                if test "$ret" -ne 0
                then
-                       echo Unable to download $T/binres.tgz to system $i, giving up. | tee -a "$oldrun/remote-log"
-                       exit 10
+                       if test "$tries" > 5
+                       then
+                               echo Unable to download $T/binres.tgz to system $i, giving up. | tee -a "$oldrun/remote-log"
+                               exit 10
+                       fi
                fi
-       fi
+               tries=$((tries+1))
+       done
 done
 
 # Function to check for presence of a file on the specified system.