diff --git a/ompi/mca/pml/base/pml_base_bsend.c b/ompi/mca/pml/base/pml_base_bsend.c index 5ca9395abe..4ddbb66a5d 100644 --- a/ompi/mca/pml/base/pml_base_bsend.c +++ b/ompi/mca/pml/base/pml_base_bsend.c @@ -223,6 +223,13 @@ int mca_pml_base_bsend_request_start(ompi_request_t* request) sendreq->req_count = sendreq->req_bytes_packed; sendreq->req_datatype = MPI_BYTE; + /* In case we reuse an old request recreate the correct convertor, the one + * using the user buffers. Otherwise at the end of this function we replace + * it with a convertor using the allocator buffer !!! + */ + ompi_convertor_prepare_for_send( &sendreq->req_convertor, sendreq->req_datatype, + sendreq->req_count, sendreq->req_base.req_addr ); + /* increment count of pending requests */ mca_pml_bsend_count++; OPAL_THREAD_UNLOCK(&mca_pml_bsend_mutex);