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