Right you are -- many thanks for finding the issue.  I just committed a fix to 
the trunk in SVN r28430; I'll CMR it over to v1.7.

On May 1, 2013, at 4:56 AM, Lisandro Dalcin <dalc...@gmail.com> wrote:

> It seems that Mrecv() tries to write on the status arg, even when it
> is STATUS_IGNORE. Looking at the sources (pmrecv.c and pmprobe.c),
> there are some memcheck code paths that access status but do not check
> for STATUS_IGNORE, please review them.
> 
> $ cat tmp.c
> #include <mpi.h>
> 
> int main(int argc, char *argv[])
> {
>  MPI_Message message;
>  MPI_Init(&argc, &argv);
>  message = MPI_MESSAGE_NO_PROC;
>  MPI_Mrecv(NULL, 0, MPI_BYTE, &message, MPI_STATUS_IGNORE);
>  MPI_Finalize();
>  return 0;
> }
> 
> $ mpicc tmp.c
> $ valgrind ./a.out
> ...
> ==17489==
> ==17489== Invalid write of size 8
> ==17489==    at 0x4CA811C: PMPI_Mrecv (pmrecv.c:62)
> ==17489==    by 0x400816: main (in /tmp/a.out)
> ==17489==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
> ==17489==
> [localhost:17489] *** Process received signal ***
> [localhost:17489] Signal: Segmentation fault (11)
> [localhost:17489] Signal code: Address not mapped (1)
> [localhost:17489] Failing at address: (nil)
> ...
> 
> 
> --
> Lisandro Dalcin
> ---------------
> CIMEC (INTEC/CONICET-UNL)
> Predio CONICET-Santa Fe
> Colectora RN 168 Km 472, Paraje El Pozo
> 3000 Santa Fe, Argentina
> Tel: +54-342-4511594 (ext 1011)
> Tel/Fax: +54-342-4511169
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/devel


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to