-
Notifications
You must be signed in to change notification settings - Fork 48
Description
Probing AM is not possible if the local endpoint has closed, as opposed to the remote endpoint closing. This is due to ucxx::Endpoint::_handle being swapped with nullptr after ucxx::Endpoint::close{,Blocking} is called, after which is impossible to obtain the original handle to probe for AM in the worker. Additionally, the Python async interface relies on the Python core bindings to execute UCXEndpoint.am_probe() but calling Endpoint.close()/Endpoint.abort() assigns the underlying self._ep = None, after that time there are no more ways to probe for AM for that endpoint even if the handle is known since ucxx::Worker::amProbe() is not even exposed directly to the Python core bindings, but only via UCXEndpoint.am_probe().
Once this is resolved, test_message_probe should be split into two: test_message_probe_local_close and test_message_probe_remote_close (exactly what test_message_probe is today).