db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kathey Marsden (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-176) Derby throws ERROR XBCM1: Java linkage error thrown during load of generated class org.apache.derby.exe.aced07c066x0102xca87x3319x00004aa5686e1 during execution of large query
Date Thu, 01 Nov 2007 15:38:50 GMT

    [ https://issues.apache.org/jira/browse/DERBY-176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12539393
] 

Kathey Marsden commented on DERBY-176:
--------------------------------------

After merging change 377609, I see a different error at 99,000 parameters which causes lose
of the connection instead of the query too complex message.   Below is the trace.  I think
this is an acceptable difference for 10.1,
since this limit is unlikely to be reached and the previous limit is 3400.  If this is acceptable
I will just change the largeCodeGenTest to open a new connection after getting this failure
at 99,000 parameters. up to 98,000 is fine.

java.lang.ClassCastException: org.apache.derby.iapi.services.classfile.CONSTANT_Integer_info

	at org.apache.derby.impl.services.bytecode.CodeChunk.getTypeDescriptor(CodeChunk.java:978)

	at org.apache.derby.impl.services.bytecode.CodeChunk.getVariableStackDelta(CodeChunk.java:1030)

	at org.apache.derby.impl.services.bytecode.CodeChunk.stackWordDelta(CodeChunk.java:964)

	at org.apache.derby.impl.services.bytecode.CodeChunk.findMaxStack(CodeChunk.java:926)

	at org.apache.derby.impl.services.bytecode.CodeChunk.complete(CodeChunk.java:781)

	at org.apache.derby.impl.services.bytecode.BCMethod.complete(BCMethod.java:237)

	at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(ProjectRestrictNode.java:1437)

	at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(ProjectRestrictNode.java:1249)

	at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(ProjectRestrictNode.java:1300)

	at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(ProjectRestrictNode.java:1249)

	at org.apache.derby.impl.sql.compile.ScrollInsensitiveResultSetNode.generate(ScrollInsensitiveResultSetNode.java:109)

	at org.apache.derby.impl.sql.compile.ReadCursorNode.generate(ReadCursorNode.java:118)

	at org.apache.derby.impl.sql.compile.CursorNode.generate(CursorNode.java:546)

	at org.apache.derby.impl.sql.compile.StatementNode.generate(StatementNode.java:232)

	at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:468)

	at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:107)

	at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:704)

	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java:121)

	at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(EmbedPreparedStatement20.java:82)

	at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(EmbedPreparedStatement30.java:62)

	at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Driver30.java:92)

	at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:682)

	at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:526)

	at org.apache.derbyTesting.functionTests.tests.lang.largeCodeGen.checkT0Query(largeCodeGen.java:97)

	at org.apache.derbyTesting.functionTests.tests.lang.largeCodeGen.testInClause(largeCodeGen.java:199)

	at org.apache.derbyTesting.functionTests.tests.lang.largeCodeGen.testInClause(largeCodeGen.java:177)

	at org.apache.derbyTesting.functionTests.tests.lang.largeCodeGen.main(largeCodeGen.java:50)


> Derby throws ERROR XBCM1: Java linkage error thrown during load of generated class org.apache.derby.exe.aced07c066x0102xca87x3319x00004aa5686e1
during execution of large query
> -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-176
>                 URL: https://issues.apache.org/jira/browse/DERBY-176
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.0.2.0, 10.0.2.1, 10.0.2.2, 10.1.1.0
>            Reporter: Kathey Marsden
>            Assignee: Daniel John Debrunner
>             Fix For: 10.2.1.6, 10.3.1.4
>
>         Attachments: largeCodeGen.java
>
>
> When executing a large query or oather large operations, Derby throws a java linkage
exception.
> This is because the generated byte code exceeds the JVM limits for method sizes constant
pool entries etc, the amount of code in a conditional etc.  The attached repro demonstrates
the problem but the problem can also occur for other operations that generate lots of byte
code.  The repro is just a new functional test,
> so should be copied to derbyTesting/functionTests/lang/largeCodeGen.java and run like
>  java -Djvmflags=-Xmx512M org.apache.derbyTesting.harness.RunTest lang/largeCodeGen
> When this problem is fixed additional scenarios should be added to this test.
> ERROR XBCM1: Java linkage error thrown during load of 
> generated class org.apache.derby.exe.aced07c066x0102xca87x3319x00004aa5686e1.
> 	at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:315)
> 	at org.apache.derby.impl.services.reflect.DatabaseClasses.loadGeneratedClass(DatabaseClasses.java:162)
> 	at org.apache.derby.impl.services.bytecode.GClass.getGeneratedClass(GClass.java:59)
> 	at org.apache.derby.impl.sql.compile.ExpressionClassBuilder.getGeneratedClass(ExpressionClassBuilder.java:920)
> 	at org.apache.derby.impl.sql.compile.StatementNode.generate(StatementNode.java:270)
> 	at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:432)
> 	at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:107)
> 	at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:688)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java:118)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(EmbedPreparedStatement20.java:82)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(EmbedPreparedStatement30.java:62)
> 	at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Driver30.java:92)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:675)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:519)
> 	at org.apache.derbyTesting.functionTests.tests.lang.largeCodeGen.main(largeCodeGen.java:86)
> Exception in thread "main" 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message