[
https://issues.apache.org/jira/browse/DERBY-2549?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12494970
]
Mayuresh Nirhali commented on DERBY-2549:
-----------------------------------------
Thanks Mike for clarifying the behavior.
On a second thought, Option 2 mentioned above would not be suitable because the
size will also have to changed for few other arrays and huge size might lead to
OOME. The existing approach as described in mike's comment sounds reasonable.
I debugged mike's quick patch and it seems that after reaching the limit (page
is unlatched), scan_position is not repositioned correctly. In fact, in this
special case, on attempt to fetch next group, no valid page is found. So, only
100 rows can be cleaned per Compress operation.
I will work on a follow up patch from tje patch mike attached. Thanks again
mike.
> ArrayIndexOutOfBoundsException in SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE
> -------------------------------------------------------------------------
>
> Key: DERBY-2549
> URL: https://issues.apache.org/jira/browse/DERBY-2549
> Project: Derby
> Issue Type: Bug
> Components: Store
> Affects Versions: 10.2.2.0
> Environment: Linux 2.6.x, JRE 1.5.0_b7
> Reporter: Kurt Huwig
> Assigned To: Mayuresh Nirhali
> Attachments: 2549-histogram.png, A2549Test.java, derby-2549-v1.diff,
> derby2549_mikem.diff, DerbyDiskSpaceDiag.java
>
>
> I am doing this in my code:
> CALL SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE('SPONTS','" +
> "journal".toUpperCase(Locale.US) + "',1,1,1)")
> ("journal" is actually a String-variable, but I replaced it here for easier
> understanding)
> Sometime - not always - I am getting this exception:
> java.sql.SQLException: The exception
> 'java.lang.ArrayIndexOutOfBoundsException: 100' was thrown while evaluating
> an expression. SQLSTATE: XJ001:
> Java exception: '100: java.lang.ArrayIndexOutOfBoundsException'.
> at
> org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
> at org.apache.derby.client.am.SqlException.getSQLException(Unknown
> Source)
> at org.apache.derby.client.am.Statement.execute(Unknown Source)
> [...]
> Caused by: org.apache.derby.client.am.SqlException: The exception
> 'java.lang.ArrayIndexOutOfBoundsException: 100' was thrown while evaluating
> an expression.
> SQLSTATE: XJ001: Java exception: '100:
> java.lang.ArrayIndexOutOfBoundsException'.
> at org.apache.derby.client.am.Statement.completeExecute(Unknown
> Source)
> at
> org.apache.derby.client.net.NetStatementReply.parseEXCSQLSTTreply(Unknown
> Source)
> at
> org.apache.derby.client.net.NetStatementReply.readExecuteCall(Unknown Source)
> at org.apache.derby.client.net.StatementReply.readExecuteCall(Unknown
> Source)
> at org.apache.derby.client.net.NetStatement.readExecuteCall_(Unknown
> Source)
> at org.apache.derby.client.am.Statement.readExecuteCall(Unknown
> Source)
> at org.apache.derby.client.am.Statement.flowExecute(Unknown Source)
> at org.apache.derby.client.am.Statement.executeX(Unknown Source)
> ... 12 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.