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

dineshc 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 96d9ed7  HDDS-5240. Fix out of bound exception when loading 
auditparser (#2258)
96d9ed7 is described below

commit 96d9ed788d13d885ce69bdfeca84b1412b19a813
Author: wangzhaohui <[email protected]>
AuthorDate: Wed Jun 2 11:17:03 2021 +0800

    HDDS-5240. Fix out of bound exception when loading auditparser (#2258)
---
 .../S3MultipartUploadCompleteRequest.java          |  3 ++-
 .../hadoop/ozone/audit/parser/TestAuditParser.java | 31 +++++++++++++++++-----
 .../tools/src/test/resources/testaudit.log         |  3 +++
 .../resources/{testaudit.log => testloadaudit.log} | 24 ++++++++++-------
 4 files changed, 45 insertions(+), 16 deletions(-)

diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
index 0b646c2..5056045 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
@@ -336,7 +336,8 @@ public class S3MultipartUploadCompleteRequest extends 
OMKeyRequest {
       }
     }
 
-    auditMap.put(OzoneConsts.MULTIPART_LIST, partsList.toString());
+    auditMap.put(OzoneConsts.MULTIPART_LIST, partsList.toString()
+        .replaceAll("\\n", " "));
 
     // audit log
     auditLog(ozoneManager.getAuditLogger(), buildAuditMessage(
diff --git 
a/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/audit/parser/TestAuditParser.java
 
b/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/audit/parser/TestAuditParser.java
index be7203d..93a421a 100644
--- 
a/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/audit/parser/TestAuditParser.java
+++ 
b/hadoop-ozone/tools/src/test/java/org/apache/hadoop/ozone/audit/parser/TestAuditParser.java
@@ -43,6 +43,8 @@ import java.util.Arrays;
 import java.util.List;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 /**
  * Tests AuditParser.
@@ -60,6 +62,8 @@ public class TestAuditParser {
   private static String dbName;
   private static final String LOGS = TestAuditParser.class
       .getClassLoader().getResource("testaudit.log").getPath();
+  private static final String LOGS1 = TestAuditParser.class
+      .getClassLoader().getResource("testloadaudit.log").getPath();
   /**
    * Creates output directory which will be used by the test-cases.
    * If a test-case needs a separate directory, it has to create a random
@@ -138,8 +142,8 @@ public class TestAuditParser {
         "DELETE_KEY\t3\t\n" +
             "ALLOCATE_KEY\t2\t\n" +
             "COMMIT_KEY\t2\t\n" +
-            "CREATE_BUCKET\t1\t\n" +
-            "CREATE_VOLUME\t1\t\n\n");
+            "CREATE_BUCKET\t2\t\n" +
+            "CREATE_VOLUME\t2\t\n\n");
   }
 
   /**
@@ -148,7 +152,7 @@ public class TestAuditParser {
   @Test
   public void testTemplateTop5Users() {
     String[] args = new String[]{dbName, "template", "top5users"};
-    execute(args, "hadoop\t9\t\n");
+    execute(args, "hadoop\t12\t\n");
   }
 
   /**
@@ -160,9 +164,9 @@ public class TestAuditParser {
     execute(args,
         "2018-09-06 01:57:22\t3\t\n" +
             "2018-09-06 01:58:08\t1\t\n" +
+            "2018-09-06 01:58:09\t1\t\n" +
             "2018-09-06 01:58:18\t1\t\n" +
-            "2018-09-06 01:59:36\t1\t\n" +
-            "2018-09-06 01:59:41\t1\t\n");
+            "2018-09-06 01:59:18\t1\t\n");
   }
 
   /**
@@ -173,7 +177,22 @@ public class TestAuditParser {
     String[] args = new String[]{dbName, "query",
         "select count(*) from audit"};
     execute(args,
-        "9");
+        "12");
+  }
+
+  /**
+   * Test to execute load audit log.
+   */
+  @Test
+  public void testLoadCommand() {
+    String[] args1 = new String[]{dbName, "load", LOGS1};
+    try{
+      execute(args1, "");
+      fail("No exception thrown.");
+    } catch (Exception e) {
+      assertTrue(e.getMessage()
+          .contains("java.lang.ArrayIndexOutOfBoundsException: 5"));
+    }
   }
 
   /**
diff --git a/hadoop-ozone/tools/src/test/resources/testaudit.log 
b/hadoop-ozone/tools/src/test/resources/testaudit.log
index 4c56f35..0c4a792 100644
--- a/hadoop-ozone/tools/src/test/resources/testaudit.log
+++ b/hadoop-ozone/tools/src/test/resources/testaudit.log
@@ -4,12 +4,15 @@
 2018-09-06 01:58:08,035 | ERROR | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=CREATE_VOLUME {admin=hadoop, owner=tom, volume=dcv, creationTime=0, 
quotaInBytes=1152921504606846976} | ret=FAILURE | 
org.apache.hadoop.ozone.om.exceptions.OMException
 at 
org.apache.hadoop.ozone.om.VolumeManagerImpl.createVolume(VolumeManagerImpl.java:137)
 at org.apache.hadoop.ozone.om.OzoneManager.createVolume(OzoneManager.java:469)
+2018-09-06 01:58:09,035 | INFO | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=CREATE_VOLUME {admin=hadoop, owner=tom, volume=ddv, creationTime=0, 
quotaInBytes=1152921504606846976} | ret=SUCCESS |
 2018-09-06 01:58:18,447 | ERROR | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=CREATE_BUCKET {volume=dcv, bucket=dcb, acls=[USER:hadoop:rw, 
GROUP:users:rw], isVersionEnabled=false, storageType=DISK, creationTime=0} | 
ret=FAILURE | org.apache.hadoop.ozone.om.exceptions.OMException: Bucket already 
exist
 at 
org.apache.hadoop.ozone.om.BucketManagerImpl.createBucket(BucketManagerImpl.java:98)
 at org.apache.hadoop.ozone.om.OzoneManager.createBucket(OzoneManager.java:694)
+2018-09-06 01:59:18,447 | INFO | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=CREATE_BUCKET {volume=dcv, bucket=dbb, acls=[USER:hadoop:rw, 
GROUP:users:rw], isVersionEnabled=false, storageType=DISK, creationTime=0} | 
ret=SUCCESS |
 2018-09-06 01:59:36,686 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=DELETE_KEY {volume=dcv, bucket=dcb, key=dck1, dataSize=0, 
replicationType=null, replicationFactor=null, keyLocationInfo=null} | 
ret=SUCCESS |
 2018-09-06 01:59:41,027 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=DELETE_KEY {volume=dcv, bucket=dcb, key=dck2, dataSize=0, 
replicationType=null, replicationFactor=null, keyLocationInfo=null} | 
ret=SUCCESS |
 2018-09-06 01:59:47,169 | ERROR | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=DELETE_KEY {volume=dcv, bucket=dcb, key=dck2, dataSize=0, 
replicationType=null, replicationFactor=null, keyLocationInfo=null} | 
ret=FAILURE | org.apache.hadoop.ozone.om.exceptions.OMException: Key not found
 at org.apache.hadoop.ozone.om.KeyManagerImpl.deleteKey(KeyManagerImpl.java:448)
 at org.apache.hadoop.ozone.om.OzoneManager.deleteKey(OzoneManager.java:892)
 2018-09-06 01:60:22,900 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=ALLOCATE_KEY {volume=vol-8-67105, bucket=bucket-0-68911, key=key-246-29031, 
dataSize=10240, replicationType=STAND_ALONE, replicationFactor=ONE, 
keyLocationInfo=null} | ret=SUCCESS |
+2021-05-18 11:03:21,306 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 
|op=COMPLETE_MULTIPART_UPLOAD {volume=vol-8-67105, 
bucket=bucket-0-68911,key=key-246-29032/chunks/000005, dataSize=0, 
replicationType=RATIS, replicationFactor=ONE,multipartList=[partNumber: 1 
partName:"/vol-8-67105/bucket-0-68911/key-246-29032/chunks/000005106253975577886743"
 , partNumber: 2 partName: 
"/vol-8-67105/bucket-0-68911/key-246-29032/chunks/000005106253975577886745" , 
partNumber: 3 partName: "/vol-8-67105/b [...]
\ No newline at end of file
diff --git a/hadoop-ozone/tools/src/test/resources/testaudit.log 
b/hadoop-ozone/tools/src/test/resources/testloadaudit.log
similarity index 69%
copy from hadoop-ozone/tools/src/test/resources/testaudit.log
copy to hadoop-ozone/tools/src/test/resources/testloadaudit.log
index 4c56f35..aa542b6 100644
--- a/hadoop-ozone/tools/src/test/resources/testaudit.log
+++ b/hadoop-ozone/tools/src/test/resources/testloadaudit.log
@@ -1,15 +1,21 @@
-2018-09-06 01:57:22,996 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=ALLOCATE_KEY {volume=vol-7-67105, bucket=bucket-0-68911, key=key-246-29031, 
dataSize=10240, replicationType=STAND_ALONE, replicationFactor=ONE, 
keyLocationInfo=null} | ret=SUCCESS |
-2018-09-06 01:57:22,997 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=COMMIT_KEY {volume=vol-4-88912, bucket=bucket-0-27678, key=key-241-42688, 
dataSize=10240, replicationType=null, replicationFactor=null, 
keyLocationInfo=[org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo@25bd7387],
 clientID=61987500296} | ret=SUCCESS |
-2018-09-06 01:57:22,997 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=COMMIT_KEY {volume=vol-1-59303, bucket=bucket-0-47510, key=key-248-17213, 
dataSize=10240, replicationType=null, replicationFactor=null, 
keyLocationInfo=[org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo@788f5bea],
 clientID=61990833797} | ret=SUCCESS |
-2018-09-06 01:58:08,035 | ERROR | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=CREATE_VOLUME {admin=hadoop, owner=tom, volume=dcv, creationTime=0, 
quotaInBytes=1152921504606846976} | ret=FAILURE | 
org.apache.hadoop.ozone.om.exceptions.OMException
+2021-05-18 01:57:22,996 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=ALLOCATE_KEY {volume=vol-7-67105, bucket=bucket-0-68911, key=key-246-29031, 
dataSize=10240, replicationType=STAND_ALONE, replicationFactor=ONE, 
keyLocationInfo=null} | ret=SUCCESS |
+2021-05-18 01:57:22,997 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=COMMIT_KEY {volume=vol-4-88912, bucket=bucket-0-27678, key=key-241-42688, 
dataSize=10240, replicationType=null, replicationFactor=null, 
keyLocationInfo=[org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo@25bd7387],
 clientID=61987500296} | ret=SUCCESS |
+2021-05-18 01:57:22,997 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=COMMIT_KEY {volume=vol-1-59303, bucket=bucket-0-47510, key=key-248-17213, 
dataSize=10240, replicationType=null, replicationFactor=null, 
keyLocationInfo=[org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo@788f5bea],
 clientID=61990833797} | ret=SUCCESS |
+2021-05-18 01:58:08,035 | ERROR | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=CREATE_VOLUME {admin=hadoop, owner=tom, volume=dcv, creationTime=0, 
quotaInBytes=1152921504606846976} | ret=FAILURE | 
org.apache.hadoop.ozone.om.exceptions.OMException
 at 
org.apache.hadoop.ozone.om.VolumeManagerImpl.createVolume(VolumeManagerImpl.java:137)
 at org.apache.hadoop.ozone.om.OzoneManager.createVolume(OzoneManager.java:469)
-2018-09-06 01:58:18,447 | ERROR | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=CREATE_BUCKET {volume=dcv, bucket=dcb, acls=[USER:hadoop:rw, 
GROUP:users:rw], isVersionEnabled=false, storageType=DISK, creationTime=0} | 
ret=FAILURE | org.apache.hadoop.ozone.om.exceptions.OMException: Bucket already 
exist
+2021-05-18 01:58:18,447 | ERROR | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=CREATE_BUCKET {volume=dcv, bucket=dcb, acls=[USER:hadoop:rw, 
GROUP:users:rw], isVersionEnabled=false, storageType=DISK, creationTime=0} | 
ret=FAILURE | org.apache.hadoop.ozone.om.exceptions.OMException: Bucket already 
exist
 at 
org.apache.hadoop.ozone.om.BucketManagerImpl.createBucket(BucketManagerImpl.java:98)
 at org.apache.hadoop.ozone.om.OzoneManager.createBucket(OzoneManager.java:694)
-2018-09-06 01:59:36,686 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=DELETE_KEY {volume=dcv, bucket=dcb, key=dck1, dataSize=0, 
replicationType=null, replicationFactor=null, keyLocationInfo=null} | 
ret=SUCCESS |
-2018-09-06 01:59:41,027 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=DELETE_KEY {volume=dcv, bucket=dcb, key=dck2, dataSize=0, 
replicationType=null, replicationFactor=null, keyLocationInfo=null} | 
ret=SUCCESS |
-2018-09-06 01:59:47,169 | ERROR | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=DELETE_KEY {volume=dcv, bucket=dcb, key=dck2, dataSize=0, 
replicationType=null, replicationFactor=null, keyLocationInfo=null} | 
ret=FAILURE | org.apache.hadoop.ozone.om.exceptions.OMException: Key not found
+2021-05-18 01:59:36,686 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=DELETE_KEY {volume=dcv, bucket=dcb, key=dck1, dataSize=0, 
replicationType=null, replicationFactor=null, keyLocationInfo=null} | 
ret=SUCCESS |
+2021-05-18 01:59:41,027 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=DELETE_KEY {volume=dcv, bucket=dcb, key=dck2, dataSize=0, 
replicationType=null, replicationFactor=null, keyLocationInfo=null} | 
ret=SUCCESS |
+2021-05-18 01:59:47,169 | ERROR | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=DELETE_KEY {volume=dcv, bucket=dcb, key=dck2, dataSize=0, 
replicationType=null, replicationFactor=null, keyLocationInfo=null} | 
ret=FAILURE | org.apache.hadoop.ozone.om.exceptions.OMException: Key not found
 at org.apache.hadoop.ozone.om.KeyManagerImpl.deleteKey(KeyManagerImpl.java:448)
 at org.apache.hadoop.ozone.om.OzoneManager.deleteKey(OzoneManager.java:892)
-2018-09-06 01:60:22,900 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=ALLOCATE_KEY {volume=vol-8-67105, bucket=bucket-0-68911, key=key-246-29031, 
dataSize=10240, replicationType=STAND_ALONE, replicationFactor=ONE, 
keyLocationInfo=null} | ret=SUCCESS |
+2021-05-18 01:60:22,900 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 | 
op=ALLOCATE_KEY {volume=vol-8-67105, bucket=bucket-0-68911, key=key-246-29031, 
dataSize=10240, replicationType=STAND_ALONE, replicationFactor=ONE, 
keyLocationInfo=null} | ret=SUCCESS |
+2021-05-18 01:60:22,900 | INFO  | OMAudit | user=hadoop | ip=172.18.0.4 |
+op=COMPLETE_MULTIPART_UPLOAD {volume=vol-8-67105, bucket=bucket-0-68911, 
key=key-246-29031/key-test.jar, dataSize=0, replicationType=RATIS, 
replicationFactor=ONE, multipartList=[partNumber: 1
+partName: 
"/vol-8-67105/bucket-0-68911/key-246-29033/key-test.jar106233237949176650"
+, partNumber: 2
+partName: 
"/vol-8-67105/bucket-0-68911/key-246-29033/key-test.jar106233237955992395"
+]} | ret=SUCCESS |
\ No newline at end of file

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

Reply via email to