Skip to content

Commit 1f3bdb5

Browse files
committed
fixes
1 parent cbd3015 commit 1f3bdb5

File tree

5 files changed

+57
-26
lines changed

5 files changed

+57
-26
lines changed

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Daemon.java

+22-10
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
package org.apache.hadoop.util;
2020

2121
import java.util.concurrent.Callable;
22+
import java.util.concurrent.CompletionException;
2223
import java.util.concurrent.ThreadFactory;
2324

2425
import javax.security.auth.Subject;
@@ -55,19 +56,30 @@ public void work() {
5556

5657
@Override
5758
public final void run() {
58-
SubjectUtil.callAs(startSubject, new Callable<Void>() {
59+
try {
60+
SubjectUtil.callAs(startSubject, new Callable<Void>() {
5961

60-
@Override
61-
public Void call() throws Exception {
62-
if (runnable != null) {
63-
runnable.run();
64-
} else {
65-
work();
62+
@Override
63+
public Void call() throws Exception {
64+
if (runnable != null) {
65+
runnable.run();
66+
} else {
67+
work();
68+
}
69+
return null;
6670
}
67-
return null;
71+
72+
});
73+
} catch (CompletionException ce) {
74+
Throwable t = ce.getCause();
75+
if (t instanceof RuntimeException) {
76+
throw (RuntimeException) t;
77+
} else if (t instanceof Error) {
78+
throw (Error) t;
79+
} else {
80+
throw new RuntimeException("Unexpected exception", t);
6881
}
69-
70-
});
82+
}
7183
}
7284

7385
{

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/concurrent/HadoopThread.java

+22-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.apache.hadoop.util.concurrent;
22

33
import java.util.concurrent.Callable;
4+
import java.util.concurrent.CompletionException;
45

56
import javax.security.auth.Subject;
67

@@ -65,18 +66,29 @@ public void work() {
6566

6667
@Override
6768
public final void run() {
68-
SubjectUtil.callAs(startSubject, new Callable<Void>() {
69+
try {
70+
SubjectUtil.callAs(startSubject, new Callable<Void>() {
6971

70-
@Override
71-
public Void call() throws Exception {
72-
if (hadoopTarget != null) {
73-
hadoopTarget.run();
74-
} else {
75-
work();
72+
@Override
73+
public Void call() throws Exception {
74+
if (hadoopTarget != null) {
75+
hadoopTarget.run();
76+
} else {
77+
work();
78+
}
79+
return null;
7680
}
77-
return null;
81+
82+
});
83+
} catch (CompletionException ce) {
84+
Throwable t = ce.getCause();
85+
if (t instanceof RuntimeException) {
86+
throw (RuntimeException) t;
87+
} else if (t instanceof Error) {
88+
throw (Error) t;
89+
} else {
90+
throw new RuntimeException("Unexpected exception", t);
7891
}
79-
80-
});
92+
}
8193
}
8294
}

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/ContainerLaunch.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public class ContainerLaunch implements Callable<Integer> {
123123
private static final String PID_FILE_NAME_FMT = "%s.pid";
124124
static final String EXIT_CODE_FILE_SUFFIX = ".exitcode";
125125

126-
private static final String ADDITIONAL_JDK17_PLUS_OPTIONS =
126+
public static final String ADDITIONAL_JDK17_PLUS_OPTIONS =
127127
"--add-opens=java.base/java.lang=ALL-UNNAMED " +
128128
"--add-exports=java.base/sun.net.dns=ALL-UNNAMED " +
129129
"--add-exports=java.base/sun.net.util=ALL-UNNAMED";

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestLinuxContainerExecutorWithMocks.java

+8-1
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
import org.apache.hadoop.yarn.exceptions.ConfigurationException;
6363
import org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container;
6464
import org.apache.hadoop.yarn.server.nodemanager.containermanager.container.ContainerDiagnosticsUpdateEvent;
65+
import org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch;
6566
import org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.privileged.PrivilegedOperation;
6667
import org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.privileged.PrivilegedOperationException;
6768
import org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.privileged.PrivilegedOperationExecutor;
@@ -311,7 +312,13 @@ public void testStartLocalizer() throws IOException {
311312
.build());
312313

313314
List<String> result=readMockParams();
314-
assertThat(result).hasSize(26);
315+
316+
List<String> extraParams = Arrays.asList(("--add-opens=java.base/java.lang=ALL-UNNAMED " +
317+
"--add-exports=java.base/sun.net.dns=ALL-UNNAMED " +
318+
"--add-exports=java.base/sun.net.util=ALL-UNNAMED").split(" "));
319+
320+
result.removeAll(extraParams);
321+
assertThat(result).size().isGreaterThanOrEqualTo(26);
315322
assertThat(result.get(0)).isEqualTo(YarnConfiguration.
316323
DEFAULT_NM_NONSECURE_MODE_LOCAL_USER);
317324
assertThat(result.get(1)).isEqualTo("test");

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/TestContainerLocalizer.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -751,7 +751,7 @@ public void testAdminOptionsPrecedeUserDefinedJavaOptions() throws Exception {
751751
" userOption1 userOption2");
752752
List<String> javaOpts = localizer.getJavaOpts(conf);
753753

754-
assertEquals(4, javaOpts.size());
754+
assertTrue(javaOpts.size() >= 4);
755755
assertTrue(javaOpts.get(0).equals("adminOption1"));
756756
assertTrue(javaOpts.get(1).equals("adminOption2"));
757757
assertTrue(javaOpts.get(2).equals("userOption1"));
@@ -768,7 +768,7 @@ public void testAdminOptionsPrecedeDefaultUserOptions() throws Exception {
768768
"adminOption1 adminOption2");
769769
List<String> javaOpts = localizer.getJavaOpts(conf);
770770

771-
assertEquals(3, javaOpts.size());
771+
assertTrue(javaOpts.size() >= 3);
772772
assertTrue(javaOpts.get(0).equals("adminOption1"));
773773
assertTrue(javaOpts.get(1).equals("adminOption2"));
774774
assertTrue(javaOpts.get(2).equals("-Xmx256m"));
@@ -784,7 +784,7 @@ public void testUserOptionsWhenAdminOptionsAreNotDefined() throws Exception {
784784
"userOption1 userOption2");
785785
List<String> javaOpts = localizer.getJavaOpts(conf);
786786

787-
assertEquals(2, javaOpts.size());
787+
assertTrue(javaOpts.size() >= 2);
788788
assertTrue(javaOpts.get(0).equals("userOption1"));
789789
assertTrue(javaOpts.get(1).equals("userOption2"));
790790
}
@@ -797,7 +797,7 @@ public void testJavaOptionsWithoutDefinedAdminOrUserOptions() throws Exception {
797797
Configuration conf = new Configuration();
798798
List<String> javaOpts = localizer.getJavaOpts(conf);
799799

800-
assertEquals(1, javaOpts.size());
800+
assertTrue(javaOpts.size() >= 1);
801801
assertTrue(javaOpts.get(0).equals("-Xmx256m"));
802802
}
803803
}

0 commit comments

Comments
 (0)