This is an automated email from the ASF dual-hosted git repository. miroslav pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
The following commit(s) were added to refs/heads/trunk by this push: new d2fdd67f26 Repository writes in SegmentStoreMigrator blocked when migrating to Azure segment store (#1308) d2fdd67f26 is described below commit d2fdd67f263176c813ec2a390fbf2c1257825ec8 Author: Miroslav Smiljanic <smmiros...@gmail.com> AuthorDate: Fri Feb 16 11:00:29 2024 +0100 Repository writes in SegmentStoreMigrator blocked when migrating to Azure segment store (#1308) * OAK-10652 obrain lock in target SegmentNodeStorePersistence * OAK-10652 remove unused import --------- Co-authored-by: Miroslav Smiljanic <miros...@apache.com> --- .../jackrabbit/oak/segment/azure/tool/SegmentStoreMigrator.java | 5 +++++ .../jackrabbit/oak/segment/azure/tool/SegmentCopyTestBase.java | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/SegmentStoreMigrator.java b/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/SegmentStoreMigrator.java index 997cf51897..43677b62ef 100644 --- a/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/SegmentStoreMigrator.java +++ b/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/SegmentStoreMigrator.java @@ -33,6 +33,7 @@ import org.apache.jackrabbit.oak.segment.spi.monitor.RemoteStoreMonitorAdapter; import org.apache.jackrabbit.oak.segment.spi.persistence.GCJournalFile; import org.apache.jackrabbit.oak.segment.spi.persistence.JournalFileReader; import org.apache.jackrabbit.oak.segment.spi.persistence.JournalFileWriter; +import org.apache.jackrabbit.oak.segment.spi.persistence.RepositoryLock; import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveEntry; import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveManager; import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveReader; @@ -88,10 +89,14 @@ public class SegmentStoreMigrator implements Closeable { } public void migrate() throws IOException, ExecutionException, InterruptedException { + RepositoryLock repositoryLock = target.lockRepository(); + RETRIER.execute(this::migrateJournal); RETRIER.execute(this::migrateGCJournal); RETRIER.execute(this::migrateManifest); migrateArchives(); + + repositoryLock.unlock(); } private void migrateJournal() throws IOException { diff --git a/oak-segment-azure/src/test/java/oak/apache/jackrabbit/oak/segment/azure/tool/SegmentCopyTestBase.java b/oak-segment-azure/src/test/java/oak/apache/jackrabbit/oak/segment/azure/tool/SegmentCopyTestBase.java index a732dbeb36..114161ac24 100644 --- a/oak-segment-azure/src/test/java/oak/apache/jackrabbit/oak/segment/azure/tool/SegmentCopyTestBase.java +++ b/oak-segment-azure/src/test/java/oak/apache/jackrabbit/oak/segment/azure/tool/SegmentCopyTestBase.java @@ -67,7 +67,6 @@ import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveEntry; import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveManager; import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveReader; import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentNodeStorePersistence; -import org.apache.jackrabbit.oak.segment.spi.persistence.RepositoryLock; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; import org.apache.jackrabbit.oak.spi.commit.EmptyHook; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; @@ -102,8 +101,6 @@ public abstract class SegmentCopyTestBase { SegmentNodeStorePersistence srcPersistence = getSrcPersistence(); SegmentNodeStorePersistence destPersistence = getDestPersistence(); - RepositoryLock destRepositoryLock = destPersistence.lockRepository(); - String srcPathOrUri = getSrcPathOrUri(); String destPathOrUri = getDestPathOrUri(); @@ -123,8 +120,6 @@ public abstract class SegmentCopyTestBase { checkJournal(srcPersistence, destPersistence); checkGCJournal(srcPersistence, destPersistence); checkManifest(srcPersistence, destPersistence); - - destRepositoryLock.unlock(); } private int runSegmentCopy(SegmentNodeStorePersistence srcPersistence, SegmentNodeStorePersistence destPersistence,