Editing and saving MARC record changes the TCN value

Bug #1859191 reported by Chris Sharp
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Evergreen
Fix Released
High
Unassigned
3.2
Won't Fix
Undecided
Unassigned
3.3
Fix Released
Undecided
Unassigned

Bug Description

In 3.4.1 and current master, with the "cat.bib.use_id_for_tcn" global flag disabled (to preserve OCLC TCNs after import, in our case), if you edit an existing record, the TCN value is changed to the record ID. Import works as expected. I have determined that the issue was introduced by the fix to bug 1693580, but I don't have insight as to specifically why the behavior is happening.

Evergreen 3.2.7+, 3.3.2+, and 3.4.
OpenSRF 3.2.0
PostgreSQL 9.6
Ubuntu 16.04

Revision history for this message
Chris Sharp (chrissharp123) wrote :

Setting status to High since this affects duplicate bib detection for sites with non-record-ID TCNs.

Changed in evergreen:
importance: Undecided → High
Galen Charlton (gmc)
Changed in evergreen:
status: New → Confirmed
tags: added: regression
Revision history for this message
Chris Sharp (chrissharp123) wrote :
Revision history for this message
Galen Charlton (gmc) wrote :

Bug 1693580 changed the method of saving edited bibs from a pcrud update to invoking open-ils.cat.biblio.record.marc.replace. However, open-ils.cat.biblio.record.marc.replace ultimately invokes logic to set the TCN to whatever is in the 001 field, which for a bib that's already in Evergreen is the bib ID.

I believe that open-ils.cat.biblio.record.marc.replace is only meant to be used when replacing a record with one taken from a Z39.50 source, as in that case the incoming bib will _not_ have the 001 already set to the Evergreen bib ID.

I think that the solution is to have the AngularJS MARC editor use open-ils.cat.biblio.record.xml.update instead. It looks like this should be done for the Angular staff client as well.

tags: added: angular angularjs
Changed in evergreen:
milestone: none → 3.4.2
Revision history for this message
Chris Sharp (chrissharp123) wrote :

Branch here:

https://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/csharp/lp1859191_fix_tcn_clobbering

I can confirm that the AngJS fix works, but someone else may need to test the Angular fix.

Bill Erickson (berick)
Changed in evergreen:
assignee: nobody → Bill Erickson (berick)
Revision history for this message
Bill Erickson (berick) wrote :

Sign-off branch pushed:

https://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/berick/lp1859191-marc-xml-update

I tested the Angular patch and confirmed it continues to update records as expected.

Note the patch will need to be cleared of the Angular of bits for back-porting to 3.2.

tags: added: signedoff
Changed in evergreen:
assignee: Bill Erickson (berick) → nobody
Changed in evergreen:
milestone: 3.4.2 → 3.4.3
Revision history for this message
Chris Sharp (chrissharp123) wrote :

Pushed to master, rel_3_3 and rel_3_4. Thanks, Bill!

Changed in evergreen:
status: Confirmed → Fix Committed
Changed in evergreen:
status: Fix Committed → Fix Released
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.