This is an automated email from the ASF dual-hosted git repository. williamsong pushed a commit to branch snapshot-branch2 in repository https://gitbox.apache.org/repos/asf/ratis.git
commit 55abd1de57e552af5db9bdd17072f3ba0b2be532 Author: William Song <[email protected]> AuthorDate: Thu Jan 5 13:45:42 2023 +0800 cherry-pick merge --- pom.xml | 2 +- ratis-assembly/pom.xml | 2 +- ratis-client/pom.xml | 2 +- ratis-common/pom.xml | 2 +- .../src/main/java/org/apache/ratis/util/FileUtils.java | 15 +++++++++++++++ ratis-docs/pom.xml | 2 +- ratis-examples/pom.xml | 2 +- ratis-experiments/pom.xml | 2 +- ratis-grpc/pom.xml | 2 +- ratis-metrics/pom.xml | 2 +- ratis-netty/pom.xml | 2 +- ratis-proto/pom.xml | 2 +- ratis-replicated-map/pom.xml | 2 +- ratis-resource-bundle/pom.xml | 2 +- ratis-server-api/pom.xml | 2 +- ratis-server/pom.xml | 2 +- .../java/org/apache/ratis/server/impl/ServerState.java | 2 +- .../org/apache/ratis/server/storage/SnapshotManager.java | 8 +++----- ratis-shell/pom.xml | 2 +- ratis-test/pom.xml | 2 +- ratis-tools/pom.xml | 2 +- 21 files changed, 37 insertions(+), 24 deletions(-) diff --git a/pom.xml b/pom.xml index a63135097..d3a9efe29 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> <name>Apache Ratis</name> <packaging>pom</packaging> <description> diff --git a/ratis-assembly/pom.xml b/ratis-assembly/pom.xml index 19eee578b..da903b2c8 100644 --- a/ratis-assembly/pom.xml +++ b/ratis-assembly/pom.xml @@ -17,7 +17,7 @@ <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> </parent> <artifactId>ratis-assembly</artifactId> diff --git a/ratis-client/pom.xml b/ratis-client/pom.xml index d307a1561..ef241bd63 100644 --- a/ratis-client/pom.xml +++ b/ratis-client/pom.xml @@ -17,7 +17,7 @@ <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> </parent> <artifactId>ratis-client</artifactId> diff --git a/ratis-common/pom.xml b/ratis-common/pom.xml index 3f2f7ddba..a0de8f3f3 100644 --- a/ratis-common/pom.xml +++ b/ratis-common/pom.xml @@ -17,7 +17,7 @@ <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> </parent> <artifactId>ratis-common</artifactId> diff --git a/ratis-common/src/main/java/org/apache/ratis/util/FileUtils.java b/ratis-common/src/main/java/org/apache/ratis/util/FileUtils.java index 40a51e9f9..e50edaf6d 100644 --- a/ratis-common/src/main/java/org/apache/ratis/util/FileUtils.java +++ b/ratis-common/src/main/java/org/apache/ratis/util/FileUtils.java @@ -71,6 +71,21 @@ public interface FileUtils { () -> "Files.createDirectories " + dir); } + static void createDirectoriesDeleteExistingNonDirectory(File dir) throws IOException { + createDirectoriesDeleteExistingNonDirectory(dir.toPath()); + } + + static void createDirectoriesDeleteExistingNonDirectory(Path dir) throws IOException { + try { + createDirectories(dir); + } catch (FileAlreadyExistsException e) { + LOG.warn("Failed to create directory " + dir + + " since it already exists as a non-directory. Trying to delete it ...", e); + delete(dir); + createDirectories(dir); + } + } + static void move(File src, File dst) throws IOException { move(src.toPath(), dst.toPath()); } diff --git a/ratis-docs/pom.xml b/ratis-docs/pom.xml index 380fa9ac4..2d6838f0a 100644 --- a/ratis-docs/pom.xml +++ b/ratis-docs/pom.xml @@ -20,7 +20,7 @@ https://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> </parent> <artifactId>ratis-docs</artifactId> diff --git a/ratis-examples/pom.xml b/ratis-examples/pom.xml index 33f4b4ae8..87b0b9dd6 100644 --- a/ratis-examples/pom.xml +++ b/ratis-examples/pom.xml @@ -17,7 +17,7 @@ <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> </parent> <artifactId>ratis-examples</artifactId> diff --git a/ratis-experiments/pom.xml b/ratis-experiments/pom.xml index c768243c7..72b929146 100644 --- a/ratis-experiments/pom.xml +++ b/ratis-experiments/pom.xml @@ -17,7 +17,7 @@ <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> </parent> <artifactId>ratis-experiments</artifactId> diff --git a/ratis-grpc/pom.xml b/ratis-grpc/pom.xml index 9b37a73bd..d48afafa6 100644 --- a/ratis-grpc/pom.xml +++ b/ratis-grpc/pom.xml @@ -17,7 +17,7 @@ <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> </parent> <artifactId>ratis-grpc</artifactId> diff --git a/ratis-metrics/pom.xml b/ratis-metrics/pom.xml index 7098409b7..c9347b02b 100644 --- a/ratis-metrics/pom.xml +++ b/ratis-metrics/pom.xml @@ -18,7 +18,7 @@ <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> </parent> <artifactId>ratis-metrics</artifactId> diff --git a/ratis-netty/pom.xml b/ratis-netty/pom.xml index af5175694..b64790815 100644 --- a/ratis-netty/pom.xml +++ b/ratis-netty/pom.xml @@ -17,7 +17,7 @@ <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> </parent> <artifactId>ratis-netty</artifactId> diff --git a/ratis-proto/pom.xml b/ratis-proto/pom.xml index 194c98000..86e9267b0 100644 --- a/ratis-proto/pom.xml +++ b/ratis-proto/pom.xml @@ -17,7 +17,7 @@ <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> </parent> <artifactId>ratis-proto</artifactId> diff --git a/ratis-replicated-map/pom.xml b/ratis-replicated-map/pom.xml index 8183cf7d1..7fa5e858e 100644 --- a/ratis-replicated-map/pom.xml +++ b/ratis-replicated-map/pom.xml @@ -17,7 +17,7 @@ <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> </parent> <artifactId>ratis-replicated-map</artifactId> diff --git a/ratis-resource-bundle/pom.xml b/ratis-resource-bundle/pom.xml index 4e5b15e95..e45ecda4d 100644 --- a/ratis-resource-bundle/pom.xml +++ b/ratis-resource-bundle/pom.xml @@ -23,7 +23,7 @@ <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> <relativePath>..</relativePath> </parent> diff --git a/ratis-server-api/pom.xml b/ratis-server-api/pom.xml index 36a5f6b37..d0551d882 100644 --- a/ratis-server-api/pom.xml +++ b/ratis-server-api/pom.xml @@ -17,7 +17,7 @@ <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> </parent> <artifactId>ratis-server-api</artifactId> diff --git a/ratis-server/pom.xml b/ratis-server/pom.xml index 3fcaa39ef..2df77cdc3 100644 --- a/ratis-server/pom.xml +++ b/ratis-server/pom.xml @@ -17,7 +17,7 @@ <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> </parent> <artifactId>ratis-server</artifactId> diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/ServerState.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/ServerState.java index b1422db4f..820f2a9f0 100644 --- a/ratis-server/src/main/java/org/apache/ratis/server/impl/ServerState.java +++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/ServerState.java @@ -478,7 +478,7 @@ class ServerState implements Closeable { // TODO: verify that we need to install the snapshot StateMachine sm = server.getStateMachine(); sm.pause(); // pause the SM to prepare for install snapshot - snapshotManager.installSnapshot(sm, request); + snapshotManager.installSnapshot(request, sm); updateInstalledSnapshotIndex(TermIndex.valueOf(request.getSnapshotChunk().getTermIndex())); } diff --git a/ratis-server/src/main/java/org/apache/ratis/server/storage/SnapshotManager.java b/ratis-server/src/main/java/org/apache/ratis/server/storage/SnapshotManager.java index 294f0a205..2ce8f9143 100644 --- a/ratis-server/src/main/java/org/apache/ratis/server/storage/SnapshotManager.java +++ b/ratis-server/src/main/java/org/apache/ratis/server/storage/SnapshotManager.java @@ -77,10 +77,8 @@ public class SnapshotManager { c -> smDir.relativize(new File(dir.getRoot(), c.getFilename()).toPath()).toString(); } - public void installSnapshot(StateMachine stateMachine, - InstallSnapshotRequestProto request) throws IOException { - final InstallSnapshotRequestProto.SnapshotChunkProto snapshotChunkRequest = - request.getSnapshotChunk(); + public void installSnapshot(InstallSnapshotRequestProto request, StateMachine stateMachine) throws IOException { + final InstallSnapshotRequestProto.SnapshotChunkProto snapshotChunkRequest = request.getSnapshotChunk(); final long lastIncludedIndex = snapshotChunkRequest.getTermIndex().getIndex(); // create a unique temporary directory @@ -103,7 +101,7 @@ public class SnapshotManager { } final File tmpSnapshotFile = new File(tmpDir, getRelativePath.apply(chunk)); - FileUtils.createDirectories(tmpSnapshotFile); + FileUtils.createDirectoriesDeleteExistingNonDirectory(tmpSnapshotFile.getParentFile()); FileOutputStream out = null; try { diff --git a/ratis-shell/pom.xml b/ratis-shell/pom.xml index 32961b958..a1c63b726 100644 --- a/ratis-shell/pom.xml +++ b/ratis-shell/pom.xml @@ -17,7 +17,7 @@ <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> </parent> <artifactId>ratis-shell</artifactId> diff --git a/ratis-test/pom.xml b/ratis-test/pom.xml index 6f438917c..487871dde 100644 --- a/ratis-test/pom.xml +++ b/ratis-test/pom.xml @@ -17,7 +17,7 @@ <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> </parent> <artifactId>ratis-test</artifactId> diff --git a/ratis-tools/pom.xml b/ratis-tools/pom.xml index 3414461e5..2f9ae59a7 100644 --- a/ratis-tools/pom.xml +++ b/ratis-tools/pom.xml @@ -17,7 +17,7 @@ <parent> <artifactId>ratis</artifactId> <groupId>org.apache.ratis</groupId> - <version>2.4.2-SNAPSHOT</version> + <version>2.4.2-SNAPSHOT-1</version> </parent> <artifactId>ratis-tools</artifactId>
