db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kathey Marsden (JIRA)" <derby-...@db.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, 08 Dec 2005 04:28:10 GMT
    [ http://issues.apache.org/jira/browse/DERBY-176?page=comments#action_12359697 ] 

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

While we would like to continue to make progress on  DERBY-176, there will likely always be
some upper bound on the complexity of queries.  I think a new error message would help a lot
in clarifying necessary action and  setting proper expectations for users.

How about this?


Statement  too complex.  The resulting java  byte code exceeds java class file format limit(s).
Try  rewriting the query to remove complexity.  Eliminating  many duplicate expressions or
breaking up the query and storing interim results in a temporary table  can often help resolve
this error.   method:fillResultSet code_length (68224 > 6
5536) in generated class org.apache.derby.exe.ace5214067x0108x0775x104fxfffff2d773e3c




> 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: http://issues.apache.org/jira/browse/DERBY-176
>      Project: Derby
>         Type: Bug
>   Components: SQL
>     Versions: 10.0.2.2, 10.0.2.1, 10.0.2.0, 10.1.1.0
>     Reporter: Kathey Marsden
>  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.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message