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