[
https://issues.apache.org/jira/browse/DERBY-5937?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Knut Anders Hatlen updated DERBY-5937:
--------------------------------------
Attachment: d5937-1a-test.diff
The patch d5937-1a-test.diff adds a regression test case that exposes the bug
when run on Windows. The test case fails because it cannot delete all files in
the slave database directory after shutdown:
<assertDirectoryDeleted> attempt 1 left 3 files/dirs behind:
0=C:\cygwin\home\lroot\derbytst\system\d5937-slave-db\log\log1.dat
1=C:\cygwin\home\lroot\derbytst\system\d5937-slave-db\log
2=C:\cygwin\home\lroot\derbytst\system\d5937-slave-db
<assertDirectoryDeleted> attempt 2 left 3 files/dirs behind:
0=C:\cygwin\home\lroot\derbytst\system\d5937-slave-db\log\log1.dat
1=C:\cygwin\home\lroot\derbytst\system\d5937-slave-db\log
2=C:\cygwin\home\lroot\derbytst\system\d5937-slave-db
<assertDirectoryDeleted> attempt 3 left 3 files/dirs behind:
0=C:\cygwin\home\lroot\derbytst\system\d5937-slave-db\log\log1.dat
1=C:\cygwin\home\lroot\derbytst\system\d5937-slave-db\log
2=C:\cygwin\home\lroot\derbytst\system\d5937-slave-db
<assertDirectoryDeleted> attempt 4 left 3 files/dirs behind:
0=C:\cygwin\home\lroot\derbytst\system\d5937-slave-db\log\log1.dat
1=C:\cygwin\home\lroot\derbytst\system\d5937-slave-db\log
2=C:\cygwin\home\lroot\derbytst\system\d5937-slave-db
F
Time: 18,891
There was 1 failure:
1)
testSlaveFailoverLeak(org.apache.derbyTesting.functionTests.tests.replicationTests.Derby5937SlaveShutdownTest)junit.framework.AssertionFailedError:
Failed to delete 3 files
(root=C:\cygwin\home\lroot\derbytst\system\d5937-slave-db):
C:\cygwin\home\lroot\derbytst\system\d5937-slave-db\log\log1.dat (isDir=false,
canRead=true, canWrite=true, size=1048576),
C:\cygwin\home\lroot\derbytst\system\d5937-slave-db\log (isDir=true,
canRead=true, canWrite=true, size=0),
C:\cygwin\home\lroot\derbytst\system\d5937-slave-db (isDir=true, canRead=true,
canWrite=true, size=4096)
at
org.apache.derbyTesting.junit.BaseTestCase.assertDirectoryDeleted(BaseTestCase.java:1027)
at
org.apache.derbyTesting.functionTests.tests.replicationTests.Derby5937SlaveShutdownTest.testSlaveFailoverLeak(Derby5937SlaveShutdownTest.java:169)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
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 junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
at junit.extensions.TestSetup.run(TestSetup.java:25)
FAILURES!!!
Tests run: 1, Failures: 1, Errors: 0
> File handle is leaked when a Slave replication is shutdown with failover=true
> -----------------------------------------------------------------------------
>
> Key: DERBY-5937
> URL: https://issues.apache.org/jira/browse/DERBY-5937
> Project: Derby
> Issue Type: Bug
> Components: Replication
> Affects Versions: 10.8.2.2
> Environment: Windows 7
> Reporter: Glenn McGregor
> Assignee: Knut Anders Hatlen
> Labels: derby_triage10_10
> Attachments: d5937-1a-test.diff
>
>
> As part of our use of derby replication, we shut the slave down if we detect
> reachability issues with the master. Normally we shut it down, and bring it
> back up as a regular database in read-only mode. Then when the master can,
> it tries to push a fresh copy back to the slave system. However, during the
> failover=true shutdown on the slave, the log file ".../name/log/log1.dat" is
> still open.
> Because of this open file, at least on Windows, it's impossible to move the
> database file out of the way, and to install a fresh copy from the master.
--
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