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 <[email protected]>
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 <[email protected]>
---
.../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,