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

Reply via email to