________________________________________ I'm not sure what to make of these instances of "Invalid read error". If I try a simple test program where I feed free() a pointer that is off from a pointer that's been properly malloc'd, I get an "Invalid free() / delete / delete[] / realloc()" instead of the "Invalid read error". ________________________________________
Finally managed to reproduce the "Invalid read error" from free() with a small test case here: #include <iostream> #include <stdlib.h> #include <mpi.h> int main(int argc, char ** argv) { MPI_Init(&argc, &argv); int size, rank; MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); int * foo; foo = (int*)malloc(sizeof(int)*size); std::cout << "foo = ["; for (int i = 0; i < size; ++i) { foo[i] = rank + i; std::cout << " " << foo[i]; } std::cout << " ]\n"; free(foo); MPI_Finalize(); return 0; } The catch is that the "Invalid read error" only shows up if I run this simple test case on more than two nodes of a cluster. If I run in parallel, but the parallel cores are all on a single node, then there are no errors. ------------------------------------------------------------------------------ _______________________________________________ Valgrind-users mailing list Valgrind-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-users