[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