Browse Source

YARN-10391. --module-gpu functionality is broken in container-executor. Contributed by Eric Badger

(cherry picked from commit 4a7deae478947c2ec250854ce6ecdf710d7637c3)
Jim Brennan 4 years ago
parent
commit
392a62278a

+ 7 - 6
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/main.c

@@ -658,15 +658,15 @@ int main(int argc, char **argv) {
   assert_valid_setup(argv[0]);
 
   int operation = -1;
-  int ret = validate_arguments(argc, argv, &operation);
+  int exit_code = 0;
+  exit_code = validate_arguments(argc, argv, &operation);
 
-  if (ret != 0) {
-    flush_and_close_log_files();
-    return ret;
+  if (exit_code != 0 || operation == -1) {
+    // if operation is still -1, the work was done in validate_arguments
+    // e.g. for --module-gpu
+    goto cleanup;
   }
 
-  int exit_code = 0;
-
   switch (operation) {
   case CHECK_SETUP:
     //we already did this
@@ -831,6 +831,7 @@ int main(int argc, char **argv) {
     break;
   }
 
+cleanup:
   if (exit_code) {
     fprintf(ERRORFILE, "Nonzero exit code=%d, error message='%s'\n", exit_code,
             get_error_message(exit_code));