21521: Wrap aptly commands in flock 21521-aptly-flock
authorBrett Smith <brett.smith@curii.com>
Fri, 26 Apr 2024 20:47:50 +0000 (16:47 -0400)
committerBrett Smith <brett.smith@curii.com>
Fri, 26 Apr 2024 20:47:50 +0000 (16:47 -0400)
See comments for rationale.

Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>

jenkins/run_upload_packages.py

index 3a51e408f8aeb5fad78d230b187db549f1509c7e..216b56b14958d10773ec74ad0b0f566b8beceb86 100755 (executable)
@@ -208,6 +208,12 @@ class DebianPackageSuite(DistroPackageSuite):
 set -e
 cd "$1"; shift
 DISTNAME=$1; shift
+# aptly implements its own locking, but its wait strategy as of April 2024 is
+# not patient enough to accommodate multiple simultaneous uploads.
+APTLY_LOCK="${XDG_RUNTIME_DIR:-/tmp}/aptly-upload.lock"
+aptly() {
+  flock --wait=300 "$APTLY_LOCK" aptly "$@"
+}
 for package in "$@"; do
   if aptly repo search "$DISTNAME" "${package%.deb}" >/dev/null 2>&1; then
     echo "Not adding $package, it is already present in repo $DISTNAME"