Hello all.
I'm using openmpi-1.3 in this example, linux, gcc-4.3.2, configured
with nothing special.
If I run the following simple C code under valgrind, single process, I
get some errors about reading and writing already-freed memory:
---------------------------
#include <mpi.h>
#include <stdlib.h>
int delete_fn(MPI_Comm comm, int keyval, void *attr, void *extra) {
MPI_Keyval_free(&keyval);
return 0;
}
int main (int argc, char **argv)
{
MPI_Comm duped;
int keyval;
MPI_Init(&argc, &argv);
MPI_Comm_dup(MPI_COMM_SELF, &duped);
MPI_Keyval_create(MPI_NULL_COPY_FN, delete_fn, &keyval, NULL);
MPI_Attr_put(MPI_COMM_SELF, keyval, NULL);
MPI_Attr_put(duped, keyval, NULL);
MPI_Comm_free(&duped);
MPI_Finalize();
return 0;
}
---------------------------
My main question here: Am I doing something wrong, or have I managed
to confuse openmpi's reference counts somehow?
==rob
--
Rob Latham
Mathematics and Computer Science Division A215 0178 EA2D B059 8CDF
Argonne National Lab, IL USA B29D F333 664A 4280 315B