[mpich2-commits] r7701 - in mpich2/trunk/src/mpid/ch3: channels/nemesis/nemesis/netmod/tcp src

buntinas at mcs.anl.gov buntinas at mcs.anl.gov
Wed Jan 12 15:22:11 CST 2011


Author: buntinas
Date: 2011-01-12 15:22:11 -0600 (Wed, 12 Jan 2011)
New Revision: 7701

Modified:
   mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/socksm.c
   mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/tcp_init.c
   mpich2/trunk/src/mpid/ch3/src/ch3u_handle_connection.c
Log:
Bugfixes in FT code.  Even if the connection hasn't been established
yet, we still may have posted recvs; we need to look for those in a
failure case.  Similarly, we may have sends in the send queue even if
the connection hasn't been fully established.



Modified: mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/socksm.c
===================================================================
--- mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/socksm.c	2011-01-12 18:33:00 UTC (rev 7700)
+++ mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/socksm.c	2011-01-12 21:22:11 UTC (rev 7701)
@@ -1941,8 +1941,6 @@
 
     mpi_errno = MPID_nem_tcp_error_out_send_queue(vc, req_errno);
     if (mpi_errno) MPIU_ERR_POP(mpi_errno);
-    
-    /* complete pending send/recv requests with error ??? */
 
  fn_exit:
     MPIDI_FUNC_EXIT(MPID_STATE_ERROR_CLOSED);

Modified: mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/tcp_init.c
===================================================================
--- mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/tcp_init.c	2011-01-12 18:33:00 UTC (rev 7700)
+++ mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/tcp_init.c	2011-01-12 21:22:11 UTC (rev 7701)
@@ -562,6 +562,7 @@
 int MPID_nem_tcp_vc_terminate (MPIDI_VC_t *vc)
 {
     int mpi_errno = MPI_SUCCESS;
+    int req_errno = MPI_SUCCESS;
     MPIDI_STATE_DECL(MPID_NEM_TCP_VC_TERMINATE);
 
     MPIDI_FUNC_ENTER(MPID_NEM_TCP_VC_TERMINATE);
@@ -569,6 +570,10 @@
     mpi_errno = MPID_nem_tcp_cleanup(vc);
     if (mpi_errno) MPIU_ERR_POP(mpi_errno);
     
+    MPIU_ERR_SET1(req_errno, MPI_ERR_OTHER, "**comm_fail", "**comm_fail %d", vc->pg_rank);
+    mpi_errno = MPID_nem_tcp_error_out_send_queue(vc, req_errno);
+    if (mpi_errno) MPIU_ERR_POP(mpi_errno);
+
  fn_exit:
     MPIDI_FUNC_EXIT(MPID_NEM_TCP_VC_TERMINATE);
     return mpi_errno;

Modified: mpich2/trunk/src/mpid/ch3/src/ch3u_handle_connection.c
===================================================================
--- mpich2/trunk/src/mpid/ch3/src/ch3u_handle_connection.c	2011-01-12 18:33:00 UTC (rev 7700)
+++ mpich2/trunk/src/mpid/ch3/src/ch3u_handle_connection.c	2011-01-12 21:22:11 UTC (rev 7701)
@@ -71,7 +71,8 @@
                        This can happen if a failed process was
                        detected before the process used the VC. */
                     MPIU_DBG_MSG(CH3_DISCONNECT,TYPICAL, "VC terminated before it was activated.  We probably got a failed"
-                                 "process notification.");
+                                 " process notification.");
+                    MPIDI_CH3U_Complete_posted_with_error(vc);
                     ++MPIDI_Failed_vc_count;
                     MPIDI_CHANGE_VC_STATE(vc, MORIBUND);
 



More information about the mpich2-commits mailing list