|
From: Tyson W. <twh...@gm...> - 2015-09-21 22:05:06
|
I've been working on debugging someone else's MPI code and am getting error messages that seem pretty strange to me ==32704== Memcheck, a memory error detector ==32704== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==32704== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info ... ==32704== Unaddressable byte(s) found during client check request ... ==32704== Address 0x243e6040 is 16,384 bytes inside a block of size 1,048,576 alloc'd ... and ==32704== Invalid read of size 8 ... ==32704== Address 0x22fe2040 is 0 bytes inside a block of size 1,048,576 alloc'd ... and ==32704== Invalid write of size 8 ... ==32704== Address 0x22fe2048 is 8 bytes inside a block of size 1,048,576 alloc'd ... and on and on and on ... Are these valid errors? Everything I found online seemed to indicate that error addresses should not fall entirely inside allocated blocks. Thanks! -Tyson PS: This was run with --track-origins=yes and --leak-check=yes. |
|
From: John R. <jr...@bi...> - 2015-09-21 22:15:01
|
> I've been working on debugging someone else's MPI code and am getting error messages that seem pretty strange to me > > ==32704== Memcheck, a memory error detector > ==32704== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. > ==32704== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info Thank you for including the version number. Next, what is the hardware architecture? > > ... > > ==32704== Unaddressable byte(s) found during client check request > ... > ==32704== Address 0x243e6040 is 16,384 bytes inside a block of size 1,048,576 alloc'd 1,048,576 == (1<<20) so somebody has flubbed the connection between malloc, mmap, and memcheck. > ... > > and > > ==32704== Invalid read of size 8 > ... > ==32704== Address 0x22fe2040 is 0 bytes inside a block of size 1,048,576 alloc'd > ... > > and > > ==32704== Invalid write of size 8 > ... > ==32704== Address 0x22fe2048 is 8 bytes inside a block of size 1,048,576 alloc'd Please submit a bug report. http://valgrind.org/support/bug_reports.html |
|
From: Tom H. <to...@co...> - 2015-09-21 23:05:17
|
On 21/09/15 23:04, Tyson Whitehead wrote: > ==32704== Unaddressable byte(s) found during client check request > ... > ==32704== Address 0x243e6040 is 16,384 bytes inside a block of size 1,048,576 alloc'd > ... > > and > > ==32704== Invalid read of size 8 > ... > ==32704== Address 0x22fe2040 is 0 bytes inside a block of size 1,048,576 alloc'd > ... > > and > > ==32704== Invalid write of size 8 > ... > ==32704== Address 0x22fe2048 is 8 bytes inside a block of size 1,048,576 alloc'd > ... > > and on and on and on ... > > Are these valid errors? Everything I found online seemed to indicate that error addresses should not fall entirely inside allocated blocks. Why should they not be valid? It probably just means somebody has used a client request to mark that address as invalid. Tom -- Tom Hughes (to...@co...) http://compton.nu/ |
|
From: Tyson W. <twh...@gm...> - 2015-09-21 23:17:14
|
I'll check the make sure, but I'm 99.9% certain the code doesn't use any of the valgrind API. I'm nearly certain its first exposure to valgrind was me running it just now to help them track down some memory leak issues. The client request in coming from the MPI wrapper library that ships with valgrind. Thanks! -Tyson On Mon, Sep 21, 2015, 19:05 Tom Hughes <to...@co...> wrote: > On 21/09/15 23:04, Tyson Whitehead wrote: > > > ==32704== Unaddressable byte(s) found during client check request > > ... > > ==32704== Address 0x243e6040 is 16,384 bytes inside a block of size > 1,048,576 alloc'd > > ... > > > > and > > > > ==32704== Invalid read of size 8 > > ... > > ==32704== Address 0x22fe2040 is 0 bytes inside a block of size > 1,048,576 alloc'd > > ... > > > > and > > > > ==32704== Invalid write of size 8 > > ... > > ==32704== Address 0x22fe2048 is 8 bytes inside a block of size > 1,048,576 alloc'd > > ... > > > > and on and on and on ... > > > > Are these valid errors? Everything I found online seemed to indicate > that error addresses should not fall entirely inside allocated blocks. > > Why should they not be valid? It probably just means somebody has used a > client request to mark that address as invalid. > > Tom > > -- > Tom Hughes (to...@co...) > http://compton.nu/ > |
|
From: Tyson W. <twh...@gm...> - 2015-09-22 17:56:39
|
On September 21, 2015 23:16:58 Tyson Whitehead wrote: > I'll check the make sure, but I'm 99.9% certain the code doesn't use any of > the valgrind API. > > I'm nearly certain its first exposure to valgrind was me running it just > now to help them track down some memory leak issues. > > The client request in coming from the MPI wrapper library that ships with > valgrind. Correction to that. Seems it's from the OpenMPI library itself compiled with valgrind support (via the --enable-memchecker option). Guess it must be marking a bunch of areas as invalid as you suggested. I'll have to take it up on their mailing list. Sorry for the noise. Cheers! -Tyson |