Details
Description
The JVM process that uses oak-upgrade library for upgrading Oak repository is not able to move source (and probably destination) repository after making sure that both file stores are closed.
16.12.2016 17:15:31.463 INFO o.a.j.o.u.RepositorySidegrade: Copying node #770000: 16.12.2016 17:15:38.604 INFO o.a.j.o.u.RepositorySidegrade: Copying node #780000: 16.12.2016 17:15:39.495 INFO o.a.j.o.u.RepositorySidegrade: Copying node #790000: 16.12.2016 17:15:41.182 INFO o.a.j.o.s.f.FileStore: TarMK closed: C:\workspace\repository-segment-tar-20161216-171300\segmentstore 16.12.2016 17:15:41.370 INFO o.a.j.o.p.s.f.FileStore: TarMK closed: C:\workspace\repository\segmentstore 16.12.2016 17:17:11.604 ERROR java.io.IOException: Unable to delete file: C:\workspace\repository\segmentstore\journal.log at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2381) ~ at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1679) ~ at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1575) ~ at org.apache.commons.io.FileUtils.moveDirectory(FileUtils.java:2916) ~ ...
Please also note that --disable-mmap option is passed to avoid OAK-4274.
Is there any way to make all operations synchronised and finished after the migration is executed using the API method: OakUpgrade.migrate(MigrationOptions options, StoreArguments stores, DatastoreArguments datastores) throws IOException, CliArgumentException
This leads to a weird experience when filesystem clean up (reordering) is needed.
On Unix the segmentstore folder might be moved as UNIX fs implementation is not so restrictive. On Windows it is not possible.
Attachments
Issue Links
- is related to
-
OAK-5133 StoreArgument class getter method opens repo in read/write and unsafe MMAP mode
-
- Closed
-
-
OAK-5135 The flush of written data via TarRevisions is asynchronous in relation to FileStore.close()
-
- Closed
-
-
OAK-6611 [upgrade][oak-blob-cloud] Many S3DataStore errors during migration with oak-upgrade
-
- Closed
-
-
OAK-5436 o.a.j.o.segment.file.Manifest#load leaks a file descriptor
-
- Closed
-
- relates to
-
OAK-5438 FileStore and ReadOnlyFileStore might leak journal file descriptors
-
- Closed
-