The following C program:
#include <mpi.h>
int main(int argc, char** argv) {
int blocklengths;
MPI_Aint displacements;
MPI_Datatype types, dt;
int x;
MPI_Init(&argc, &argv);
MPI_Type_struct(0, &blocklengths, &displacements, &types, &dt);
MPI_Type_commit(&dt);
MPI_Send(&x, 1, dt, MPI_PROC_NULL, 0, MPI_COMM_WORLD);
MPI_Type_free(&dt);
MPI_Finalize();
return 0;
}
produces a segmentation fault (caused by a NULL pointer dereference) when
run with Open MPI 1.6.1, but only when using Valgrind. Running without
Valgrind does not cause any issues; the failure appears to be in the code
that checks whether MPI buffers are valid. The configure flags I used to
build Open MPI were a prefix and:
--disable-pretty-print-stacktrace --enable-mpi-thread-multiple
--enable-memchecker --enable-mca-no-build=btl-openib --enable-debug
and I am using GCC 4.7.1 on Linux. Is this a known issue? Thank you for
your help.
-- Jeremiah Willcock