Dear developers,

it seems that for messages of size 0 no convertor is created due to
optimizations issues.
However, this is not considered in MCA_PML_OB1_SEND_REQUEST_RESET when
processing pending send requests.

A fix (or something similar) for this issue is provided below. Please be
aware, that I'm not an OpenMPI developer and that e. g. req_bytes_packed
is the wrong field to check.

If you have any questions or if you need any further information (stack
trace, etc.), don't hesitate to ask!

Best regards & thank you for developing OpenMPI,

Martin






affected versions:
        openmpi-1.7
        openmpi-1.6.4
        and probably versions below


file which needs a fix:
        pml_ob1_sendreq.h


Inserting the if statement of the code-snippet below fixes the problem for me.


#define MCA_PML_OB1_SEND_REQUEST_RESET(sendreq)                                \
        /* check for zero-package since convertor is not created for zero-size 
packages */      \
        if (sendreq->req_send.req_bytes_packed > 0)                             
   \
    {                                                                          \
        size_t _position = 0;                                                  \
        opal_convertor_set_position(&sendreq->req_send.req_base.req_convertor, \
                                    &_position);                               \
        assert( 0 == _position );                                              \
    }

-- 
Dipl.-Inf. Martin Schreiber
Chair of Scientific Computing, http://www5.in.tum.de
Technische Universität München, Fakultät für Informatik
Boltzmannstr. 3 / Zi. 2.5.57, 85748 Garching, Germany
Phone: +49-89-289-18630, Fax: +49-89-289-18607

Reply via email to