[
https://issues.apache.org/jira/browse/DERBY-4915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12996563#comment-12996563
]
Mike Matrigali commented on DERBY-4915:
---------------------------------------
The OSReadOnly test is a single use database test, which explains why it is
having trouble with cleanup more often than other
tests. It also does some file manupulation of the database files itself.
I think the patch looks good and would be fine with it being checked in. I
agree with the comments that a real derby bug would more
likely just keep the file open forevery than just a little while after closing.
A reasonable derby explanation of current behavior would be that a
"shutdown=true" actually does not wait for a complete shutdown before returning
- so a shutdown could be happening while the cleanup is happening. Or it
could be a delayed write thing on windows. I am not sure why this is happening
recently and not in older
code lines - but maybe the tests have changed.
It might be reasonable to put in a slight wait in harness after any attempt to
shutdown a database, as I think this is what we tell customers.
> test failure in OSReadOnlyTest in assertDirectoryDeleted
> --------------------------------------------------------
>
> Key: DERBY-4915
> URL: https://issues.apache.org/jira/browse/DERBY-4915
> Project: Derby
> Issue Type: Bug
> Components: Test
> Affects Versions: 10.7.1.1
> Environment: windows XP, ibm 1.6
> Reporter: Myrna van Lunteren
> Attachments: derby-4915-1a-more_persistent_delete.diff
>
>
> I've seen the assert flag a failure for deleteing a log file last night, and
> a seg0 file the night before.
> This is one stack trace:
> 1)
> testOSReadOnly(org.apache.derbyTesting.functionTests.tests.store.OSReadOnlyTest)junit.framework.AssertionFailedError:
> Failed to delete 2 files
> (root=F:\test\JarResults.2010-11-23\ibm16_suites.All\system\singleUse\readWrite:
>
> F:\test\JarResults.2010-11-23\ibm16_suites.All\system\singleUse\readWrite\log
> (isDir=true, canRead=true, canWrite=true, size=0),
> F:\jartest\JarResults.2010-11-23\ibm16_suites.All\system\singleUse\readWrite
> (isDir=true, canRead=true, canWrite=true, size=0)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.assertDirectoryDeleted(BaseJDBCTestCase.java:1421)
> at
> org.apache.derbyTesting.functionTests.tests.store.OSReadOnlyTest.moveDatabaseOnOS(OSReadOnlyTest.java:295)
> at
> org.apache.derbyTesting.functionTests.tests.store.OSReadOnlyTest.testOSReadOnly(OSReadOnlyTest.java:160)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:109)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:16)
> at
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:16)
> at
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:16)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:16)
> at
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:16)
> This is another:
> 1)
> testOSReadOnly(org.apache.derbyTesting.functionTests.tests.store.OSReadOnlyTest)junit.framework.AssertionFailedError:
> Failed to delete 2 files
> (root=F:\test\JarResults.2010-11-22\ibm16_suites.All\system\singleUse\readOnly:
>
> F:\test\JarResults.2010-11-22\ibm16_suites.All\system\singleUse\readOnly\seg0
> (isDir=true, canRead=true, canWrite=true, size=0),
> F:\jartest\JarResults.2010-11-22\ibm16_suites.All\system\singleUse\readOnly
> (isDir=true, canRead=true, canWrite=true, size=0)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.assertDirectoryDeleted(BaseJDBCTestCase.java:1421)
> at
> org.apache.derbyTesting.functionTests.tests.store.OSReadOnlyTest.moveDatabaseOnOS(OSReadOnlyTest.java:295)
> at
> org.apache.derbyTesting.functionTests.tests.store.OSReadOnlyTest.testOSReadOnly(OSReadOnlyTest.java:152)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:109)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:16)
> at
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:16)
> at
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:16)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:16)
> at
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> at junit.extensions.TestSetup.run(TestSetup.java:16)
> This is on a machine that I've been able to arrange for a windows machine on
> which to run the tests for 10.7 nightly, but this is not a new machine. So
> perhaps the disk - being older - is a little slow in deleting? Perhaps the
> check can be delayed, or redone if failed first time.
> I'm still investigating, checking on hardware settings. The disk scan showed
> up healthy, and multithreading is not on.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira