1
1

Tricky stuff !!! If we post a receive for ZERO bytes and we match it

with something with a different size ... well we segfault. The reason was
that the logic in the PML OB1 call the convertor based on the length
of he data on the wire and not the length of the data that the receiver
expects.

In other words, this is only half a patch :) It fix the problem, but we
still have to make sure the unpack is not called at all when the receiver
expect ZERO bytes.

This commit was SVN r18474.
Этот коммит содержится в:
George Bosilca 2008-05-21 23:31:34 +00:00
родитель 7b3d7dcac4
Коммит 21b940887a

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

@ -260,11 +260,6 @@ static inline int32_t
ompi_convertor_set_position( ompi_convertor_t* convertor,
size_t* position )
{
/*
* If the convertor is already at the correct position we are happy.
*/
if( OPAL_LIKELY((*position) == convertor->bConverted) ) return OMPI_SUCCESS;
/*
* Do not allow the convertor to go outside the data boundaries. This test include
* the check for datatype with size zero as well as for convertors with a count of zero.
@ -276,6 +271,11 @@ ompi_convertor_set_position( ompi_convertor_t* convertor,
return OMPI_SUCCESS;
}
/*
* If the convertor is already at the correct position we are happy.
*/
if( OPAL_LIKELY((*position) == convertor->bConverted) ) return OMPI_SUCCESS;
/* Remove the completed flag if it's already set */
convertor->flags &= ~CONVERTOR_COMPLETED;