Skip to content

ASAN: use-after-free in mpi4py's TestP2PMatchedWorld.testIMProbe #13484

@devreal

Description

@devreal

Running mpi4py with current main under GCC's address sanitizer fails with this error:

testIMProbe (test_p2p_obj_matched.TestP2PMatchedWorld.testIMProbe) ... =================================================================
==4179551==ERROR: AddressSanitizer: heap-use-after-free on address 0x6150000702b8 at pc 0x7fffea3700c1 bp 0x7fffffff5b40 sp 0x7fffffff5b38
READ of size 8 at 0x6150000702b8 thread T0
    #0 0x7fffea3700c0 in ompi_request_check_same_instance ../../ompi/request/request.c:274
    #1 0x7fffea53cfcb in PMPI_Waitall /gpfs/projects/SchuchartGroup/src/openmpi/ompi/build/ompi/mpi/c/waitall_generated.c:66
    #2 0x7fffeb0cd4e0 in __pyx_f_6mpi4py_3MPI_PyMPI_waitall src/mpi4py/MPI.c:101369
    #3 0x7fffeb0cd4e0 in __pyx_pf_6mpi4py_3MPI_7Request_64waitall src/mpi4py/MPI.c:139235
    #4 0x7fffeb0cd4e0 in __pyx_pw_6mpi4py_3MPI_7Request_65waitall src/mpi4py/MPI.c:139200

The line is question is https://github.com/open-mpi/ompi/blob/main/ompi/request/request.c#L274 where we access the communicator to get the instance. Maybe we're missing a RETAIN/RELEASE on the communicator?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions