ORA-7445 [LTXVMUNION] OR INCORRECT RESULT FROM EXTRACT WITH '|' IN XPATH (Doc ID 1072966.1)

Last updated on MAY 04, 2010

Applies to:

Oracle Server - Enterprise Edition - Version: 10.2.0.4 to 11.2.0.1 - Release: 10.2 to 11.2
Information in this document applies to any platform.

Symptoms

In a 64-bit db, running an extract with a '|' in the XPATH results to an ORA-7445 [ltxvmUnion].

SQL> select
2 xmltype.createxml(
3 '<EVENT xmlns="http://xmlns.oracle.com/xdb/EA">
4 <TPS xmlns="">50</TPS>
5 <SEND_DATE xmlns="">2010-03-01T12:01:50.000+01:00</SEND_DATE>
6 <RECEIVE_DATE xmlns=""/>
7 <CORR_ID xmlns=""/>
8 <PAR_LIST xmlns="">
9 <PAR_LIST_ITEM>
10 <NAME>USER_ID</NAME>
11 <VALUE>1290</VALUE>
12 </PAR_LIST_ITEM>
13 <PAR_LIST_ITEM>
14 <NAME>RESP_ID</NAME>
15 <VALUE>50912</VALUE>
16 </PAR_LIST_ITEM>
17 </PAR_LIST>
18 </EVENT>').extract(
19 '//PAR_LIST_ITEM[NAME="CONTACT_ID"|NAME="ACCOUNT_ROLE_ID"]/VALUE/text()').getStringvAL()
20 AS TEST
21 FROM dual;
'<EVENT xmlns="http://xmlns.oracle.com/xdb/EA">
*
ERROR at line 3:
ORA-03113: end-of-file on communication channel

Alert.log shows:
Thu Mar 4 18:05:09 2010
Errors in file
/grdbms/64bit/app/oracle/admin/s122Sa/udump/s122sa_ora_7593.trc:
ORA-07445: exception encountered: core dump [ltxvmUnion()+108] [SIGSEGV] [Address not mapped to object] [0x00007FFF0] [] []

Call stack is:
ssexhd <- ltxvmUnion <- ltxvmrun <- ltxvmEvaluateXPath <- XmlXvmEvaluateXPath
<- qmxXvmEvaluateXPath <- qmxXvmExtractNodese <- qmxXvmExtractNode_ <- qmxtgExtract
<- qmxtkExtract2 <- qmxtkExtract <- spefcpfa <- spefmccallstd <- pextproc


In a 32-bit db, when the query is run immediately after connecting, it returns an incorrect result. Running it the 2nd time from the same session returns the correct result, which, in this case, is NULL:

SQL> select
2 xmltype.createxml(
3 '<EVENT xmlns="http://xmlns.oracle.com/xdb/EA">
4 <TPS xmlns="">50</TPS>
..
19 '//PAR_LIST_ITEM[NAME="CONTACT_ID"|NAME="ACCOUNT_ROLE_ID"]/VALUE/text()').getStringvAL()
20 AS TEST
21 FROM dual;

TEST
---------------------
1290

SQL> REM Running the same query the 2nd time on x86-32 will generate
SQL> REM the right output
SQL> select
2 xmltype.createxml(
3 '<EVENT xmlns="http://xmlns.oracle.com/xdb/EA">
4 <TPS xmlns="">50</TPS>
..
19 '//PAR_LIST_ITEM[NAME="CONTACT_ID"|NAME="ACCOUNT_ROLE_ID"]/VALUE/text()').getStringvAL()
20 AS TEST
21 FROM dual;

TEST
---------------------


Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms