Hello Vaclav, It looks like this error starts when you hit the authority 
reindex at the end of the upgrade script.

It looks like the previous database updates have already been committed at that 
point, a new transaction runs for the authority reingest.  So you may be able 
to try running small batches of authority records to reingest at once, instead 
of trying to do them all at once.  That may help you narrow down the problem to 
being with a specific authority record vs being with the authority reindexing 
process as a whole.

If you pick out one existing authority record, and change the update command to 
something like.
UPDATE authority.record_entry SET id = id WHERE NOT DELETED and id=1234; -- 
where 1234= authority.record_entry.id that you want to target.

Then you can try reindexing just one record and see if that succeeds. 

Create a new script that just contains the Reingest authority record section of 
the script (lines 6806-6852), and modify that and run it against your database.

If one record succeeds, then it very well may be specific authority records 
that are causing the problems.

You could try narrowing it down by running the update on groups of authority 

Here is a query that builds a query string to update 50 authority records at a 

'UPDATE authority.record_entry SET id = id WHERE NOT DELETED AND id BETWEEN 
'||min||' and '||max||' ;'
from (
select min(id),max(id),chunkno
from (
, ((ROW_NUMBER() over (ORDER BY id) - 1) / 50)+1 as chunkNo --change 50 to how 
many records you want in a group
from authority.record_entry where not deleted and id>0
) x
group by 3
order by 1
) y

Also, if you echo the queries as they are executed it may be clearer which 
group the problem is in. (psql -a option).  Once you narrow it down to a group, 
you can change the script to run one update per record, to find the specific 

You may also be able to modify the authority.extract_headings[1] function to 
spit out some debugging info.  It looks to me like the " transformed_xml := 
oils_xslt_process(marc, xfrm.xslt);" line is where the error is coming up, when 
the authority marc data is passed to the oils_xslt_process, along with the 
config.xml_transform.xslt data for the index that is being processed.  Maybe 
add a try block and then on catching an error output the marc data?  (I'm not 
that familiar with stored procedures though, to know how to go about doing 
that.  Looks like it is by using an EXCEPTION clause?)

Josh Stompro - LARL IT Director

1 - 

-----Original Message-----
From: Open-ils-general 
[mailto:open-ils-general-boun...@list.georgialibraries.org] On Behalf Of Václav 
Sent: Friday, August 17, 2018 7:04 AM
To: Evergreen Discussion Group <open-ils-general@list.georgialibraries.org>
Subject: [OPEN-ILS-GENERAL] Problem with upgrade script 2.12.6-3.0.0 on line 

Hello Evergreeners,
we are just trying to update our last production Evergreen installation 
(from 2.12 to 3.1), two are done without any issues, but with last one 
we encountered following error during first update step (2.12.6-3.0.0)

psql:version-upgrade/2.12.6-3.0.0-upgrade-db.sql:6839: ERROR:  runtime error: 
file unknown-55cee649a7a0 element attribute
xsl:attribute: Cannot add attributes to an element if children have been 
already added to the element.
  at line 31.
CONTEXT:  PL/Perl function "oils_xslt_process"
PL/pgSQL function authority.extract_headings(text,integer[]) line 36 at 
PL/pgSQL function authority.simple_heading_set(text) line 77 at FOR over SELECT 
PL/pgSQL function authority.indexing_ingest_or_delete() line 46 at FOR over 
psql:version-upgrade/2.12.6-3.0.0-upgrade-db.sql:6841: ERROR:  current 
transaction is aborted, commands ignored until end of transaction block
psql:version-upgrade/2.12.6-3.0.0-upgrade-db.sql:6842: ERROR:  current 
transaction is aborted, commands ignored until end of transaction block
psql:version-upgrade/2.12.6-3.0.0-upgrade-db.sql:6843: ERROR:  current 
transaction is aborted, commands ignored until end of transaction block
psql:version-upgrade/2.12.6-3.0.0-upgrade-db.sql:6844: ERROR:  current 
transaction is aborted, commands ignored until end of transaction block
psql:version-upgrade/2.12.6-3.0.0-upgrade-db.sql:6850: ERROR:  current 
transaction is aborted, commands ignored until end of transaction block

I already try to check authority related scripts, but from my point of 
view, error is somewhere in our authority data in DB.

Anybody else having the same experience? Do you have any idea how to 
find out what is causing the error?

Do you have any tip, how to ad some debugging code into standard code, 
what will help us with finding probably failed data?

Thanks for help and all recommendations

Best regards

Vaclav Jansa

Reply via email to