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
> >
> 

Reply via email to