[Koha-patches] [PATCH 7/7] Bug 11078 Add locking to rebuild_zebra QA Patch 5

Doug Kingston dpk at randomnotes.org
Mon Nov 18 06:34:19 CET 2013


Address concern on the initialization of $lockdir.  If lockdir is
undef, then it will default to /var/lock.  If lockdir is specified
in the config, it is expected to be a valid directory.  mkpath()
will fail if its not a valid path.
---
 misc/migration_tools/rebuild_zebra.pl |   11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/misc/migration_tools/rebuild_zebra.pl b/misc/migration_tools/rebuild_zebra.pl
index 74976c1..702377c 100755
--- a/misc/migration_tools/rebuild_zebra.pl
+++ b/misc/migration_tools/rebuild_zebra.pl
@@ -143,8 +143,7 @@ my ($biblioitemnumbertagfield,$biblioitemnumbertagsubfield) = &GetMarcFromKohaFi
 # We need to create our own lock directory which incorporates the database instance
 # we are indexing to facilitate multiple instances on the same machine.
 
-my $lockdir = C4::Context->config("lockdir");
-$lockdir = "/var/lock" if $lockdir == "";
+my $lockdir = C4::Context->config("lockdir") // "/var/lock";
 $lockdir .= ("/koha_rebuild_zebra_" . C4::Context->config("database"));
 mkpath($lockdir, 0, oct(755)) unless (-d $lockdir);
 my $lockfile = $lockdir . "/lock";
@@ -177,17 +176,17 @@ open my $LockFH, q{>}, $lockfile or die "$lockfile: $!";
 if ($daemon_mode) {
     while (1) {
         # For incremental updates, skip the update if the updates are locked
-        if (flock(LockFH, LOCK_EX|LOCK_NB)) {
+        if (flock($LockFH, LOCK_EX|LOCK_NB)) {
             do_one_pass() if ( zebraqueue_not_empty() );
-            flock(LockFH, LOCK_UN);
+            flock($LockFH, LOCK_UN);
         }
         sleep $daemon_sleep;
     }
 } else {
     # all one-off invocations, wait for the lock to free
-    flock(LockFH, LOCK_EX);
+    flock($LockFH, LOCK_EX);
     do_one_pass();
-    flock(LockFH, LOCK_UN);
+    flock($LockFH, LOCK_UN);
 }
 
 
-- 
1.7.9.5



More information about the Koha-patches mailing list