This is an automated email from the ASF dual-hosted git repository.

ckj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 97b18c5d27 HDDS-8385. Ozone can't process snapshot when service UID > 
2097151 (#4580)
97b18c5d27 is described below

commit 97b18c5d276e2afcdba11eacd6c457bfd99bdcb6
Author: GeorgeJahad <[email protected]>
AuthorDate: Tue Apr 18 23:01:26 2023 -0700

    HDDS-8385. Ozone can't process snapshot when service UID > 2097151 (#4580)
---
 .../apache/hadoop/ozone/container/keyvalue/TarContainerPacker.java   | 4 +++-
 .../hadoop/ozone/container/keyvalue/TestTarContainerPacker.java      | 5 +++--
 .../src/main/java/org/apache/hadoop/hdds/utils/HddsServerUtil.java   | 4 +++-
 .../main/java/org/apache/hadoop/ozone/om/OMDBCheckpointServlet.java  | 2 ++
 .../src/main/java/org/apache/hadoop/ozone/recon/ReconUtils.java      | 1 +
 5 files changed, 12 insertions(+), 4 deletions(-)

diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/TarContainerPacker.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/TarContainerPacker.java
index 77eb825b39..54fa6ae09d 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/TarContainerPacker.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/TarContainerPacker.java
@@ -272,7 +272,9 @@ public class TarContainerPacker
   }
 
   private static ArchiveOutputStream tar(OutputStream output) {
-    return new TarArchiveOutputStream(output);
+    TarArchiveOutputStream os = new TarArchiveOutputStream(output);
+    os.setBigNumberMode(TarArchiveOutputStream.BIGNUMBER_POSIX);
+    return os;
   }
 
   @VisibleForTesting
diff --git 
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestTarContainerPacker.java
 
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestTarContainerPacker.java
index 0b1757155f..ac2554a562 100644
--- 
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestTarContainerPacker.java
+++ 
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestTarContainerPacker.java
@@ -35,7 +35,6 @@ import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.apache.commons.compress.archivers.ArchiveOutputStream;
 import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;
 import org.apache.hadoop.hdds.conf.OzoneConfiguration;
 import org.apache.hadoop.ozone.container.common.impl.ContainerLayoutVersion;
@@ -381,7 +380,9 @@ public class TestTarContainerPacker {
     File targetFile = TEMP_DIR.resolve("container.tar").toFile();
     try (FileOutputStream output = new FileOutputStream(targetFile);
          OutputStream compressed = packer.compress(output);
-         ArchiveOutputStream archive = new TarArchiveOutputStream(compressed)) 
{
+         TarArchiveOutputStream archive =
+             new TarArchiveOutputStream(compressed)) {
+      archive.setBigNumberMode(TarArchiveOutputStream.BIGNUMBER_POSIX);
       TarContainerPacker.includeFile(file, entryName, archive);
     }
     return targetFile;
diff --git 
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/HddsServerUtil.java
 
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/HddsServerUtil.java
index f31ee3174d..201a70e42b 100644
--- 
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/HddsServerUtil.java
+++ 
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/HddsServerUtil.java
@@ -532,10 +532,12 @@ public final class HddsServerUtil {
   public static void writeDBCheckpointToStream(DBCheckpoint checkpoint,
       OutputStream destination)
       throws IOException {
-    try (ArchiveOutputStream archiveOutputStream =
+    try (TarArchiveOutputStream archiveOutputStream =
             new TarArchiveOutputStream(destination);
         Stream<Path> files =
             Files.list(checkpoint.getCheckpointLocation())) {
+      archiveOutputStream.setBigNumberMode(
+          TarArchiveOutputStream.BIGNUMBER_POSIX);
       for (Path path : files.collect(Collectors.toList())) {
         if (path != null) {
           Path fileName = path.getFileName();
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMDBCheckpointServlet.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMDBCheckpointServlet.java
index c234903bcd..0f8e8b7edb 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMDBCheckpointServlet.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMDBCheckpointServlet.java
@@ -129,6 +129,8 @@ public class OMDBCheckpointServlet extends 
DBCheckpointServlet {
             new TarArchiveOutputStream(destination)) {
       archiveOutputStream
           .setLongFileMode(TarArchiveOutputStream.LONGFILE_POSIX);
+      archiveOutputStream
+          .setBigNumberMode(TarArchiveOutputStream.BIGNUMBER_POSIX);
       writeFilesToArchive(copyFiles, hardLinkFiles, archiveOutputStream);
     }
   }
diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/ReconUtils.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/ReconUtils.java
index 7adc78657e..5f7e78a8b7 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/ReconUtils.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/ReconUtils.java
@@ -109,6 +109,7 @@ public class ReconUtils {
       String fileName = sourceDir.concat(".tar");
       fileOutputStream = new FileOutputStream(fileName);
       tarOs = new TarArchiveOutputStream(fileOutputStream);
+      tarOs.setBigNumberMode(TarArchiveOutputStream.BIGNUMBER_POSIX);
       File folder = new File(sourceDir);
       File[] filesInDir = folder.listFiles();
       if (filesInDir != null) {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to