[ 
http://issues.apache.org/jira/browse/DERBY-1513?page=comments#action_12421379 ] 
            
Tomohito Nakayama commented on DERBY-1513:
------------------------------------------

However,I found there were difference in behavior.

I survey OutOfMemoryError of the program with configuration of -Xmx64m -Xmx128m 
-Xmx192m -Xmx256m.

OutOfMemoryError happen in all of those configurations.
However, how OutOfMemoryError was thrown from program was not same between 
these configurations.

Next was information captured by using jdb.

-Xmx64m :
Exception occurred: java.lang.OutOfMemoryError (uncaught)
Exception occurred: java.lang.OutOfMemoryError 
(uncaught)"thread=DRDAConnThread_3", 
org.apache.derby.impl.drda.DDMReader$MemorySavedByteArrayOutputStream.<init>(), 
line=1,807 bci=6
1,807                           buf = new byte[size];

DRDAConnThread_3[1] where
  [1] 
org.apache.derby.impl.drda.DDMReader$MemorySavedByteArrayOutputStream.<init> 
(DDMReader.java:1,807)
  [2] org.apache.derby.impl.drda.DDMReader.getExtData (DDMReader.java:958)
  [3] org.apache.derby.impl.drda.DDMReader.getExtData (DDMReader.java:944)
  [4] org.apache.derby.impl.drda.DRDAConnThread.readAndSetExtParam 
(DRDAConnThread.java:4,355)
  [5] org.apache.derby.impl.drda.DRDAConnThread.readAndSetAllExtParams 
(DRDAConnThread.java:4,320)
  [6] org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTTobjects 
(DRDAConnThread.java:3,811)
  [7] org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT 
(DRDAConnThread.java:3,640)
  [8] org.apache.derby.impl.drda.DRDAConnThread.processCommands 
(DRDAConnThread.java:928)
  [9] org.apache.derby.impl.drda.DRDAConnThread.run (DRDAConnThread.java:254)
DRDAConnThread_3[1] eval  java.lang.Runtime.getRuntime().maxMemory() 
  java.lang.Runtime.getRuntime().maxMemory()  = 66650112


-Xmx128m :
Exception occurred: java.lang.OutOfMemoryError (to be caught at: 
org.apache.derby.impl.store.raw.data.StoredPage.logRow(), line=4,209 
bci=1,370)"thread=DRDAConnThread_3", 
org.apache.derby.iapi.services.io.DynamicByteArrayOutputStream.expandBuffer(), 
line=243 bci=64
243             byte[] newbuf = new byte[newsize];

DRDAConnThread_3[1] where
  [1] 
org.apache.derby.iapi.services.io.DynamicByteArrayOutputStream.expandBuffer 
(DynamicByteArrayOutputStream.java:243)
  [2] org.apache.derby.iapi.services.io.DynamicByteArrayOutputStream.write 
(DynamicByteArrayOutputStream.java:88)
  [3] java.io.DataOutputStream.write (DataOutputStream.java:85)
  [4] org.apache.derby.iapi.types.SQLBinary.writeExternal (SQLBinary.java:282)
  [5] org.apache.derby.impl.store.raw.data.StoredPage.logColumn 
(StoredPage.java:6,255)
  [6] org.apache.derby.impl.store.raw.data.StoredPage.logRow 
(StoredPage.java:3,965)
  [7] 
org.apache.derby.impl.store.raw.data.InsertOperation.writeOptionalDataToBuffer 
(InsertOperation.java:369)
  [8] org.apache.derby.impl.store.raw.data.InsertOperation.<init> 
(InsertOperation.java:114)
  [9] org.apache.derby.impl.store.raw.data.LoggableActions.actionInsert 
(LoggableActions.java:138)
  [10] org.apache.derby.impl.store.raw.data.BasePage.insertNoOverflow 
(BasePage.java:664)
  [11] org.apache.derby.impl.store.raw.data.BasePage.insertAtSlot 
(BasePage.java:585)
  [12] org.apache.derby.impl.store.raw.data.StoredPage.insertAtSlot 
(StoredPage.java:6,735)
  [13] org.apache.derby.impl.store.raw.data.BasePage.insert (BasePage.java:691)
  [14] org.apache.derby.impl.store.access.heap.HeapController.doInsert 
(HeapController.java:254)
  [15] org.apache.derby.impl.store.access.heap.HeapController.insert 
(HeapController.java:573)
  [16] org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow 
(RowChangerImpl.java:447)
  [17] org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore 
(InsertResultSet.java:995)
  [18] org.apache.derby.impl.sql.execute.InsertResultSet.open 
(InsertResultSet.java:522)
  [19] org.apache.derby.impl.sql.GenericPreparedStatement.execute 
(GenericPreparedStatement.java:357)
  [20] org.apache.derby.impl.jdbc.EmbedStatement.executeStatement 
(EmbedStatement.java:1,181)
  [21] org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement 
(EmbedPreparedStatement.java:1,512)
  [22] org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute 
(EmbedPreparedStatement.java:1,190)
  [23] org.apache.derby.impl.drda.DRDAStatement.execute (DRDAStatement.java:556)
  [24] org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT 
(DRDAConnThread.java:3,655)
  [25] org.apache.derby.impl.drda.DRDAConnThread.processCommands 
(DRDAConnThread.java:928)
  [26] org.apache.derby.impl.drda.DRDAConnThread.run (DRDAConnThread.java:254)
DRDAConnThread_3[1] eval  java.lang.Runtime.getRuntime().maxMemory() 
  java.lang.Runtime.getRuntime().maxMemory()  = 133234688


-Xmx192m :
Exception occurred: java.lang.OutOfMemoryError (to be caught at: 
org.apache.derby.impl.store.raw.data.StoredPage.logRow(), line=4,209 
bci=1,370)"thread=DRDAConnThread_3", 
org.apache.derby.impl.store.raw.data.MemByteHolder.<init>(), line=68 bci=26
68              this.curBuf = new byte[bufSize];

DRDAConnThread_3[1] where
  [1] org.apache.derby.impl.store.raw.data.MemByteHolder.<init> 
(MemByteHolder.java:68)
  [2] org.apache.derby.impl.store.raw.data.StoredPage.logColumn 
(StoredPage.java:6,351)
  [3] org.apache.derby.impl.store.raw.data.StoredPage.logRow 
(StoredPage.java:3,965)
  [4] 
org.apache.derby.impl.store.raw.data.InsertOperation.writeOptionalDataToBuffer 
(InsertOperation.java:369)
  [5] org.apache.derby.impl.store.raw.data.InsertOperation.<init> 
(InsertOperation.java:114)
  [6] org.apache.derby.impl.store.raw.data.LoggableActions.actionInsert 
(LoggableActions.java:138)
  [7] org.apache.derby.impl.store.raw.data.BasePage.insertNoOverflow 
(BasePage.java:664)
  [8] org.apache.derby.impl.store.raw.data.BasePage.insertAtSlot 
(BasePage.java:585)
  [9] org.apache.derby.impl.store.raw.data.StoredPage.insertAtSlot 
(StoredPage.java:6,735)
  [10] org.apache.derby.impl.store.raw.data.BasePage.insert (BasePage.java:691)
  [11] org.apache.derby.impl.store.access.heap.HeapController.doInsert 
(HeapController.java:254)
  [12] org.apache.derby.impl.store.access.heap.HeapController.insert 
(HeapController.java:573)
  [13] org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow 
(RowChangerImpl.java:447)
  [14] org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore 
(InsertResultSet.java:995)
  [15] org.apache.derby.impl.sql.execute.InsertResultSet.open 
(InsertResultSet.java:522)
  [16] org.apache.derby.impl.sql.GenericPreparedStatement.execute 
(GenericPreparedStatement.java:357)
  [17] org.apache.derby.impl.jdbc.EmbedStatement.executeStatement 
(EmbedStatement.java:1,181)
  [18] org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement 
(EmbedPreparedStatement.java:1,512)
  [19] org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute 
(EmbedPreparedStatement.java:1,190)
  [20] org.apache.derby.impl.drda.DRDAStatement.execute (DRDAStatement.java:556)
  [21] org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT 
(DRDAConnThread.java:3,655)
  [22] org.apache.derby.impl.drda.DRDAConnThread.processCommands 
(DRDAConnThread.java:928)
  [23] org.apache.derby.impl.drda.DRDAConnThread.run (DRDAConnThread.java:254)
DRDAConnThread_3[1] eval  java.lang.Runtime.getRuntime().maxMemory() 
  java.lang.Runtime.getRuntime().maxMemory()  = 199819264


-Xmx256m :
Exception occurred: java.lang.OutOfMemoryError (to be caught at: 
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(), line=1,267 
bci=498)"thread=DRDAConnThread_3", 
org.apache.derby.iapi.services.io.DynamicByteArrayOutputStream.<init>(), 
line=63 bci=12
63              buf = new byte[cbuf.length];

DRDAConnThread_3[1] where
  [1] org.apache.derby.iapi.services.io.DynamicByteArrayOutputStream.<init> 
(DynamicByteArrayOutputStream.java:63)
  [2] org.apache.derby.impl.store.raw.data.BasePage.insertAllowOverflow 
(BasePage.java:821)
  [3] org.apache.derby.impl.store.raw.data.BasePage.insert (BasePage.java:694)
  [4] org.apache.derby.impl.store.access.heap.HeapController.doInsert 
(HeapController.java:306)
  [5] org.apache.derby.impl.store.access.heap.HeapController.insert 
(HeapController.java:573)
  [6] org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow 
(RowChangerImpl.java:447)
  [7] org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore 
(InsertResultSet.java:995)
  [8] org.apache.derby.impl.sql.execute.InsertResultSet.open 
(InsertResultSet.java:522)
  [9] org.apache.derby.impl.sql.GenericPreparedStatement.execute 
(GenericPreparedStatement.java:357)
  [10] org.apache.derby.impl.jdbc.EmbedStatement.executeStatement 
(EmbedStatement.java:1,181)
  [11] org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement 
(EmbedPreparedStatement.java:1,512)
  [12] org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute 
(EmbedPreparedStatement.java:1,190)
  [13] org.apache.derby.impl.drda.DRDAStatement.execute (DRDAStatement.java:556)
  [14] org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT 
(DRDAConnThread.java:3,655)
  [15] org.apache.derby.impl.drda.DRDAConnThread.processCommands 
(DRDAConnThread.java:928)
  [16] org.apache.derby.impl.drda.DRDAConnThread.run (DRDAConnThread.java:254)
DRDAConnThread_3[1] eval  java.lang.Runtime.getRuntime().maxMemory() 
  java.lang.Runtime.getRuntime().maxMemory()  = 266403840

> Trial 1 for DERBY-550
> ---------------------
>
>                 Key: DERBY-1513
>                 URL: http://issues.apache.org/jira/browse/DERBY-1513
>             Project: Derby
>          Issue Type: Sub-task
>            Reporter: Tomohito Nakayama
>         Assigned To: Tomohito Nakayama
>         Attachments: DERBY-1513.patch, DERBY-1513_2.patch, 
> DERBY-1513_3.patch, serverMemoryUsage.xls, serverMemoryUsage_3.xls
>
>
> http://issues.apache.org/jira/browse/DERBY-550#action_12421280
> http://issues.apache.org/jira/browse/DERBY-550#action_12421282

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

        

Reply via email to