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

Ibrahim Hasbini commented on DERBY-4640:
----------------------------------------

Found the culprit Future.cancel(true) in own application code that caused the 
interrupt to be generated.
Closing issue.
However, maybe an enhancement to Derby's interrupt handling of the sort:
while (condition) {
    try {
          Object.wait();
    } catch (InterruptedException e) {
        log e;
    }
}
would be useful. Of course, where applicable.
Thanks.


> Intermittent "Connection closed by unknown interrupt." errors
> -------------------------------------------------------------
>
>                 Key: DERBY-4640
>                 URL: https://issues.apache.org/jira/browse/DERBY-4640
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.5.3.0
>         Environment: Java version: 1.6.0_18
> Embedded Derby: 1.5.3.0
>            Reporter: Ibrahim Hasbini
>            Priority: Critical
>
> An intermittent InterruptedException causes certain queries to fail (an sql 
> delete in this case).
> derby.log output:
> 2010-05-03 11:29:29.400 GMT Thread[GC.EndPointInfo Runnable Thread - 
> xyz.middleware.remoting.connection.gc$endpointinf...@1cf3127,5,main] (XID = 
> 1089), (SESSIONID = 3), (DATABASE = 
> .xyz/middleware/registry/middleware.registry/db), (DRDAID = null), Failed 
> Statement is: null with 1 parameters begin parameter #1: 227 :end parameter 
> ERROR 08000: Connection closed by unknown interrupt.
>       at org.apache.derby.iapi.error.StandardException.newException(Unknown 
> Source)
>       at org.apache.derby.iapi.error.StandardException.interrupt(Unknown 
> Source)
>       at org.apache.derby.impl.store.raw.log.LogToFile.flush(Unknown Source)
>       at org.apache.derby.impl.store.raw.log.LogToFile.flush(Unknown Source)
>       at org.apache.derby.impl.store.raw.log.FileLogger.flush(Unknown Source)
>       at org.apache.derby.impl.store.raw.xact.Xact.prepareCommit(Unknown 
> Source)
>       at org.apache.derby.impl.store.raw.xact.Xact.commit(Unknown Source)
>       at org.apache.derby.impl.store.raw.xact.Xact.commit(Unknown Source)
>       at org.apache.derby.impl.store.access.RAMTransaction.commit(Unknown 
> Source)
>       at 
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.doCommit(Unknown
>  Source)
>       at 
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.userCommit(Unknown
>  Source)
>       at org.apache.derby.impl.jdbc.TransactionResourceImpl.commit(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.EmbedConnection.commit(Unknown Source)
>       at 
> org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:334)
>       at 
> org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:211)
> (...)
> Caused by: java.lang.InterruptedException
>       at java.lang.Object.wait(Native Method)
>       at java.lang.Object.wait(Object.java:485)
>       at org.apache.derby.impl.store.raw.log.LogToFile.flush(Unknown Source)
>       at org.apache.derby.impl.store.raw.log.LogToFile.flush(Unknown Source)
>       at org.apache.derby.impl.store.raw.log.FileLogger.flush(Unknown Source)
>       at org.apache.derby.impl.store.raw.xact.Xact.prepareCommit(Unknown 
> Source)
>       at org.apache.derby.impl.store.raw.xact.Xact.commit(Unknown Source)
>       at org.apache.derby.impl.store.raw.xact.Xact.commit(Unknown Source)
>       at org.apache.derby.impl.store.access.RAMTransaction.commit(Unknown 
> Source)
>       at 
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.doCommit(Unknown
>  Source)
>       at 
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.userCommit(Unknown
>  Source)
>       at org.apache.derby.impl.jdbc.TransactionResourceImpl.commit(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.EmbedConnection.commit(Unknown Source)
>       at 
> org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:334)
>       at 
> org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:211)
> followed by:
> ------------  BEGIN SHUTDOWN ERROR STACK -------------
> ERROR XSTB0: An exception was thrown during transaction abort.
>       at org.apache.derby.iapi.error.StandardException.newException(Unknown 
> Source)
>       at org.apache.derby.impl.store.raw.xact.Xact.preComplete(Unknown Source)
>       at org.apache.derby.impl.store.raw.xact.Xact.abort(Unknown Source)
>       at 
> org.apache.derby.impl.store.raw.xact.XactContext.cleanupOnError(Unknown 
> Source)
>       at 
> org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(Unknown 
> Source)
>       at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(Unknown 
> Source)
>       at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.EmbedConnection.commit(Unknown Source)
>       at 
> org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:334)
>       at 
> org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:211)
> (...)
> ------------  END SHUTDOWN ERROR STACK -------------

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