1
1

Fix for a common race condition when running the Sandia mt_send_recv.cc test.

A segfault would occur in mca_pml_ob1_recv_request_progress() when trying to prepare the convertor for unpacking, because the request's req_proc field was NULL.

Turns out that we weren't setting the req_proc field in the MCA_PML_OB1_CHECK_SPECIFIC_AND_WILD_RECEIVES_FOR_MATCH macro.  Instead of just setting it there I removed the other place req_proc was being set correctly, and instead took care of all the cases at once in mca_pml_ob1_recv_frag_match().

This commit was SVN r12323.
Этот коммит содержится в:
Andrew Friedley 2006-10-26 19:09:39 +00:00
родитель 90be664b9f
Коммит c752502dee

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

@ -228,7 +228,6 @@ void mca_pml_ob1_recv_frag_callback(
if( generic_recv != (mca_pml_ob1_recv_request_t *) \
opal_list_get_end(generic_receives) ) { \
\
generic_recv->req_recv.req_base.req_proc = proc->ompi_proc; \
/* Match made */ \
return_match = generic_recv; \
\
@ -551,6 +550,7 @@ rematch:
/* if match found, process data */
if (match) {
match->req_recv.req_base.req_proc = proc->ompi_proc;
/*
* update delivered sequence number information, if needed.