TEZ-4057: Fix Unsorted broadcast shuffle umasks (Eric Wohlstadter, reviewed by Gopal V)
Signed-off-by: Gopal V <gopalv@apache.org>
diff --git a/tez-runtime-library/src/main/java/org/apache/tez/runtime/library/common/writers/UnorderedPartitionedKVWriter.java b/tez-runtime-library/src/main/java/org/apache/tez/runtime/library/common/writers/UnorderedPartitionedKVWriter.java
index 0486ddc..29478dc 100644
--- a/tez-runtime-library/src/main/java/org/apache/tez/runtime/library/common/writers/UnorderedPartitionedKVWriter.java
+++ b/tez-runtime-library/src/main/java/org/apache/tez/runtime/library/common/writers/UnorderedPartitionedKVWriter.java
@@ -281,6 +281,9 @@
skipBuffers = true;
writer = new IFile.Writer(conf, rfs, finalOutPath, keyClass, valClass,
codec, outputRecordsCounter, outputRecordBytesCounter);
+ if (!SPILL_FILE_PERMS.equals(SPILL_FILE_PERMS.applyUMask(FsPermission.getUMask(conf)))) {
+ rfs.setPermission(finalOutPath, SPILL_FILE_PERMS);
+ }
} else {
skipBuffers = false;
writer = null;
diff --git a/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/writers/TestUnorderedPartitionedKVWriter.java b/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/writers/TestUnorderedPartitionedKVWriter.java
index dfd807b..83bde7b 100644
--- a/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/writers/TestUnorderedPartitionedKVWriter.java
+++ b/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/writers/TestUnorderedPartitionedKVWriter.java
@@ -1264,6 +1264,10 @@
assertTrue(localFs.exists(outputFilePath));
assertTrue(localFs.exists(spillFilePath));
+ assertEquals("Incorrect output permissions", (short)0640,
+ localFs.getFileStatus(outputFilePath).getPermission().toShort());
+ assertEquals("Incorrect index permissions", (short)0640,
+ localFs.getFileStatus(spillFilePath).getPermission().toShort());
// verify no intermediate spill files have been left around
synchronized (kvWriter.spillInfoList) {