Bug 9050: Use safer adelete when deleting records from Zebra index
Previously we used the "delete" command in zebraidx, which fails when you try to delete a record that doesn't exist in the index. By changing to the "adelete" command, we can reduce the likelihood of a failed delete causing ghost records. A symptom of this problem is the warning message occasionally encountered when indexing from the zebraqueue, "[warn] cannot delete record above (seems new)." To test: 1) Add a recordDelete action for a record that does not exist to zebraqueue in MySQL: INSERT INTO zebraqueue (biblio_auth_number, operation, server) \ VALUES (999999999, 'recordDelete', 'biblioserver'); 2) Run `rebuild_zebra.pl -b -z -v [-x]`. 3) Note that you do not get the message "[warn] cannot delete record above (seems new)". Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Passed-QA-by: Paul Poulain <paul.poulain@biblibre.com> Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
This commit is contained in:
parent
bc9c8c4124
commit
deeeb068d9
1 changed files with 1 additions and 1 deletions
|
@ -251,7 +251,7 @@ sub index_records {
|
|||
}
|
||||
my $record_fmt = ($as_xml) ? 'marcxml' : 'iso2709' ;
|
||||
if ($process_zebraqueue) {
|
||||
do_indexing($record_type, 'delete', "$directory/del_$record_type", $reset, $noshadow, $record_fmt, $zebraidx_log_opt)
|
||||
do_indexing($record_type, 'adelete', "$directory/del_$record_type", $reset, $noshadow, $record_fmt, $zebraidx_log_opt)
|
||||
if %$records_deleted;
|
||||
do_indexing($record_type, 'update', "$directory/upd_$record_type", $reset, $noshadow, $record_fmt, $zebraidx_log_opt)
|
||||
if $num_records_exported;
|
||||
|
|
Loading…
Reference in a new issue