[mpich2-commits] r4053 - in mpich2/trunk/src/pm/hydra: pm/central utils/sock

balaji at mcs.anl.gov balaji at mcs.anl.gov
Fri Mar 13 06:17:39 CDT 2009


Author: balaji
Date: 2009-03-13 06:17:39 -0500 (Fri, 13 Mar 2009)
New Revision: 4053

Modified:
   mpich2/trunk/src/pm/hydra/pm/central/central_cb.c
   mpich2/trunk/src/pm/hydra/pm/central/proxy.c
   mpich2/trunk/src/pm/hydra/utils/sock/sock.c
Log:
Missed a subtle statement on the putenv man page that states that the
argument string becomes a part of the environment, so altering the string
changes the environment. In our case, we were freeing the environment. On
some platforms, this was not causing a problem (probably because free
was being lazy in deallocating), but showed up on octagon.

This should resolve ticket #453.


Modified: mpich2/trunk/src/pm/hydra/pm/central/central_cb.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/central/central_cb.c	2009-03-13 08:53:08 UTC (rev 4052)
+++ mpich2/trunk/src/pm/hydra/pm/central/central_cb.c	2009-03-13 11:17:39 UTC (rev 4053)
@@ -59,14 +59,6 @@
             goto fn_fail;
         }
 
-        /* Make this socket non-blocking as we should not keep waiting
-         * for data on the PMI connections. */
-        status = HYDU_Sock_set_nonblock(accept_fd);
-        if (status != HYD_SUCCESS) {
-            HYDU_Error_printf("sock utils returned error setting socket to non-blocking\n");
-            goto fn_fail;
-        }
-
         status = HYD_DMX_Register_fd(1, &accept_fd, HYD_STDOUT, HYD_PMCD_Central_cb);
         if (status != HYD_SUCCESS) {
             HYDU_Error_printf("demux engine returned error when registering fd\n");

Modified: mpich2/trunk/src/pm/hydra/pm/central/proxy.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/central/proxy.c	2009-03-13 08:53:08 UTC (rev 4052)
+++ mpich2/trunk/src/pm/hydra/pm/central/proxy.c	2009-03-13 11:17:39 UTC (rev 4053)
@@ -82,7 +82,6 @@
             goto fn_fail;
         }
         HYDU_Env_putenv(str);
-        HYDU_FREE(str);
         for (j = 0; tmp[j]; j++)
             HYDU_FREE(tmp[j]);
 

Modified: mpich2/trunk/src/pm/hydra/utils/sock/sock.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/sock/sock.c	2009-03-13 08:53:08 UTC (rev 4052)
+++ mpich2/trunk/src/pm/hydra/utils/sock/sock.c	2009-03-13 11:17:39 UTC (rev 4053)
@@ -109,12 +109,6 @@
         goto fn_fail;
     }
 
-    status = HYDU_Sock_set_cloexec(*listen_fd);
-    if (status != HYD_SUCCESS) {
-        HYDU_Error_printf("unable to set fd %d to close on exec\n", *listen_fd);
-        goto fn_fail;
-    }
-
     /* We asked for any port, so we need to find out which port we
      * actually got. */
     if (*port == 0) {
@@ -167,12 +161,6 @@
         goto fn_fail;
     }
 
-    status = HYDU_Sock_set_cloexec(*fd);
-    if (status != HYD_SUCCESS) {
-        HYDU_Error_printf("unable to set fd %d to close on exec\n", *fd);
-        goto fn_fail;
-    }
-
     /* Not being able to connect is not an error in all cases. So we
      * return an error, but only print a warning message. The upper
      * layer can decide what to do with the return status. */
@@ -204,12 +192,6 @@
         goto fn_fail;
     }
 
-    status = HYDU_Sock_set_cloexec(*fd);
-    if (status != HYD_SUCCESS) {
-        HYDU_Error_printf("unable to set fd %d to close on exec\n", *fd);
-        goto fn_fail;
-    }
-
   fn_exit:
     HYDU_FUNC_EXIT();
     return status;



More information about the mpich2-commits mailing list