[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [OSSTEST PATCH 4/7] Replace with-lock-ex with flock



with-lock-ex comes from a Debian-only, not installed by default
chiark-utils-bin package, while flock have equivalent functionality and
is part of standard util-linux package.

This is especially important for apt-get call under the lock
(TestSupport.pm:target_run_pkgmanager_install function), which could be
used to install chiark-utils-bin but will fail because with-lock-ex is
not there.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx>
---
 Osstest/Executive.pm    | 2 +-
 Osstest/TestSupport.pm  | 2 +-
 cr-daily-branch         | 2 +-
 cr-for-branches         | 6 +++---
 cr-try-bisect           | 2 +-
 cri-args-hostlists      | 4 ++--
 cri-getconfig           | 2 +-
 cri-lock-repos          | 4 ++--
 crontab                 | 2 +-
 crontab-cambridge       | 2 +-
 memoise                 | 2 +-
 ts-freebsd-host-install | 2 +-
 12 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/Osstest/Executive.pm b/Osstest/Executive.pm
index 0be27b6..8a272e7 100644
--- a/Osstest/Executive.pm
+++ b/Osstest/Executive.pm
@@ -130,7 +130,7 @@ sub grabrepolock_reexec {
     my $repos_locked= $ENV{OSSTEST_REPOS_LOCK_LOCKED};
     unless (defined $repos_locked && $repos_locked eq $repos_lock) {
         $ENV{OSSTEST_REPOS_LOCK_LOCKED}= $repos_lock;
-        exec "with-lock-ex","-w",$repos_lock, $0,@org_argv;
+        exec "flock","-w",$repos_lock, $0,@org_argv;
         die $!;
     }
 }
diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index 2910842..9515c9b 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -535,7 +535,7 @@ sub target_run_pkgmanager_install ($$;$$) {
         push @cmd, qw(lockf /var/run/osstest-pkg-lock pkg-static install);
     } else {
         push @cmd, qw(DEBIAN_PRIORITY=critical UCF_FORCE_CONFFOLD=y
-                      with-lock-ex -w /var/lock/osstest-apt apt-get);
+                      flock /var/lock/osstest-apt apt-get);
        push @cmd, qw(-f) if $force;
        push @cmd, qw(--no-install-recommends) if $norec;
        push @cmd, qw(-y install);
diff --git a/cr-daily-branch b/cr-daily-branch
index e1528d4..492eff0 100755
--- a/cr-daily-branch
+++ b/cr-daily-branch
@@ -475,7 +475,7 @@ if grep -xF "$NEW_REVISION" $branch.force-rev; then 
push=$OSSTEST_PUSH; fi
 if test -f $branch.block; then push=false; fi
 
 if test -e $mrof && test -e $tree_bisect && ! grep '^broken' $mrof; then
-       with-lock-ex -w $tree_bisect/$mrof.lock bash -xec "
+       flock $tree_bisect/$mrof.lock bash -xec "
                rm -f $tree_bisect/$mrof.in.new
                cp $mrof $tree_bisect/$mrof.in.new
                cd $tree_bisect
diff --git a/cr-for-branches b/cr-for-branches
index 2e9717e..93a713a 100755
--- a/cr-for-branches
+++ b/cr-for-branches
@@ -1,6 +1,6 @@
 #!/bin/bash
 # usage: cr-for-branches BRANCHESDIR WLEM "SCRIPT OPTIONS" ARGS...
-# will run   cd BRANCHESDIR && with-lock-ex WLEM SCRIPT OPTIONS BRANCH ARGS...
+# will run   cd BRANCHESDIR && flock WLEM SCRIPT OPTIONS BRANCH ARGS...
 
 # This is part of "osstest", an automated testing framework for Xen.
 # Copyright (C) 2009-2013 Citrix Inc.
@@ -39,7 +39,7 @@ if [ "x$fetchwlem" = x-q ]; then
        fetchwlem=-f
 fi
 
-with-lock-ex $fetchwlem data-tree-lock bash -ec '
+flock $fetchwlem data-tree-lock bash -ec '
        exec >>$LOGFILE
        date
         printf "%s\n" "$FOR_LOGFILE"
@@ -68,7 +68,7 @@ for branch in $BRANCHES; do
 
        export LOCK_ACQU_START=`date +%s`
 
-       with-lock-ex $wlem data-tree-lock bash -ec '
+       flock $wlem data-tree-lock bash -ec '
                m="$*"
 
                mkdir -p tmp
diff --git a/cr-try-bisect b/cr-try-bisect
index d613c34..afe4b86 100755
--- a/cr-try-bisect
+++ b/cr-try-bisect
@@ -31,7 +31,7 @@ startstamp=tmp/bisection-start-stamp
 
 anyflagfile=tmp/bisected-any.$branch
 
-with-lock-ex -w $mrof.lock bash -xec "
+flock $mrof.lock bash -xec "
        if test -e $mrof.in; then
                if test -e $mrof; then mv $mrof $mrof.old; fi
                 rm -f $anyflagfile
diff --git a/cri-args-hostlists b/cri-args-hostlists
index 7d23087..a502ac1 100644
--- a/cri-args-hostlists
+++ b/cri-args-hostlists
@@ -114,7 +114,7 @@ start_email () {
 
        globallockdir=`getconfig GlobalLockDir`
 
-       with-lock-ex -w $globallockdir/report-lock \
+       flock $globallockdir/report-lock \
          ./sg-report-job-history --html-dir=$job_html_dir --flight=$flight
 
        ./sg-report-flight --html-dir=$flight_html_dir/$flight/ \
@@ -122,7 +122,7 @@ start_email () {
                $sgr_args $flight
 
        mkdir -p $host_html_dir
-       with-lock-ex -w $globallockdir/report-lock \
+       flock $globallockdir/report-lock \
          ./sg-report-host-history --html-dir=$host_html_dir flight:$flight
 }
 
diff --git a/cri-getconfig b/cri-getconfig
index f8397c1..928f140 100644
--- a/cri-getconfig
+++ b/cri-getconfig
@@ -57,7 +57,7 @@ get_psql_cmd () {
        #  and set OSSTEST_PSQL_ONLY_DO to an integer
        if [ "x$OSSTEST_PSQL_ONLY_DO" != x ]; then
                local f=t.psql-counter
-               psql_counter=$( with-lock-ex -w $f.lock bash -ec '
+               psql_counter=$( flock $f.lock bash -ec '
                        psql_counter=$(cat '$f' || echo 0)
                        echo $(( $psql_counter + 1 )) >'$f'.tmp
                        mv -f '$f'.tmp '$f'
diff --git a/cri-lock-repos b/cri-lock-repos
index e7e0fa8..b3500f9 100644
--- a/cri-lock-repos
+++ b/cri-lock-repos
@@ -26,8 +26,8 @@ if [ "x$AP_FETCH_PLACEHOLDERS" = xy ] && ! [ -e $repos ]; then
        echo "AP_FETCH_PLACEHOLDERS, not locking" >&2
 elif [ "x$OSSTEST_REPOS_LOCK_LOCKED" != "x$repos_lock" ]; then
        OSSTEST_REPOS_LOCK_LOCKED="$repos_lock" \
-       exec with-lock-ex -w "$repos_lock" \
+       exec flock "$repos_lock" \
        "$0" "$@"
-       echo >&2 "arrgh, exec with-lock-ex failed $?"
+       echo >&2 "arrgh, exec flock failed $?"
        exit 1
 fi
diff --git a/crontab b/crontab
index e1e798a..9c2489f 100755
--- a/crontab
+++ b/crontab
@@ -16,6 +16,6 @@ MAILTO=osstest-admin@xxxxxxxxxxxxxx
 34             15      23 * *          cd testing.git && BRANCHES=examine      
        ./cr-for-branches branches -w "./cr-daily-branch --real"
 18             4       * * *           cd testing.git && BRANCHES='linux-3.0 
libvirt rumprun' ./cr-for-branches branches -w "./cr-daily-branch --real"
 6-59/15        *       * * *           cd testing.git && 
EXTRA_BRANCHES='xen-unstable-smoke linux-3.0 rumprun libvirt freebsd-master' 
./cr-for-branches bisects -w "./cr-try-bisect --real"
-#8-59/5                *       * * *           cd bisects/adhoc.git && 
with-lock-ex -q data-tree-lock bash -c "./cr-try-bisect-adhoc; exit $?"
+#8-59/5                *       * * *           cd bisects/adhoc.git && flock 
-n -E 0 data-tree-lock bash -c "./cr-try-bisect-adhoc; exit $?"
 22             8       * * *           cd testing.git && BRANCHES=maintjobs    
        ./cr-for-branches . -w ./cr-all-branch-statuses ''
 3              4       * * *           savelog -c28 
testing.git/tmp/cr-for-branches.log >/dev/null
diff --git a/crontab-cambridge b/crontab-cambridge
index 86f069a..8c0d346 100755
--- a/crontab-cambridge
+++ b/crontab-cambridge
@@ -21,6 +21,6 @@ MAILTO=ian.jackson@xxxxxxxxxx
 
 34             15      25 * *          cd testing.git && BRANCHES=examine      
        ./cr-for-branches branches -w "./cr-daily-branch --real"
 
-#8-59/5                *       * * *           cd bisects/adhoc.git && 
with-lock-ex -q data-tree-lock bash -c "./cr-try-bisect-adhoc; exit $?"
+#8-59/5                *       * * *           cd bisects/adhoc.git && flock 
-n -E 0 data-tree-lock bash -c "./cr-try-bisect-adhoc; exit $?"
 22             8       * * *           cd testing.git && BRANCHES=maintjobs    
        ./cr-for-branches . -w ./cr-all-branch-statuses ''
 3              4       * * *           savelog -c28 
testing.git/tmp/cr-for-branches.log >/dev/null
diff --git a/memoise b/memoise
index 73f15e6..9a6439d 100755
--- a/memoise
+++ b/memoise
@@ -43,7 +43,7 @@ id=${id%  -}
 f="$datadir/$id"
 
 if ! [ -f "$f.o" ]; then
-       with-lock-ex -w "$f.l" sh -ec '
+       flock "$f.l" sh -ec '
                f=$1; shift
                if [ -f "$f.o" ]; then exit 0; fi
                exec </dev/null >"$f.t"
diff --git a/ts-freebsd-host-install b/ts-freebsd-host-install
index 53daeef..ee1cede 100755
--- a/ts-freebsd-host-install
+++ b/ts-freebsd-host-install
@@ -105,7 +105,7 @@ ln $sharedpath $targetpath
 # Prune old images not used anymore
 find `dirname $sharedpath` -links 1 -ctime +7 -delete
 END
-    my @cmd = ( "with-lock-ex", "-w", "$tftp_freebsd/lock",
+    my @cmd = ( "flock", "$tftp_freebsd/lock",
                 "bash", "-exc", "$script", "x",
                 "$tftp_freebsd", "$image", "by-hash/$hash.img",
                 "$ho->{Tftp}{Path}/$pxeimg" );
-- 
git-series 0.9.1

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.