db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-6092) testPositionAgressive(org.apache.derbyTesting.functionTests.tests.jdbcapi.BlobClob4BlobTest)j fails with : 'The handle is invalid.: java.io.IOException'.
Date Tue, 26 Feb 2013 08:38:12 GMT

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

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

Not sure if it's what causing the exception, but LOBStreamControl has a finalize() method
that ends up calling LOBFile.close(), so it is possible that the gc thread is trying to close
the same RAF instance at the same time this happens. It should be safe, and I see that at
least OpenJDK has a synchronized region in RAF.close() to prevent trouble with concurrent
callers. But since the failure was seen on an old JVM version, there might be a JVM bug that
causes such problems when two threads try to close a RAF at the same time.

A quick search for the exception message text pointed me to LUCENE-669, where it was reported
that IBM 1.5 on Windows had problems with double close. That's the same platform, so at least
it's a theory.
                
> testPositionAgressive(org.apache.derbyTesting.functionTests.tests.jdbcapi.BlobClob4BlobTest)j
fails with : 'The handle is invalid.: java.io.IOException'.
> ---------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-6092
>                 URL: https://issues.apache.org/jira/browse/DERBY-6092
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>         Environment: IBM 1,5 
> java.specification.version: 1.5
> java.runtime.version: pwi32dev-20121015 (SR15 )
> java.fullversion: J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 j9vmwi3223-20121012 (JIT enabled)
> J9VM - 20121010_124616_lHdSMr
> JIT  - 20120914_26053ifx1_r8
> GC   - 20120911_AA
>            Reporter: Kathey Marsden
>
> There was 1 error:
> http://people.apache.org/~myrnavl/derby_test_results/main/windows/testlog/ibm15/1449432-suites.All_diff.txt
> 1) testPositionAgressive(org.apache.derbyTesting.functionTests.tests.jdbcapi.BlobClob4BlobTest)java.sql.SQLException:
Java exception: 'The handle is invalid.: java.io.IOException'.
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.javaException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.clearLOBMapping(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.commit(Unknown Source)
> 	at org.apache.derbyTesting.junit.BaseJDBCTestCase.commit(BaseJDBCTestCase.java:393)
> 	at org.apache.derbyTesting.functionTests.tests.jdbcapi.BlobClob4BlobTest.testPositionAgressive(BlobClob4BlobTest.java:1070)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:117)
> 	at org.apache.derbyTesting.junit.BaseJDBCTestCase.runBareOverridable(BaseJDBCTestCase.java:424)
> 	at org.apache.derbyTesting.junit.BaseJDBCTestCase.runBare(BaseJDBCTestCase.java:441)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> 	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:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> 	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:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> 	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:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> Caused by: java.io.IOException: The handle is invalid.
> 	at java.io.RandomAccessFile.close0(Native Method)
> 	at java.io.RandomAccessFile.close(RandomAccessFile.java:573)
> 	at org.apache.derby.impl.jdbc.LOBFile.close(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EncryptedLOBFile.close(Unknown Source)
> 	... 53 more

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message