[ofa-general] Expected behavior

Barry Reinhold bbr at lampreynetworks.com
Wed Oct 17 10:05:40 PDT 2007


During the OFA plugfest at UNH I came across a problem in which a verbs
consumer application made a call to ibv_poll_cq after having called
ibv_destroy_qp(). The application segfaults in a call to a module supplied
by a verb provider that is invoked as a result of the call to
ibv_destroy_qp().

 

As the writer of the application I am unclear as to ownership of this
problem - is this behavior "badness" in the code of the verb provider, or is
it an issue in my application.

 

The application is processing an abortive teardown process in which it is
attempting to terminate the RDMA stream and recover associated resources.
The peer at the other end may be doing the same thing at the "same" time.

 

The application, when aborting does the following:

 

1.       Sets the qp_state to IBV_QPS_ERR

2.       Sleeps for a second

3.       Calls ibv_destroy_qp

4.       Calls ibv_destoy_cq

 

The event processing thread is doing the following:

 

1.       Calls bv_get_cq_event

2.       Calls ibv_req_notify_cq

3.       while((ibv_poll_cq(cq_event, 1, xx) ==1 ) {};

4.       more stuff

 

Does the application need to ensure that ibv_poll_cq is never called after
the associated qp is destroyed?

 

Barry Reinhold

(603) 868-8411

 <mailto:bbr at lampreynetworks.com> bbr at lampreynetworks.com

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/general/attachments/20071017/6d04ef5d/attachment.html>


More information about the general mailing list