[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