You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by mi...@apache.org on 2024/02/16 10:00:34 UTC
(jackrabbit-oak) branch trunk updated: Repository writes in SegmentStoreMigrator blocked when migrating to Azure segment store (#1308)
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 <sm...@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 <mi...@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,