Linking to an authority record with no Subj and no controlset considered harmful

Bug #837522 reported by Mike Rylander
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Evergreen
Status tracked in Main
2.1
Invalid
Undecided
Unassigned
Main
Fix Released
Critical
Lebbeous Fogle-Weekley

Bug Description

If a non-LoC authority record lacks a control_set (often because it has no thesaurus) it will generate a dangerous overlay template.

Solution proposed (patch coming soon): In that situation, we will look for a control set that defines a 1xx authority field that the record has, as a best guess, or failing that, generate a no-op overlay.

Tags: pullrequest
Revision history for this message
Mike Rylander (mrylander) wrote :

I've pushed a branch to address this issue here: http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/collab/miker/lp837522

This is a data-loss causing issue, but only valid for master.

tags: added: pullrequest
Revision history for this message
Mike Rylander (mrylander) wrote :

For those wanting to look into this, a short test plan is:

  * Create a new ACS with, say, 'A' for a thesaurus code
  * Restart services (too-aggressive caching somewhere -- still hunting that)
  * Create+Edit to make an authority record for that ACS (don't give it a proper Subj)
  * Link a bib to this authority record
  * Edit the authority record
  * BOOM -- bib is replaced by an empty authority overlay template because
    a) the record has no mapped thesaurus, meaning
    b) there's not auto-linked control_set for the record, which means
    c) an empty Replace rule is be generated -- which is broken, and then means
    d) the overlay is seen as a replacement, not a rule-based update

The branch makes a best-guess at the control_set by looking at (what LoC and, in practice, everyone else, considers) the main entry (a field in the 100-199 range) and finds an ACS that uses that authority field. It's not perfect (they can overlap), but the recommendation in the documentation is to avoid overlapping authority fields, so it's GoodEnough(tm).

If we can't find an ACS this way, we instead return a safe no-op overlay that says "replace 901c" ... which is then overwritten by the update trigger.

Revision history for this message
Lebbeous Fogle-Weekley (lebbeous) wrote :

Got it. Tested and pushed to master.

Revision history for this message
Lebbeous Fogle-Weekley (lebbeous) wrote :

Whoops, forgot numbering and all that. Followup commit coming...

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.