[mpich2-commits] r4190 - in mpich2/trunk/src/pm/hydra: launcher/mpiexec pm/pmiserv utils/env

balaji at mcs.anl.gov balaji at mcs.anl.gov
Wed Mar 25 21:36:11 CDT 2009


Author: balaji
Date: 2009-03-25 21:36:11 -0500 (Wed, 25 Mar 2009)
New Revision: 4190

Modified:
   mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c
   mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_serv_launch.c
   mpich2/trunk/src/pm/hydra/utils/env/env.c
Log:
This includes two bug fixes to the environment passing code:

1. This removes a duplicate copy of the environment that was being passed
to the proxy.

2. This fixes an assumption that the environment value is always non-NULL.


Modified: mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c
===================================================================
--- mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c	2009-03-25 23:48:38 UTC (rev 4189)
+++ mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c	2009-03-26 02:36:11 UTC (rev 4190)
@@ -306,24 +306,22 @@
     if (handle.binding == HYD_BIND_UNSET)
         handle.binding = HYD_BIND_NONE;
 
-    /* Global environment setting */
+    /* Check environment for setting the global environment */
     tmp = getenv("HYDRA_ENV");
     if (handle.prop == HYD_ENV_PROP_UNSET && tmp)
         handle.prop = !strcmp(tmp, "all") ? HYD_ENV_PROP_ALL : HYD_ENV_PROP_NONE;
+
+    /* If nothing is set for the global environment, set it to the default */
     if (handle.prop == HYD_ENV_PROP_UNSET)
         handle.prop = HYD_ENV_PROP_ALL;
 
-    /* Check if any individual app has an environment preference */
+    /* Make sure local executable is set */
     for (exec_info = handle.exec_info_list; exec_info; exec_info = exec_info->next) {
         if (exec_info->exec[0] == NULL)
             HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "no executable specified\n");
 
         if (exec_info->exec_proc_count == 0)
             exec_info->exec_proc_count = 1;
-
-        /* If no local env property is set, use the global one */
-        if (exec_info->prop == HYD_ENV_PROP_UNSET)
-            exec_info->prop = handle.prop;
     }
 
     if (handle.proxy_port == -1)

Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_serv_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_serv_launch.c	2009-03-25 23:48:38 UTC (rev 4189)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmi_serv_launch.c	2009-03-26 02:36:11 UTC (rev 4190)
@@ -170,7 +170,6 @@
             arg = HYDU_strlist_lastidx(partition->proxy_args);
             partition->proxy_args[arg++] = MPIU_Strdup("--exec-local-env");
             for (i = 0, env = exec->prop_env; env; env = env->next, i++);
-            HYDU_ERR_POP(status, "unable to convert int to string\n");
             partition->proxy_args[arg++] = HYDU_int_to_str(i);
             partition->proxy_args[arg++] = NULL;
             HYDU_list_append_env_to_str(exec->prop_env, partition->proxy_args);

Modified: mpich2/trunk/src/pm/hydra/utils/env/env.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/env/env.c	2009-03-25 23:48:38 UTC (rev 4189)
+++ mpich2/trunk/src/pm/hydra/utils/env/env.c	2009-03-26 02:36:11 UTC (rev 4190)
@@ -319,7 +319,7 @@
     i = 0;
     tmp[i++] = MPIU_Strdup(env->env_name);
     tmp[i++] = MPIU_Strdup("=");
-    tmp[i++] = MPIU_Strdup(env->env_value);
+    tmp[i++] = env->env_value ? MPIU_Strdup(env->env_value) : MPIU_Strdup("");
     tmp[i++] = NULL;
     status = HYDU_str_alloc_and_join(tmp, &str);
     HYDU_ERR_POP(status, "unable to join strings\n");



More information about the mpich2-commits mailing list