1
1

Don't segfault if we receive a fragment for a non existing communicator.

Instead, drop it by now.

This commit was SVN r16105.
Этот коммит содержится в:
George Bosilca 2007-09-12 17:52:02 +00:00
родитель c755938eb0
Коммит 05ae27c68b

Просмотреть файл

@ -469,8 +469,19 @@ static int mca_pml_ob1_recv_frag_match( mca_btl_base_module_t *btl,
int rc;
/* communicator pointer */
comm_ptr=ompi_comm_lookup(hdr->hdr_ctx);
comm=(mca_pml_ob1_comm_t *)comm_ptr->c_pml_comm;
comm_ptr = ompi_comm_lookup(hdr->hdr_ctx);
if( OPAL_UNLIKELY(NULL == comm_ptr) ) {
/* This is a special case. A message for a not yet exiting communicator can
* happens, but right now we segfault. Instead, and until we find a better
* solution, just drop the message. However, in the near future we should
* store this fragment in a global list, and deliver it to the right
* communicator once it get created.
*/
opal_output( 0, "Dropped message for the non-existing communicator %d\n",
(int)hdr->hdr_ctx );
return OMPI_SUCCESS;
}
comm = (mca_pml_ob1_comm_t *)comm_ptr->c_pml_comm;
/* source sequence number */
frag_msg_seq = hdr->hdr_seq;