[
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.