Editing and saving MARC record changes the TCN value

Bug #1859191 reported by Chris Sharp on 2020-01-10
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Evergreen
High
Unassigned
3.2
Undecided
Unassigned
3.3
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

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) on 2020-01-10
Changed in evergreen:
status: New → Confirmed
tags: added: regression
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
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) on 2020-01-10
Changed in evergreen:
assignee: nobody → Bill Erickson (berick)
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
Chris Sharp (chrissharp123) wrote :

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

Changed in evergreen:
status: Confirmed → Fix Committed
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers