http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=11078 Bug ID: 11078 Summary: rebuild_zebra.pl can lose updates due to race condition during full rebuilds Change sponsored?: --- Product: Koha Version: 3.14 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P4 Component: Tools Assignee: dpk@randomnotes.org Reporter: dpk@randomnotes.org QA Contact: testopia@bugs.koha-community.org Depends on: 6435 The race condition exists whether you are doing incremental updates with a periodic cronjob or with the new daemon mode. Suppose you start a full rebuild at time T0 which will take until T20 to extract the records. Suppose also at T10, a biblio or auth is updated and processed through the zebraqueue by T15. In this situation the updated record in zebra will be overwritten when the full rebuild records are uploaded to zebra after T20. We prevent this by only allowing one rebuild_zebra per koha instance to be running at one time. This patch adds flock based locking for rebuild_zebra.pl on a per-instance basis. This prevents races between full rebuilds and background incremental updates from the zebraqueue table in the database. When running in daemon mode (see bug 6435), incremental updates will be skipped while a full rebuild is running, and resume afterwards. A full rebuild or other adhoc request will wait for any previous lock to clear. Tested by flocking the lock file while invoking rebuild_zebra.pl in various modes (daemon, adhoc zebraqueue task, and full rebuild) using flock program I will attach to bug. -- You are receiving this mail because: You are watching all bug changes.