]> git.koha-community.org Git - koha.git/commit
Bug 11078: Add locking to rebuild_zebra
authorDoug Kingston <dpk@randomnotes.org>
Wed, 19 Feb 2014 06:56:58 +0000 (22:56 -0800)
committerFridolin Somers <fridolin.somers@biblibre.com>
Tue, 27 May 2014 10:41:28 +0000 (12:41 +0200)
commit7a2d830637e673e7ff9a82613d9f4119f1ed4c34
treef57e9c101ce3e75e02718260e9066d35875abe3a
parente81749c3b327f4429548f7426a084f3ec5b140ef
Bug 11078: Add locking to rebuild_zebra

This patch adds locking to rebuild_zebra.pl to ensure that simultaneous
changes are prevented (as one is likely to overwrite the other).
Incremental updates in daemon mode will skipped if the lock is busy
and they will be picked up on the next pass.  Non-daemon mode
invocations will also exit immediately if they cannot get the lock
unless the new flag -wait-for-lock is specified, in which case they
will wait until the get the lock and then proceed.

Supporting changes made to Makefile.PL and templates for the new
locking directory (paralleling the other zebra lock directories).
We stash the zebra_lockdir in koha-conf.xml so rebuild_zebra.pl
can find it.

To address earlier QA concerns we:
1. added code to check if flock is available and ignore locking if
it's missing (from M. de Rooy)

2. changed default for adhoc invocations to abort if they cannot
obtain the lock.  Added option -wait-for-lock if the user prefers
to wait until the lock is free, and then continue processing.

3. added missing entry to t/db_dependent/zebra_config.pl

4. added a fallback locking directory of /tmp

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Doug merged the original patch with the QA changes.
Just for the record, noting here that the original patch was tested
extensively too by Martin Renvoize.
I have added a followup for some exceptional cases.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit 88e7faf8600b64884649f8c02104bf848df37a9b)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Makefile.PL
debian/templates/koha-conf-site.xml.in
etc/koha-conf.xml
misc/bin/koha-zebra-ctl.sh
misc/migration_tools/rebuild_zebra.pl
skel/var/lock/koha/zebradb/rebuild/README [new file with mode: 0644]
t/db_dependent/zebra_config.pl