ORA-29516: Aurora assertion failure

User 4140faeba5

24-02-2006 09:44:50

Hi.


JCHEM_CORE_PKG.GETENVIRONMENT()


--------------------------------------------------------------------------------


Oracle Database 10g Release 10.2.0.1.0 - 64bit Production


PL/SQL Release 10.2.0.1.0 - Production


CORE 10.2.0.1.0 Production


TNS for Linux: Version 10.2.0.1.0 - Production


NLSRTL Version 10.2.0.1.0 - Production


NLSRTL Version 10.2.0.1.0 - Production


JChem version in the database: 3.1.5


JChem version in the Tomcat server: 3.1.5


java.vm.version: 1.5.0_06-b05


java.vm.vendor: Sun Microsystems Inc.


Apache Tomcat/5.5.15





JCHEM_CORE_PKG.GETENVIRONMENT()


--------------------------------------------------------------------------------


Major JDBC version in Tomcat: 10


Minor JDBC version in Tomcat: 2





I'm getting the following error when I try to load structures





"DBD::Oracle::st execute failed: ORA-29516: Aurora assertion failure: Assertion failure at joeintp.c:373


Interpreter hit null Java opcode.


ORA-06512: at "JCHEM.JCHEM_BLOB_PKG", line 112


ORA-06512: at "JCHEM.JC_INSERTB", line 6


ORA-06512: at "BVTSCREEN.INSERT_STRUCTURE_BLOB", line 13


ORA-06512: at line 2 (DBD ERROR: OCIStmtExecute) [for Statement "


begin insert_structure_blob(3221091"





My procedure looks like this


"CREATE OR REPLACE PROCEDURE insert_structure_blob(v_compound_id VARCHAR2,v_structure CLOB) AS


cdida cd_id_array;


v_size BINARY_INTEGER :=0;


buffer VARCHAR2(32000);


buffer2 RAW(32000);


v_mol VARCHAR2(32767) :='';


v_table VARCHAR2(50) := 'JCSCREENMOL_MOLTABLE';


BEGIN


v_size := dbms_lob.getlength(v_structure);


v_mol := dbms_lob.SUBSTR(v_structure,v_size,1);


dbms_lob.READ(v_structure,v_size,1,buffer);


buffer2 := utl_raw.cast_to_raw(buffer);


cdida := jc_insertb(buffer2,v_table,'jchem.jchemproperties','false','false','flags:c');





EXECUTE IMMEDIATE 'update jcscreenmol_moltable set dummy_id=''' || v_compound_id || ''' where cd_id = ' || TO_CHAR(cdida(1));


-- Now we must use a bind variable becuase the molfile can be over 4000 characters


EXECUTE IMMEDIATE 'update jcscreenmol_moltable set molfile=:x where cd_id = ' || TO_CHAR(cdida(1)) || '' USING v_mol;


END;


/


"





If I retry to load the same molecule is works, so it has nothing to do with the molecule.





/Mikael

ChemAxon aa7c50abf8

24-02-2006 09:56:54

Hi,





This is a known issue (most probably an Oracle bug). Please, see


http://www.chemaxon.com/jchem/doc/guide/cartridge/index.html#issues . It has been reproduced with 64-bit Oracle 10gR2 installations on both Windows and Linux. There is currently no known solution/workaround. 64-bit Oracle 10gR1 seems not to have this problem.





Peter

User 4140faeba5

24-02-2006 10:17:01

Hi.


But those refer to functions that returns a blob,


as far as I know jc_insertb does not return a blob, or am I wrong ?


/Mikael

ChemAxon aa7c50abf8

24-02-2006 11:07:43

Hi,





Based on the nature of the error messages in all referred cases, I am strongly convinced that these errors could be traced back to the same low level problem in Oracle's 64-bit Java runtime implementation (in the 10gR2 versions). I do not think it is relevant in exactly which context they surface. While on Linux x86_64 the Aurora assert error typically appears during domain index scan, on Windows Server 2003 x64 they consistently appear already during the creation of the domain index. Now, you provided a new occurrence of this problem (in jc_insert).





As you might know, assertions are typically included in C/C++ code to detect internal bugs/inconsistencies in the implementation (and to stop programs from running in an inconsistent state). Assertions are not regular error messages meant for users (in this case application programmers like me or you) to interpret and act accordingly. This kind of error messages are for Oracle engineers to detect what is the problem in their implementation or in the environment it is running. (Just for clarification: the C source code referred to in these Aurora error messages is Oracle's implementation not ours.) Unfortunately, when one of our customers raised a TAR about this problem, the Oracle tech support simply took the comfortable approach of having the customer run some standard checks on the JVM (and these checks reported everything is OK) without looking seriously at the problem itself.





Still, in case you have any idea that you think can lead us to a workaround, I would be glad to hear it.





Thank you.





Peter

User 4140faeba5

24-02-2006 13:12:15

Hi.


I'm getting another error on the same procedure.


After a while, I get


"DBD::Oracle::st execute failed: ORA-00604: error occurred at recursive SQL level 1


ORA-01000: maximum open cursors exceeded


ORA-06512: at "JCHEM.JCHEM_BLOB_PKG", line 112


ORA-06512: at "JCHEM.JC_INSERTB", line 6


ORA-06512: at "BVTSCREEN.INSERT_STRUCTURE_BLOB", line 13


ORA-06512: at line 2 (DBD ERROR: OCIStmtExecute) [for Statement "


begin insert_structure_blob"


it is the line with cdida := jc_incertb





My database is set to 300 open cursors so it seems that it does not release it.


Do you have any clues about that ?


/Mikael

ChemAxon aa7c50abf8

24-02-2006 13:16:57

Does this happen with Oracle Database 10g Release 10.2.0.1.0 - 64bit Production?

User 4140faeba5

24-02-2006 13:21:36

Yes, I had no problem with my 9i (32-bit) release.





/Mikael

ChemAxon aa7c50abf8

24-02-2006 13:45:10

If this problem occurs only with Oracle Database 10g Release 10.2.0.1.0 - 64bit, I find it rather pointless to go after it. I would be cautious to use or support a tool which throws assertion errors in my face. I am really sorry to say this, but for the moment I see no other alternatives for you than either to downgrade to Oracle 10gR1 or (if you absolutely need Oracle 10gR2) to migrate to a 32-bit environement.





If you have 64x-bit Solaris systems, you can eventually try JChem Cartridge with Oracle 10gR2 64-bit for Solaris -- as far as I know nobody has tested this combination yet. You may have luck with Solaris, but my gut feeling is that the Aurora assertion failure will occur on that platform too.





Peter

ChemAxon aa7c50abf8

06-02-2007 19:16:26

Mikael,





It appears that the problem can be avoided by installing Oracle Database 10g Products from the Oracle Database Companion CD.





Cheers,


Peter

User 4140faeba5

31-03-2009 13:24:54

A late reply, but I'm in the process of installing





jchem cartridge onto an Oracle 10gR2 (without the companion cd installed).





What specific products do I need to install from the companion cd





to avoid this error ?














Regards,





/Mikael

ChemAxon aa7c50abf8

31-03-2009 13:45:15

Oracle Database 10g Products





But I strongly recommend to simply upgrade to 10.2.0.4. It includes the fix for this particular problem and a number of less serious other problems you might encounter while using JChem Cartridge.








Peter