Add a 2 minute lock timeout to the first invocation of apt. This is
authorWard Vandewege <ward@curii.com>
Thu, 28 Apr 2022 15:15:44 +0000 (11:15 -0400)
committerWard Vandewege <ward@curii.com>
Thu, 28 Apr 2022 15:15:44 +0000 (11:15 -0400)
supported from apt 1.9.1 (i.e Debian 11, ubuntu 20.04 and up). It avoids
race conditions, e.g. caused by cloud-init running apt on a node that
has just booted.

No issue #

Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <ward@curii.com>

tools/salt-install/provision.sh

index c9e535fad2dab3c105a8b6c627ec190d80840920..be1506c620e7aec8dbc5e58910c982aecd5b6f14 100755 (executable)
@@ -302,7 +302,10 @@ else
       yum install -y  curl git jq
       ;;
     "debian"|"ubuntu")
-      DEBIAN_FRONTEND=noninteractive apt update
+      # Wait 2 minutes for any apt locks to clear
+      # This option is supported from apt 1.9.1 and ignored in older apt versions.
+      # Cf. https://blog.sinjakli.co.uk/2021/10/25/waiting-for-apt-locks-without-the-hacky-bash-scripts/
+      DEBIAN_FRONTEND=noninteractive apt -o DPkg::Lock::Timeout=120 update
       DEBIAN_FRONTEND=noninteractive apt install -y curl git jq
       ;;
   esac