db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-5498) ClosedByInterruptException in AuthenticationTest
Date Thu, 10 Nov 2011 08:50:51 GMT

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

Knut Anders Hatlen commented on DERBY-5498:
-------------------------------------------

Thanks, Dag. The patch looks good to me. Two questions:

+                    } catch (ClosedChannelException e) {
+                        // if (e instanceof ChannelInterruptedException) {
+                        //
+                        // JDK bug: use AsynchronousCloseException instead of
+                        // the logically correct ChannelInterruptedException
+
+                        if (e instanceof AsynchronousCloseException) {
+                            InterruptStatus.setInterrupted();
+                        } else {
+                            throw e; // not expected
+                        }

Since we immediately re-throw all non-AsynchronousCloseExceptions, couldn't we change the
catch block to catch AsynchronousCloseException only and unconditionally call InterruptStatus.setInterrupted()?

The comment mentions ChannelInterruptedException. Did you mean ClosedByInterruptException?
                
> ClosedByInterruptException in AuthenticationTest
> ------------------------------------------------
>
>                 Key: DERBY-5498
>                 URL: https://issues.apache.org/jira/browse/DERBY-5498
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 10.8.1.2, 10.8.2.2, 10.9.0.0
>         Environment: Solaris 11, JDK 7u1
>            Reporter: Knut Anders Hatlen
>            Assignee: Dag H. Wanvik
>             Fix For: 10.9.0.0
>
>         Attachments: d5498a-debug.diff, d5498a-debug.stat, d5498a.diff, d5498a.diff
>
>
> AuthenticationTest failed with this error on trunk (intermittent error, passed when I
reran suites.All):
> java.sql.SQLException: DERBY SQL error: SQLCODE: -1, SQLSTATE: XJ040, SQLERRMC: Failed
to start database 'singleUse/oneuse2c' with class loader sun.misc.Launcher$AppClassLoader@1ff5ea7,
see the next exception for details.::SQLSTATE: XJ001Java exception: 'ASSERT FAILED Unable
to Acquire Exclusive Lock on /export/home/hudsond/.hudson/jobs/Derby-JUnit/workspace/test/system/singleUse/oneuse2c/dbex.lck:
org.apache.derby.shared.common.sanity.AssertFailure'.::SQLSTATE: XJ001Java exception: ': java.nio.channels.ClosedByInterruptException'.
> 	at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:99)
> 	at org.apache.derby.client.am.SqlException.getSQLException(SqlException.java:364)
> 	at org.apache.derby.jdbc.ClientDriver.connect(ClientDriver.java:166)
> 	at java.sql.DriverManager.getConnection(DriverManager.java:579)
> 	at java.sql.DriverManager.getConnection(DriverManager.java:190)
> 	at org.apache.derbyTesting.junit.DriverManagerConnector.openConnection(DriverManagerConnector.java:81)
> 	at org.apache.derbyTesting.junit.DriverManagerConnector.openConnection(DriverManagerConnector.java:43)
> 	at org.apache.derbyTesting.junit.TestConfiguration.openDefaultConnection(TestConfiguration.java:1574)
> 	at org.apache.derbyTesting.junit.BaseJDBCTestSetup.getConnection(BaseJDBCTestSetup.java:72)
> 	at org.apache.derbyTesting.junit.DatabasePropertyTestSetup.tearDown(DatabasePropertyTestSetup.java:280)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:24)
> 	at junit.extensions.TestSetup.run(TestSetup.java:27)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:23)
> 	at junit.extensions.TestSetup.run(TestSetup.java:27)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:23)
> 	at junit.extensions.TestSetup.run(TestSetup.java:27)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:23)
> 	at junit.extensions.TestSetup.run(TestSetup.java:27)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:23)
> 	at junit.extensions.TestSetup.run(TestSetup.java:27)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:23)
> 	at junit.extensions.TestSetup.run(TestSetup.java:27)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:23)
> 	at junit.extensions.TestSetup.run(TestSetup.java:27)
> Caused by: org.apache.derby.client.am.SqlException: DERBY SQL error: SQLCODE: -1, SQLSTATE:
XJ040, SQLERRMC: Failed to start database 'singleUse/oneuse2c' with class loader sun.misc.Launcher$AppClassLoader@1ff5ea7,
see the next exception for details.::SQLSTATE: XJ001Java exception: 'ASSERT FAILED Unable
to Acquire Exclusive Lock on /export/home/hudsond/.hudson/jobs/Derby-JUnit/workspace/test/system/singleUse/oneuse2c/dbex.lck:
org.apache.derby.shared.common.sanity.AssertFailure'.::SQLSTATE: XJ001Java exception: ': java.nio.channels.ClosedByInterruptException'.
> 	at org.apache.derby.client.am.Connection.completeSqlca(Connection.java:2125)
> 	at org.apache.derby.client.net.NetConnectionReply.parseRdbAccessFailed(NetConnectionReply.java:538)
> 	at org.apache.derby.client.net.NetConnectionReply.parseAccessRdbError(NetConnectionReply.java:431)
> 	at org.apache.derby.client.net.NetConnectionReply.parseACCRDBreply(NetConnectionReply.java:294)
> 	at org.apache.derby.client.net.NetConnectionReply.readAccessDatabase(NetConnectionReply.java:121)
> 	at org.apache.derby.client.net.NetConnection.readSecurityCheckAndAccessRdb(NetConnection.java:826)
> 	at org.apache.derby.client.net.NetConnection.flowSecurityCheckAndAccessRdb(NetConnection.java:762)
> 	at org.apache.derby.client.net.NetConnection.flowUSRIDPWDconnect(NetConnection.java:591)
> 	at org.apache.derby.client.net.NetConnection.flowConnect(NetConnection.java:406)
> 	at org.apache.derby.client.net.NetConnection.<init>(NetConnection.java:220)
> 	at org.apache.derby.client.net.NetConnection40.<init>(NetConnection40.java:74)
> 	at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl40.newNetConnection(ClientJDBCObjectFactoryImpl40.java:269)
> 	at org.apache.derby.jdbc.ClientDriver.connect(ClientDriver.java:157)
> The server side log was not preserved because the failure happened inside a decorator.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message