[openib-general] queue pair destruction on dat_ep_disconnect

mark kowalski mkowalski01 at gmail.com
Fri Mar 18 09:24:53 PST 2005


I've been doing some experimentation to see if a client using udapl
can recover from a hard port failure if the second port on the hca
offers a path to the same destination.  I've noticed a problem.
      when on the client I see a timeout waiting on a response from
the server or I get a transport error from the evd_wait on the
dat_ep_post_send, I will eventually dat_ep_disconnect the endpoint in
preparation of recreating the endpoint and trying to connect to a new
IA obtained from data_ia_open on a name associated with the other port
on the hca.  What I've noticed is that the ep_disconnect does not seem
to destroy the underlying queue pair and eventhough I issue a new
dat_ep_create, access to the new end point  fails with "resource busy"
because the destroy_cbk field is still filled in.  If I issue the
dat_ep_free after the dat_ep_disconnect and then start the process of
creating and connecting to a new end point then it works fine.
     I've noticed in the dapls_ib_disconnect (not the openib one) that
the call to VAPI_destroy_qp is ifdef'd out.  in the openib
dapls_ib_disconnect there is no call at all to VAPI_destroy_qp.  Is
this intentional?  It seems that the dat_ep_disconnect should cleanup
the underlying queue pair and a dat_ep_free shouldn't be required.

Thanks in advance for any help you can provide,
Mark Kowalski



More information about the general mailing list