[ 
https://issues.apache.org/jira/browse/HADOOP-19526?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17947152#comment-17947152
 ] 

ASF GitHub Bot commented on HADOOP-19526:
-----------------------------------------

cnauroth commented on code in PR #7567:
URL: https://github.com/apache/hadoop/pull/7567#discussion_r2059255067


##########
hadoop-tools/hadoop-distcp/src/test/java/org/apache/hadoop/tools/TestExternalCall.java:
##########
@@ -65,8 +66,12 @@ private static Configuration getConf() {
   @BeforeEach
   public void setup() {
 
-    securityManager = System.getSecurityManager();
-    System.setSecurityManager(new NoExitSecurityManager());
+    try {
+      securityManager = System.getSecurityManager();
+      System.setSecurityManager(new NoExitSecurityManager());
+    } catch (UnsupportedOperationException e) {
+      assumeTrue(false, "Test is skipped because SecurityManager cannot be set 
(JEP 411)");

Review Comment:
   Thank you for fixing this, @stoty . It seems like this will result in loss 
of test coverage on JDK 24. A couple of potential ideas:
   
   1. I think only `testCleanupTestViaToolRunner` actually depends on modifying 
security manager to catch a `System.exit` call. We could push the `assumeTrue` 
and all of the security manager modification down into just that method, and 
the other test methods could continue running on JDK 24.
   2. We could potentially modify `DistCp` so that instead of directly calling 
`System.exit`, it holds a `Consumer<Integer> exitHandler`. By default, this is 
set to `System::exit`, but we also have a `VisibleForTesting` constructor that 
accepts an override. Tests can override it to assert on the exit code instead 
of a real `System.exit`. This technique would totally remove the security 
manager dependency so that all tests can run across all JDK versions.
   
   Let me know your thoughts. Thanks!





> Skip tests in Hadoop common that depend on SecurityManager if the JVM does 
> not support it
> -----------------------------------------------------------------------------------------
>
>                 Key: HADOOP-19526
>                 URL: https://issues.apache.org/jira/browse/HADOOP-19526
>             Project: Hadoop Common
>          Issue Type: Improvement
>            Reporter: Istvan Toth
>            Assignee: Istvan Toth
>            Priority: Major
>              Labels: pull-request-available
>
> TestExternalCall fails when SecurityManager cannot be set, we need to skip it 
> on thos JVMs.
> TestGridmixSubmission has already been rewritten to use ExitUtil, we just 
> need to remove the leftover SecurityManager calls.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-issues-h...@hadoop.apache.org

Reply via email to