From dad980157da884c7b8ca806babf2877a5fa3885f Mon Sep 17 00:00:00 2001 From: Istvan Toth Date: Thu, 11 Sep 2025 14:41:31 +0200 Subject: [PATCH 1/2] MAPREDUCE-7517 TestPipeApplication hangs with JAVA 17+ --- .../org/apache/hadoop/mapred/pipes/TestPipeApplication.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/pipes/TestPipeApplication.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/pipes/TestPipeApplication.java index 46ac5cacae62a..037d83290f087 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/pipes/TestPipeApplication.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/pipes/TestPipeApplication.java @@ -35,6 +35,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.concurrent.TimeUnit; import org.apache.hadoop.fs.CommonConfigurationKeys; import org.apache.hadoop.fs.FileSystem; @@ -69,12 +70,15 @@ import org.apache.hadoop.util.Progressable; import org.apache.hadoop.yarn.security.AMRMTokenIdentifier; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; +import static org.junit.jupiter.api.Timeout.ThreadMode.SEPARATE_THREAD; +@Timeout(value=10, unit = TimeUnit.SECONDS, threadMode = SEPARATE_THREAD) public class TestPipeApplication { private static File workSpace = new File("target", TestPipeApplication.class.getName() + "-workSpace"); @@ -614,7 +618,7 @@ private File getFileCommand(String clazz) throws Exception { if (clazz == null) { os.write(("ls ").getBytes()); } else { - os.write(("java -cp " + classpath + " " + clazz).getBytes()); + os.write((System.getProperty("java.home") + "/bin/java -cp " + classpath + " " + clazz).getBytes()); } os.flush(); os.close(); From 0515e95bb89ef4577fb8132234b302e404b3db17 Mon Sep 17 00:00:00 2001 From: Istvan Toth Date: Thu, 11 Sep 2025 15:05:25 +0200 Subject: [PATCH 2/2] add comment about JRE path --- .../java/org/apache/hadoop/mapred/pipes/TestPipeApplication.java | 1 + 1 file changed, 1 insertion(+) diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/pipes/TestPipeApplication.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/pipes/TestPipeApplication.java index 037d83290f087..3c6cbbe9ea5ea 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/pipes/TestPipeApplication.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/pipes/TestPipeApplication.java @@ -618,6 +618,7 @@ private File getFileCommand(String clazz) throws Exception { if (clazz == null) { os.write(("ls ").getBytes()); } else { + // On Java 8 java.home returns "${JAVA_HOME}/jre", but that's good enough for this test os.write((System.getProperty("java.home") + "/bin/java -cp " + classpath + " " + clazz).getBytes()); } os.flush();