HDFS-8114. Erasure coding: Add auditlog FSNamesystem#createErasureCodingZone if this operation fails. Contributed by Rakesh R.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/3297989c Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/3297989c Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/3297989c Branch: refs/heads/HDFS-7285 Commit: 3297989c20dd296222423474d43d955284e5e552 Parents: 5d78eec Author: Zhe Zhang <z...@apache.org> Authored: Mon Apr 13 11:15:02 2015 -0700 Committer: Jing Zhao <ji...@apache.org> Committed: Wed Apr 29 11:15:36 2015 -0700 ---------------------------------------------------------------------- .../hdfs/server/namenode/FSNamesystem.java | 21 ++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/3297989c/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java index 7c1fd16..dc71201 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java @@ -8133,11 +8133,19 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean, SafeModeException, AccessControlException { String src = srcArg; HdfsFileStatus resultingStat = null; - checkSuperuserPrivilege(); - checkOperation(OperationCategory.WRITE); - final byte[][] pathComponents = - FSDirectory.getPathComponentsForReservedPath(src); - FSPermissionChecker pc = getPermissionChecker(); + FSPermissionChecker pc = null; + byte[][] pathComponents = null; + boolean success = false; + try { + checkSuperuserPrivilege(); + checkOperation(OperationCategory.WRITE); + pathComponents = + FSDirectory.getPathComponentsForReservedPath(src); + pc = getPermissionChecker(); + } catch (Throwable e) { + logAuditEvent(success, "createErasureCodingZone", srcArg); + throw e; + } writeLock(); try { checkSuperuserPrivilege(); @@ -8151,11 +8159,12 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean, getEditLog().logSetXAttrs(src, xAttrs, logRetryCache); final INodesInPath iip = dir.getINodesInPath4Write(src, false); resultingStat = dir.getAuditFileInfo(iip); + success = true; } finally { writeUnlock(); } getEditLog().logSync(); - logAuditEvent(true, "createErasureCodingZone", srcArg, null, resultingStat); + logAuditEvent(success, "createErasureCodingZone", srcArg, null, resultingStat); } /**