From 271f6dd4345639c36331af024357eeebaf2b365c Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Thu, 15 Mar 2018 09:23:15 +1100 Subject: [PATCH] Fix mariadb sync These two jobs share the same volume, so use the common name as the argument, otherwise we fail to release. Also, avoid them running at the same time so one doesn't release the volume while the other is still updating it. Change-Id: Ied4feaec7fe5f0bfd459fa080b55b452e21416d4 --- modules/openstack_project/manifests/mariadb_mirror.pp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/openstack_project/manifests/mariadb_mirror.pp b/modules/openstack_project/manifests/mariadb_mirror.pp index 53501a8f32..2f1b18ac03 100644 --- a/modules/openstack_project/manifests/mariadb_mirror.pp +++ b/modules/openstack_project/manifests/mariadb_mirror.pp @@ -11,11 +11,15 @@ define openstack_project::mariadb_mirror ( releases => [ 'trusty', 'xenial' ], } + # NOTE(ianw) we have several versions, but they all share the same + # mirror.ubuntu-mariadb volume. Start them at offset times, but + # also share the lock so that one doesn't release the volume when + # the other is half-complete. cron { "reprepro ubuntu mariadb $name": user => $user, hour => '*/2', - minute => '0', - command => "flock -n /var/run/reprepro/ubuntu-mariadb-$name.lock reprepro-mirror-update /etc/reprepro/ubuntu-mariadb-$name mirror.ubuntu-mariadb-$name >>/var/log/reprepro/ubuntu-mariadb-$name-mirror.log 2>&1", + minute => fqdn_rand(30, $name), + command => "flock -w 3600 /var/run/reprepro/ubuntu-mariadb.lock reprepro-mirror-update /etc/reprepro/ubuntu-mariadb-$name mirror.ubuntu-mariadb >>/var/log/reprepro/ubuntu-mariadb-$name-mirror.log 2>&1", environment => 'PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin', } }