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,

Reply via email to