Something is really weird here ...

right after MPI_Recv, if i
if (cstr[0] != 'H') cout << "bad first character" << endl;
then valgrind complains !

i rewrote the program in C, but if i use subroutines for send(), then MPI_Send fail because of a NULL communicator ... if i manually inline send(), then i get the same valgrind error.

i will build ompi from now and see if it helps

Cheers,

Gilles


On 3/3/2016 6:00 PM, Florian Lindner wrote:
Hey,

Am Donnerstag, 3. März 2016, 17:50:59 CET schrieb Gilles Gouaillardet:
Florian,

which distro are you running on ?
I'm running Arch.

if you are not using stock gcc and valgrind, can you tell which version you
are running ?
last but not least, how did you configure openmpi ?
openmpi 1.10.2
https://www.archlinux.org/packages/extra/x86_64/openmpi/
https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/openmpi
    ./configure --prefix=/usr \
                --sysconfdir=/etc/${pkgname} \
                --enable-mpi-fortran=all \
                --libdir=/usr/lib/${pkgname} \
                --with-threads=posix \
                --enable-smp-locks \
                --with-valgrind \
                --enable-memchecker \
                --enable-pretty-print-stacktrace \
                --without-slurm \
                --with-hwloc=/usr \
                --with-libltdl=/usr  \
                FC=/usr/bin/gfortran \
                LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"

There is also a patch applied:
https://projects.archlinux.org/svntogit/packages.git/tree/trunk/system_ltdl.patch?h=packages/openmpi

valgrind 3.11.0
https://www.archlinux.org/packages/extra/x86_64/valgrind/
https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/valgrind
./configure --prefix=/usr --mandir=/usr/share/man --with-mpicc=mpic

gcc 5.3.0
https://www.archlinux.org/packages/core/x86_64/gcc/
https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/gcc
   ${srcdir}/${_basedir}/configure --prefix=/usr \
       --libdir=/usr/lib --libexecdir=/usr/lib \
       --mandir=/usr/share/man --infodir=/usr/share/info \
       --with-bugurl=https://bugs.archlinux.org/ \
       --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \
       --enable-shared --enable-threads=posix --enable-libmpx \
       --with-system-zlib --with-isl --enable-__cxa_atexit \
       --disable-libunwind-exceptions --enable-clocale=gnu \
       --disable-libstdcxx-pch --disable-libssp \
       --enable-gnu-unique-object --enable-linker-build-id \
       --enable-lto --enable-plugin --enable-install-libiberty \
       --with-linker-hash-style=gnu --enable-gnu-indirect-function \
       --disable-multilib --disable-werror \
       --enable-checking=release

   make

The PKGBUILD files I linked to contain the build recipe.

Best and thanks!
Florian


Cheers,

Gilles

On Thursday, March 3, 2016, Florian Lindner <mailingli...@xgm.de> wrote:

I am still getting errors, even with your script.

I will also try to modified build of openmpi that Jeff suggested.

Best,
Florian

% mpicxx -std=c++11 -g -O0 -Wall -Wextra -fno-builtin-strlen
mpi_gilles.cpp && mpirun -n 2 ./a.out
Stringlength = 64
123456789012345678901234567890123456789012345678901234567890123

