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/f5e5022e Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/f5e5022e Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/f5e5022e Branch: refs/heads/HDFS-7285 Commit: f5e5022ee0470731138e5d00d00c314b9c2a5809 Parents: c743e89 Author: Zhe Zhang <z...@apache.org> Authored: Mon Apr 13 11:15:02 2015 -0700 Committer: Zhe Zhang <z...@apache.org> Committed: Mon May 4 10:13:24 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/f5e5022e/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 a3ae795..5232d64 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 @@ -8170,11 +8170,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(); @@ -8188,11 +8196,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); } /**