[ofw] RE: Disconnection problem and AL reference
Fab Tillier
ftillier at windows.microsoft.com
Wed Oct 15 12:40:54 PDT 2008
Hi James,
> After calling cm_dreq(), my callback for it is not called and the
> workitems are also never get called. After cm_dreq() time out, I call
> destroy_qp() with status successful. But the reference count of QP is
> always 1.
When cm_dreq times out, you should get a DREP notification, and the QP should be in the error state.
Check the reference count on the QP before you call cm_dreq. If you can, also check the reference count on the CEP for your QP. When the cm_dreq times out (why is it timing out, did the other side not reply?) again check the CEP reference count. The timeout is processed in the __cep_mad_send_cb function in al_cm_cep.c. Then walk the code to make sure the DREP callback is invoked, or if it isn't, why. The CEP takes a reference on the QP, make sure that gets released when the QP is destroyed (QP destruction should destroy the CEP in the destroying callback for the QP object)
-Fab
More information about the ofw
mailing list