% LD_PRELOAD=/usr/lib/valgrind/libmpiwrap-amd64-linux.so mpirun -n 2
valgrind ./a.out
==5324== Memcheck, a memory error detector
==5324== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==5324== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright
info
==5324== Command: ./a.out
==5324==
==5325== Memcheck, a memory error detector
==5325== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==5325== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright
info
==5325== Command: ./a.out
==5325==
valgrind MPI wrappers  5324: Active for pid 5324
valgrind MPI wrappers  5324: Try MPIWRAP_DEBUG=help for possible options
valgrind MPI wrappers  5325: Active for pid 5325
valgrind MPI wrappers  5325: Try MPIWRAP_DEBUG=help for possible options
Stringlength = 64
==5325== Invalid read of size 1
==5325==    at 0x4C2D992: strlen (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5325==    by 0x56852D8: length (char_traits.h:267)
==5325==    by 0x56852D8: std::basic_ostream<char, std::char_traits<char>
& std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*) (ostream:562)
==5325==    by 0x408A45: receive() (mpi_gilles.cpp:22)
==5325==    by 0x408B88: main (mpi_gilles.cpp:44)
==5325==  Address 0xffefff800 is on thread 1's stack
==5325==  in frame #2, created by receive() (mpi_gilles.cpp:8)
==5325==
==5325== Invalid read of size 1
==5325==    at 0x4C2D9A4: strlen (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5325==    by 0x56852D8: length (char_traits.h:267)
==5325==    by 0x56852D8: std::basic_ostream<char, std::char_traits<char>
& std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*) (ostream:562)
==5325==    by 0x408A45: receive() (mpi_gilles.cpp:22)
==5325==    by 0x408B88: main (mpi_gilles.cpp:44)
==5325==  Address 0xffefff801 is on thread 1's stack
==5325==  in frame #2, created by receive() (mpi_gilles.cpp:8)
==5325==
==5325== Invalid read of size 1
==5325==    at 0x60A0FF1: _IO_file_xsputn@@GLIBC_2.2.5 (in /usr/lib/
libc-2.23.so)
==5325==    by 0x6096D1A: fwrite (in /usr/lib/libc-2.23.so)
==5325==    by 0x5684F75: sputn (streambuf:451)
==5325==    by 0x5684F75: __ostream_write<char, std::char_traits<char> >
(ostream_insert.h:50)
==5325==    by 0x5684F75: std::basic_ostream<char, std::char_traits<char>
& std::__ostream_insert<char, std::char_traits<char>
(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
(ostream_insert.h:101)
==5325==    by 0x56852E6: std::basic_ostream<char, std::char_traits<char>
& std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*) (ostream:561)
==5325==    by 0x408A45: receive() (mpi_gilles.cpp:22)
==5325==    by 0x408B88: main (mpi_gilles.cpp:44)
==5325==  Address 0xffefff83e is on thread 1's stack
==5325==  in frame #4, created by receive() (mpi_gilles.cpp:8)
==5325==
==5325== Invalid read of size 1
==5325==    at 0x60A100D: _IO_file_xsputn@@GLIBC_2.2.5 (in /usr/lib/
libc-2.23.so)
==5325==    by 0x6096D1A: fwrite (in /usr/lib/libc-2.23.so)
==5325==    by 0x5684F75: sputn (streambuf:451)
==5325==    by 0x5684F75: __ostream_write<char, std::char_traits<char> >
(ostream_insert.h:50)
==5325==    by 0x5684F75: std::basic_ostream<char, std::char_traits<char>
& std::__ostream_insert<char, std::char_traits<char>
(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
(ostream_insert.h:101)
==5325==    by 0x56852E6: std::basic_ostream<char, std::char_traits<char>
& std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*) (ostream:561)
==5325==    by 0x408A45: receive() (mpi_gilles.cpp:22)
==5325==    by 0x408B88: main (mpi_gilles.cpp:44)
==5325==  Address 0xffefff83d is on thread 1's stack
==5325==  in frame #4, created by receive() (mpi_gilles.cpp:8)
==5325==
==5325== Invalid read of size 8
==5325==    at 0x4C2F758: __GI_memcpy (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5325==    by 0x60A0F3A: _IO_file_xsputn@@GLIBC_2.2.5 (in /usr/lib/
libc-2.23.so)
==5325==    by 0x6096D1A: fwrite (in /usr/lib/libc-2.23.so)
==5325==    by 0x5684F75: sputn (streambuf:451)
==5325==    by 0x5684F75: __ostream_write<char, std::char_traits<char> >
(ostream_insert.h:50)
==5325==    by 0x5684F75: std::basic_ostream<char, std::char_traits<char>
& std::__ostream_insert<char, std::char_traits<char>
(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
(ostream_insert.h:101)
==5325==    by 0x56852E6: std::basic_ostream<char, std::char_traits<char>
& std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*) (ostream:561)
==5325==    by 0x408A45: receive() (mpi_gilles.cpp:22)
==5325==    by 0x408B88: main (mpi_gilles.cpp:44)
==5325==  Address 0xffefff800 is on thread 1's stack
==5325==  in frame #5, created by receive() (mpi_gilles.cpp:8)
==5325==
==5325== Invalid read of size 8
==5325==    at 0x4C2F766: __GI_memcpy (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5325==    by 0x60A0F3A: _IO_file_xsputn@@GLIBC_2.2.5 (in /usr/lib/
libc-2.23.so)
==5325==    by 0x6096D1A: fwrite (in /usr/lib/libc-2.23.so)
==5325==    by 0x5684F75: sputn (streambuf:451)
==5325==    by 0x5684F75: __ostream_write<char, std::char_traits<char> >
(ostream_insert.h:50)
==5325==    by 0x5684F75: std::basic_ostream<char, std::char_traits<char>
& std::__ostream_insert<char, std::char_traits<char>
(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
(ostream_insert.h:101)
==5325==    by 0x56852E6: std::basic_ostream<char, std::char_traits<char>
& std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*) (ostream:561)
==5325==    by 0x408A45: receive() (mpi_gilles.cpp:22)
==5325==    by 0x408B88: main (mpi_gilles.cpp:44)
==5325==  Address 0xffefff810 is on thread 1's stack
==5325==  in frame #5, created by receive() (mpi_gilles.cpp:8)
==5325==
==5325== Invalid read of size 2
==5325==    at 0x4C2F7B0: __GI_memcpy (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5325==    by 0x60A0F3A: _IO_file_xsputn@@GLIBC_2.2.5 (in /usr/lib/
libc-2.23.so)
==5325==    by 0x6096D1A: fwrite (in /usr/lib/libc-2.23.so)
==5325==    by 0x5684F75: sputn (streambuf:451)
==5325==    by 0x5684F75: __ostream_write<char, std::char_traits<char> >
(ostream_insert.h:50)
==5325==    by 0x5684F75: std::basic_ostream<char, std::char_traits<char>
& std::__ostream_insert<char, std::char_traits<char>
(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
(ostream_insert.h:101)
==5325==    by 0x56852E6: std::basic_ostream<char, std::char_traits<char>
& std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*) (ostream:561)
==5325==    by 0x408A45: receive() (mpi_gilles.cpp:22)
==5325==    by 0x408B88: main (mpi_gilles.cpp:44)
==5325==  Address 0xffefff838 is on thread 1's stack
==5325==  in frame #5, created by receive() (mpi_gilles.cpp:8)
==5325==
==5325== Invalid read of size 2
==5325==    at 0x4C2F7BE: __GI_memcpy (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5325==    by 0x60A0F3A: _IO_file_xsputn@@GLIBC_2.2.5 (in /usr/lib/
libc-2.23.so)
==5325==    by 0x6096D1A: fwrite (in /usr/lib/libc-2.23.so)
==5325==    by 0x5684F75: sputn (streambuf:451)
==5325==    by 0x5684F75: __ostream_write<char, std::char_traits<char> >
(ostream_insert.h:50)
==5325==    by 0x5684F75: std::basic_ostream<char, std::char_traits<char>
& std::__ostream_insert<char, std::char_traits<char>
(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
(ostream_insert.h:101)
==5325==    by 0x56852E6: std::basic_ostream<char, std::char_traits<char>
& std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*) (ostream:561)
==5325==    by 0x408A45: receive() (mpi_gilles.cpp:22)
==5325==    by 0x408B88: main (mpi_gilles.cpp:44)
==5325==  Address 0xffefff83c is on thread 1's stack
==5325==  in frame #5, created by receive() (mpi_gilles.cpp:8)
==5325==
==5325== Invalid read of size 1
==5325==    at 0x4C2F7E8: __GI_memcpy (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==5325==    by 0x60A0F3A: _IO_file_xsputn@@GLIBC_2.2.5 (in /usr/lib/
libc-2.23.so)
==5325==    by 0x6096D1A: fwrite (in /usr/lib/libc-2.23.so)
==5325==    by 0x5684F75: sputn (streambuf:451)
==5325==    by 0x5684F75: __ostream_write<char, std::char_traits<char> >
(ostream_insert.h:50)
==5325==    by 0x5684F75: std::basic_ostream<char, std::char_traits<char>
& std::__ostream_insert<char, std::char_traits<char>
(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
(ostream_insert.h:101)
==5325==    by 0x56852E6: std::basic_ostream<char, std::char_traits<char>
& std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*) (ostream:561)
==5325==    by 0x408A45: receive() (mpi_gilles.cpp:22)
==5325==    by 0x408B88: main (mpi_gilles.cpp:44)
==5325==  Address 0xffefff83e is on thread 1's stack
==5325==  in frame #5, created by receive() (mpi_gilles.cpp:8)
==5325==
123456789012345678901234567890123456789012345678901234567890123
==5325==
==5325== HEAP SUMMARY:
==5325==     in use at exit: 96,351 bytes in 247 blocks
==5325==   total heap usage: 15,007 allocs, 14,760 frees, 13,362,050 bytes
allocated
==5325==
==5325== LEAK SUMMARY:
==5325==    definitely lost: 9,154 bytes in 39 blocks
==5325==    indirectly lost: 4,008 bytes in 22 blocks
==5325==      possibly lost: 0 bytes in 0 blocks
==5325==    still reachable: 83,189 bytes in 186 blocks
==5325==         suppressed: 0 bytes in 0 blocks
==5325== Rerun with --leak-check=full to see details of leaked memory
==5325==
==5325== For counts of detected and suppressed errors, rerun with: -v
==5325== ERROR SUMMARY: 138 errors from 9 contexts (suppressed: 0 from 0)
==5324==
==5324== HEAP SUMMARY:
==5324==     in use at exit: 96,351 bytes in 247 blocks
==5324==   total heap usage: 15,028 allocs, 14,781 frees, 13,370,286 bytes
allocated
==5324==
==5324== LEAK SUMMARY:
==5324==    definitely lost: 9,154 bytes in 39 blocks
==5324==    indirectly lost: 4,008 bytes in 22 blocks
==5324==      possibly lost: 0 bytes in 0 blocks
==5324==    still reachable: 83,189 bytes in 186 blocks
==5324==         suppressed: 0 bytes in 0 blocks
==5324== Rerun with --leak-check=full to see details of leaked memory
==5324==
==5324== For counts of detected and suppressed errors, rerun with: -v
==5324== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)


Am Donnerstag, 3. März 2016, 14:53:24 CET schrieb Gilles Gouaillardet:
I was unable to reproduce this in my environment.

here is a slightly modified version of your test program.
buffers are 64 bytes aligned and the string (including the null
terminator) is 64 bytes long,
hopefully, strlen will not complain any more.

Cheers,

Gilles

On 3/3/2016 12:51 AM, Florian Lindner wrote:
Hello Gilles,

Am Mittwoch, 2. März 2016, 23:36:56 CET schrieb Gilles Gouaillardet:
Florian,

under the hood, strlen() can use vector instructions, and then read
memory
above the end of the string. valgrind is extremely picky and does warn
about that.
iirc, there are some filter options not to issue these warnings, but I
forgot the details.
Ok, i'll try to research in that direction.

can you try to send "Bonjour" instead of "Halo" and see if the warning
disappear ?
They are still there. But, was this meant as a joke or didn't I
understand?
Best,
Florian

Cheers,

Gilles

PS if it works, do not jump to the erroneous conclusion valgrind likes
French and dislikes German ;-)

On Wednesday, March 2, 2016, Florian Lindner <mailingli...@xgm.de
<javascript:;>> wrote:
Hello,

using OpenMPI 1.10.2 and valgrind 3.11.0 I try to use the code below
to
send a c++ string.

It works fine, but running through valgrind gives a lot of memory
errors,
invalid read of size...

What is going wrong there?

Valgrind output, see below.

Thanks!
Florian


// Compile with: mpicxx -std=c++11 -g -O0 -Wall -Wextra mpi.cpp
#include <mpi.h>
#include <iostream>
#include <string>

using namespace std;


void receive() {
    int length = 0;
    MPI_Status status;
    MPI_Probe(MPI_ANY_SOURCE, 0, MPI_COMM_WORLD, &status);
    MPI_Get_count(&status, MPI_CHAR, &length);
    cout << "Stringlength = " << length << endl;
    char cstr[length];
    MPI_Recv(cstr,
             length,
             MPI_CHAR,
             MPI_ANY_SOURCE,
             MPI_ANY_TAG,
             MPI_COMM_WORLD,
             MPI_STATUS_IGNORE);
    cout << cstr << endl;
}

void send(int rankReceiver) {
    std::string s = "Hallo";
    MPI_Send(s.c_str(),
             s.size()+1,
             MPI_CHAR,
             rankReceiver,
             0,
             MPI_COMM_WORLD);
}

int main(int argc, char* argv[])
{
    int rank;
    MPI_Init(&argc, &argv);

    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
    if (rank == 0)
      send(1);
    else {
      receive();
    }
    MPI_Finalize();
    return 0;
}


VALGRIND OUTPUT

% mpicxx -std=c++11 -g -O0 -Wall -Wextra mpi.cpp && mpirun -n 2
./a.out
Stringlength = 6
Hallo
florian@asaru ~/scratch (git)-[master] %
LD_PRELOAD=/usr/lib/valgrind/libmpiwrap-amd64-linux.so mpirun -n 2
valgrind
./a.out
==9290== Memcheck, a memory error detector
==9290== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et
al.
==9290== Using Valgrind-3.11.0 and LibVEX; rerun with -h for
copyright info
==9290== Command: ./a.out
==9290==
==9291== Memcheck, a memory error detector
==9291== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et
al.
==9291== Using Valgrind-3.11.0 and LibVEX; rerun with -h for
copyright info
==9291== Command: ./a.out
==9291==
valgrind MPI wrappers  9290: Active for pid 9290
valgrind MPI wrappers  9291: Active for pid 9291
valgrind MPI wrappers  9290: Try MPIWRAP_DEBUG=help for possible
options
valgrind MPI wrappers  9291: Try MPIWRAP_DEBUG=help for possible
options
Stringlength = 6
==9291== Invalid read of size 1
==9291==    at 0x4C2DBA2: strlen (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9291==    by 0x56852D8: length (char_traits.h:267)
==9291==    by 0x56852D8: std::basic_ostream<char,
std::char_traits<char>
& std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*) (ostream:562)
==9291==    by 0x408A39: receive() (mpi.cpp:22)
==9291==    by 0x408B61: main (mpi.cpp:46)
==9291==  Address 0xffefff870 is on thread 1's stack
==9291==  in frame #2, created by receive() (mpi.cpp:8)
==9291==
==9291== Invalid read of size 1
==9291==    at 0x4C2DBB4: strlen (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9291==    by 0x56852D8: length (char_traits.h:267)
==9291==    by 0x56852D8: std::basic_ostream<char,
std::char_traits<char>
& std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*) (ostream:562)
==9291==    by 0x408A39: receive() (mpi.cpp:22)
==9291==    by 0x408B61: main (mpi.cpp:46)
==9291==  Address 0xffefff871 is on thread 1's stack
==9291==  in frame #2, created by receive() (mpi.cpp:8)
==9291==
==9291== Invalid read of size 1
==9291==    at 0x60A0FF1: _IO_file_xsputn@@GLIBC_2.2.5 (in /usr/lib/
libc-2.23.so)
==9291==    by 0x6096D1A: fwrite (in /usr/lib/libc-2.23.so)
==9291==    by 0x5684F75: sputn (streambuf:451)
==9291==    by 0x5684F75: __ostream_write<char,
std::char_traits<char> >
(ostream_insert.h:50)
==9291==    by 0x5684F75: std::basic_ostream<char,
std::char_traits<char>
& std::__ostream_insert<char, std::char_traits<char>
(std::basic_ostream<char, std::char_traits<char> >&, char const*,
long)
(ostream_insert.h:101)
==9291==    by 0x56852E6: std::basic_ostream<char,
std::char_traits<char>
& std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*) (ostream:561)
==9291==    by 0x408A39: receive() (mpi.cpp:22)
==9291==    by 0x408B61: main (mpi.cpp:46)
==9291==  Address 0xffefff874 is on thread 1's stack
==9291==  in frame #4, created by receive() (mpi.cpp:8)
==9291==
==9291== Invalid read of size 1
==9291==    at 0x60A100D: _IO_file_xsputn@@GLIBC_2.2.5 (in /usr/lib/
libc-2.23.so)
==9291==    by 0x6096D1A: fwrite (in /usr/lib/libc-2.23.so)
==9291==    by 0x5684F75: sputn (streambuf:451)
==9291==    by 0x5684F75: __ostream_write<char,
std::char_traits<char> >
(ostream_insert.h:50)
==9291==    by 0x5684F75: std::basic_ostream<char,
std::char_traits<char>
& std::__ostream_insert<char, std::char_traits<char>
(std::basic_ostream<char, std::char_traits<char> >&, char const*,
long)
(ostream_insert.h:101)
==9291==    by 0x56852E6: std::basic_ostream<char,
std::char_traits<char>
& std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*) (ostream:561)
==9291==    by 0x408A39: receive() (mpi.cpp:22)
==9291==    by 0x408B61: main (mpi.cpp:46)
==9291==  Address 0xffefff873 is on thread 1's stack
==9291==  in frame #4, created by receive() (mpi.cpp:8)
==9291==
==9291== Invalid read of size 2
==9291==    at 0x4C2F9C0: __GI_memcpy (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9291==    by 0x60A0F3A: _IO_file_xsputn@@GLIBC_2.2.5 (in /usr/lib/
libc-2.23.so)
==9291==    by 0x6096D1A: fwrite (in /usr/lib/libc-2.23.so)
==9291==    by 0x5684F75: sputn (streambuf:451)
==9291==    by 0x5684F75: __ostream_write<char,
std::char_traits<char> >
(ostream_insert.h:50)
==9291==    by 0x5684F75: std::basic_ostream<char,
std::char_traits<char>
& std::__ostream_insert<char, std::char_traits<char>
(std::basic_ostream<char, std::char_traits<char> >&, char const*,
long)
(ostream_insert.h:101)
==9291==    by 0x56852E6: std::basic_ostream<char,
std::char_traits<char>
& std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*) (ostream:561)
==9291==    by 0x408A39: receive() (mpi.cpp:22)
==9291==    by 0x408B61: main (mpi.cpp:46)
==9291==  Address 0xffefff870 is on thread 1's stack
==9291==  in frame #5, created by receive() (mpi.cpp:8)
==9291==
==9291== Invalid read of size 1
==9291==    at 0x4C2F9F8: __GI_memcpy (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9291==    by 0x60A0F3A: _IO_file_xsputn@@GLIBC_2.2.5 (in /usr/lib/
libc-2.23.so)
==9291==    by 0x6096D1A: fwrite (in /usr/lib/libc-2.23.so)
==9291==    by 0x5684F75: sputn (streambuf:451)
==9291==    by 0x5684F75: __ostream_write<char,
std::char_traits<char> >
(ostream_insert.h:50)
==9291==    by 0x5684F75: std::basic_ostream<char,
std::char_traits<char>
& std::__ostream_insert<char, std::char_traits<char>
(std::basic_ostream<char, std::char_traits<char> >&, char const*,
long)
(ostream_insert.h:101)
==9291==    by 0x56852E6: std::basic_ostream<char,
std::char_traits<char>
& std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*) (ostream:561)
==9291==    by 0x408A39: receive() (mpi.cpp:22)
==9291==    by 0x408B61: main (mpi.cpp:46)
==9291==  Address 0xffefff874 is on thread 1's stack
==9291==  in frame #5, created by receive() (mpi.cpp:8)
==9291==
Hallo
==9291==
==9291== HEAP SUMMARY:
==9291==     in use at exit: 96,351 bytes in 247 blocks
==9291==   total heap usage: 15,020 allocs, 14,773 frees, 13,362,383
bytes
allocated
==9291==
==9291== LEAK SUMMARY:
==9291==    definitely lost: 9,154 bytes in 39 blocks
==9291==    indirectly lost: 4,008 bytes in 22 blocks
==9291==      possibly lost: 0 bytes in 0 blocks
==9291==    still reachable: 83,189 bytes in 186 blocks
==9291==         suppressed: 0 bytes in 0 blocks
==9291== Rerun with --leak-check=full to see details of leaked memory
==9291==
==9291== For counts of detected and suppressed errors, rerun with: -v
==9291== ERROR SUMMARY: 14 errors from 6 contexts (suppressed: 0
from 0)
==9290==
==9290== HEAP SUMMARY:
==9290==     in use at exit: 96,351 bytes in 247 blocks
==9290==   total heap usage: 15,018 allocs, 14,771 frees, 13,370,045
bytes
allocated
==9290==
==9290== LEAK SUMMARY:
==9290==    definitely lost: 9,154 bytes in 39 blocks
==9290==    indirectly lost: 4,008 bytes in 22 blocks
==9290==      possibly lost: 0 bytes in 0 blocks
==9290==    still reachable: 83,189 bytes in 186 blocks
==9290==         suppressed: 0 bytes in 0 blocks
==9290== Rerun with --leak-check=full to see details of leaked memory
==9290==
==9290== For counts of detected and suppressed errors, rerun with: -v
==9290== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from
0)
_______________________________________________
users mailing list
us...@open-mpi.org <javascript:;> <javascript:;>
Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
Link to this post:
http://www.open-mpi.org/community/lists/users/2016/03/28617.php

_______________________________________________
users mailing list
us...@open-mpi.org <javascript:;>
Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
Link to this post:
http://www.open-mpi.org/community/lists/users/2016/03/28619.php

_______________________________________________
users mailing list
us...@open-mpi.org <javascript:;>
Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
Link to this post:
http://www.open-mpi.org/community/lists/users/2016/03/28623.php

_______________________________________________
users mailing list
us...@open-mpi.org
Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
Link to this post: 
http://www.open-mpi.org/community/lists/users/2016/03/28626.php


Reply via email to