[mpich-devel] Handle leak warning with cancelled request in 3.1.1

Lisandro Dalcin dalcinl at gmail.com
Sun Jul 6 08:31:09 CDT 2014


Please look at the Python code at the end. It is basically an Issend()
to self of a zero-size message followed by a Cancel() on the request.
The cancellation seems succeed after querying the request, then I
proceed to free the request. However, when running the code, I get the
following warning at finalization:

$ python req_cancel.py
cancelled: free request
In direct memory block for handle type REQUEST, 1 handles are still allocated

I think this is a regression, previous MPICH 3.1 do not print this warning.


PS: I hope it is OK to post Python code here. If you really hate it,
please let me know.

from mpi4py import MPI

comm = MPI.COMM_SELF
request = comm.Issend([None, 0, MPI.BYTE], 0, 123)

status = MPI.Status()
comm.Probe(MPI.ANY_SOURCE, MPI.ANY_TAG, status)
assert status.source == 0
assert status.tag == 123

request.Cancel()
assert request != MPI.REQUEST_NULL

status = MPI.Status()
request.Get_status(status)

cancelled = status.Is_cancelled()
if cancelled:
    print "cancelled: free request"
    request.Free()
else:
    print "not cancelled: recv & wait"
    comm.Recv([None, 0, MPI.BYTE], comm.rank, 123)
    request.Wait()


-- 
Lisandro Dalcin
---------------
CIMEC (UNL/CONICET)
Predio CONICET-Santa Fe
Colectora RN 168 Km 472, Paraje El Pozo
3000 Santa Fe, Argentina
Tel: +54-342-4511594 (ext 1016)
Tel/Fax: +54-342-4511169


More information about the devel mailing list