You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Mattias (JIRA)" <ji...@apache.org> on 2015/06/11 10:00:13 UTC

[jira] [Comment Edited] (DERBY-6818) java.lang.OutOfMemoryError

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

Mattias edited comment on DERBY-6818 at 6/11/15 7:59 AM:
---------------------------------------------------------

Hi Bryan, No I attached the schema only to describe my table. The out of memory exception is thrown by random requests. Just happens to be arbitrary calls to Derby:

{code}
Caused by: org.springframework.jdbc.UncategorizedSQLException: StatementCallback; uncategorized SQLException for SQL [SELECT F.ID, F.NEXT_ID, F.PREV_ID, XMLSERIALIZE(F.TEST_XML AS CLOB(1M)) AS TEST_XML FROM TEST F ORDER BY F.ID DESC FETCH FIRST 1 ROWS ONLY]; SQL state [38000]; error code [20000]; The exception 'java.lang.OutOfMemoryError: Java heap space' was thrown while evaluating an expression.; nested exception is java.sql.SQLException: The exception 'java.lang.OutOfMemoryError: Java heap space' was thrown
{code}

It is worth mentioning that I have inserted almost 2000 rows. 



was (Author: eplatti):
Hi Bryan, No I attached the schema only to describe my table. The out of memory exception is thrown by random request. Just happens to be arbitrary calls to Derby:

{code}
Caused by: org.springframework.jdbc.UncategorizedSQLException: StatementCallback; uncategorized SQLException for SQL [SELECT F.ID, F.NEXT_ID, F.PREV_ID, XMLSERIALIZE(F.TEST_XML AS CLOB(1M)) AS TEST_XML FROM TEST F ORDER BY F.ID DESC FETCH FIRST 1 ROWS ONLY]; SQL state [38000]; error code [20000]; The exception 'java.lang.OutOfMemoryError: Java heap space' was thrown while evaluating an expression.; nested exception is java.sql.SQLException: The exception 'java.lang.OutOfMemoryError: Java heap space' was thrown
{code}

It is worth mentioning that I have inserted almost 2000 rows. 


> java.lang.OutOfMemoryError
> --------------------------
>
>                 Key: DERBY-6818
>                 URL: https://issues.apache.org/jira/browse/DERBY-6818
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.11.1.1
>         Environment: Using Derby disk database with JBoss eap 6.4.
>            Reporter: Mattias
>
> We got a 'java.lang.OutOfMemoryError: Java heap space' when using a Derby disk database with the following schema.
> {code}
> CREATE TABLE TEST (   ID BIGINT NOT NULL
> ,   NEXT _ID BIGINT
> ,   PREV_ ID BIGINT
> ,   TEST_XML XML);
> ALTER TABLE TABLE
>         ADD PRIMARY KEY
>                 (ID);
> {code}
> I opened the heap dump with Eclipse Memory Analyzer and found that tree instances of org.apache.derby.impl.store.access.sort.MergeInserter occupies 290 MB of memory (that is 66 % of the total heap)  
> The problem seems to be that MergeInserter holds a sort buffer that contains complete rows and the TEST_XML is about 160 kB each. MergeInserter has an advanced algorithm to calculate the allowed size of the buffer, but is it necessary store the complete row in the buffer, i.e. the non-indexed values (TEST_XML is this case)?
> Is there some property I can set to limit the buffer size or is it possible to rewrite the SQL schema someway to exclude the XML type from the buffer?
> Following is the dominator tree from Eclipse Memory Analyzer:
> {code}
> org.apache.derby.impl.store.access.sort.MergeInserter @ 0xe3f72e20                                                                                                                                                                                                                                               |           72 |   127 533 080 |     30,76%
> |- org.apache.derby.impl.store.access.sort.SortBuffer @ 0xe3f73018                                                                                                                                                                                                                                               |           48 |   127 532 792 |     30,76%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3fed5e0                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |  '- org.apache.derby.iapi.types.DataValueDescriptor[4] @ 0xee3da280                                                                                                                                                                                                                                         |           32 |       164 344 |      0,04%
> |  |     |- org.apache.derby.iapi.types.SQLClob @ 0xee3da2a0                                                                                                                                                                                                                                                     |           56 |       164 240 |      0,04%
> |  |     |  |- java.lang.String @ 0xee3da2d8  < ?xml version="1.0"?...|           24 |       164 160 |      0,04%
> |  |     |  |- char[1][] @ 0xee3da2f0                                                                                                                                                                                                                                                                            |           24 |            24 |      0,00%
> |  |     |  '- Total: 2 entries                                                                                                                                                                                                                                                                                  |              |               |          
> |  |     |- org.apache.derby.iapi.types.SQLLongint @ 0xee3da308                                                                                                                                                                                                                                                  |           24 |            24 |      0,00%
> |  |     |- org.apache.derby.iapi.types.SQLLongint @ 0xee3da320                                                                                                                                                                                                                                                  |           24 |            24 |      0,00%
> |  |     |- org.apache.derby.iapi.types.SQLLongint @ 0xee3da338                                                                                                                                                                                                                                                  |           24 |            24 |      0,00%
> |  |     '- Total: 4 entries                                                                                                                                                                                                                                                                                     |              |               |          
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3fed608                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3fed630                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3fed658                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3fed680                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3fed6a8                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3fed6d0                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3fed6f8                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3fed720                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3fedd50                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3fedd78                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3fedda0                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3feddc8                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3fedff8                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3fef5c8                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3fef5f0                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3fef618                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3ff01f8                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3ff04c8                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3ff0608                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3ff0630                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3ff0658                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3ff0680                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3ff06a8                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  |- org.apache.derby.impl.store.access.sort.Node @ 0xe3ff06d0                                                                                                                                                                                                                                                  |           40 |       164 384 |      0,04%
> |  '- Total: 25 of 780 entries; 755
> {code}
> This is a snippet of my jboss standalone.xml:
> {code:xml}
>         <datasources>
>                 <xa-datasource jndi-name="java:/jdbc/MYDB" pool-name="mydb_Pool" enabled="true">
>                     <xa-datasource-property name="DatabaseName">
>                         mydb
>                     </xa-datasource-property>
>                     <xa-datasource-property name="CreateDatabase">
>                         create
>                     </xa-datasource-property>
>                     <driver>derby-embedded</driver>
>                     <xa-pool>
>                         <is-same-rm-override>false</is-same-rm-override>
>                     </xa-pool>
>                     <security>
>                         <user-name>sa</user-name>
>                         <password>admin</password>
>                     </security>
>                 </xa-datasource>
>        
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)