Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: [OMPI devel] Bugfix for pending zero byte packages
From: Martin SCHREIBER (martin.schreiber_at_[hidden])
Date: 2013-04-04 16:40:58


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