Hi,

note your printf line is missing.
if you printf l_prev, then the valgrind error occurs in all variants

at first glance, it looks like a false positive, and i will investigate it


Cheers,

Gilles

On Sat, Nov 5, 2016 at 7:59 PM, Yvan Fournier <yvan.fourn...@free.fr> wrote:
> Hello,
>
> I have observed what seems to be false positives running under Valgrind when 
> Open MPI is build with --enable-memchecker
> (at least with versions 1.10.4 and 2.0.1).
>
> Attached is a simple test case (extracted from larger code) that sends one 
> int to rank r+1, and receives from rank r-1
> (using MPI_COMM_NULL to handle ranks below 0 or above comm size).
>
> Using:
>
> ~/opt/openmpi-2.0/bin/mpicc -DVARIANT_1 vg_mpi.c
> ~/opt/openmpi-2.0/bin/mpiexec -output-filename vg_log -n 2 valgrind ./a.out
>
> I get the following Valgrind error for rank 1:
>
> ==8382== Invalid read of size 4
> ==8382==    at 0x400A00: main (in /home/yvan/test/a.out)
> ==8382==  Address 0xffefffe70 is on thread 1's stack
> ==8382==  in frame #0, created by main (???:)
>
>
> Using:
>
> ~/opt/openmpi-2.0/bin/mpicc -DVARIANT_2 vg_mpi.c
> ~/opt/openmpi-2.0/bin/mpiexec -output-filename vg_log -n 2 valgrind ./a.out
>
> I get the following Valgrind error for rank 1:
>
> ==8322== Invalid read of size 4
> ==8322==    at 0x400A6C: main (in /home/yvan/test/a.out)
> ==8322==  Address 0xcb6f9a0 is 0 bytes inside a block of size 4 alloc'd
> ==8322==    at 0x4C29BBE: malloc (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==8322==    by 0x400998: main (in /home/yvan/test/a.out)
>
> I get no error for the default variant (no -D_VARIANT...) with either Open 
> MPI 2.0.1, or 1.10.4,
> but de get an error similar to variant 1 on the parent code from which the 
> example was extracted...
>
> is given below. Running under Valgrind's gdb server, for the parent code of 
> variant 1,
> it even seems the value received on rank 1 is uninitialized, then Valgrind 
> complains
> with the given message.
>
> The code fails to work as intended when run under Valgrind when OpenMPI is 
> built with --enable-memchecker,
> while it works fine when run with the same build but not under Valgrind,
> or when run under Valgrind with Open MPI built without memchecker.
>
> I'm running under Arch Linux (whosed packaged Open MPI 1.10.4 is built with 
> memchecker enabled,
> rendering it unusable under Valgrind).
>
> Did anybody else encounter this type of issue, or I does my code contain an 
> obvious mistake that I am missing ?
> I initially though of possible alignment issues, but saw nothing in the 
> standard that requires that,
> and the "malloc"-base variant exhibits the same behavior,while I assume
> alignment to 64-bits for allocated arrays is the default.
>
> Best regards,
>
>   Yvan Fournier
> _______________________________________________
> users mailing list
> users@lists.open-mpi.org
> https://rfd.newmexicoconsortium.org/mailman/listinfo/users
_______________________________________________
users mailing list
users@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/users

Reply via email to