[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