Sean Hefty [Fri, 17 Sep 2010 21:17:20 +0000 (14:17 -0700)]
dapl/ibal: delay QP transition until user disconnects
The ibal provider calls ib_cm_drep in response to receiving
a dreq. The result is that the user's QP is transitioned
through the error state, which fails any outstanding send
operations and flushes all receives. The disconnect request
is then reported to the user.
Since a user can receive errors from the QP before they are
aware of a pending disconnect request, the application may
respond to the errors as, well, actual errors. Fix this by
delaying the QP transition until the user responds to the
dreq.
This fixes an error with Intel MPI running over the ibal
dapl provider with a 'spawn' test.
Sean Hefty [Fri, 17 Sep 2010 21:17:20 +0000 (14:17 -0700)]
dapl/ibal: delay QP transition until user disconnects
The ibal provider calls ib_cm_drep in response to receiving
a dreq. The result is that the user's QP is transitioned
through the error state, which fails any outstanding send
operations and flushes all receives. The disconnect request
is then reported to the user.
Since a user can receive errors from the QP before they are
aware of a pending disconnect request, the application may
respond to the errors as, well, actual errors. Fix this by
delaying the QP transition until the user responds to the
dreq.
This fixes an error with Intel MPI running over the ibal
dapl provider with a 'spawn' test.
Sean Hefty [Fri, 17 Sep 2010 21:17:20 +0000 (14:17 -0700)]
dapl/ibal: delay QP transition until user disconnects
The ibal provider calls ib_cm_drep in response to receiving
a dreq. The result is that the user's QP is transitioned
through the error state, which fails any outstanding send
operations and flushes all receives. The disconnect request
is then reported to the user.
Since a user can receive errors from the QP before they are
aware of a pending disconnect request, the application may
respond to the errors as, well, actual errors. Fix this by
delaying the QP transition until the user responds to the
dreq.
This fixes an error with Intel MPI running over the ibal
dapl provider with a 'spawn' test.
Sean Hefty [Thu, 9 Sep 2010 17:41:28 +0000 (10:41 -0700)]
dapl/ibal: wait for qp destroy callback before freeing ep
Make QP destruction 'synchronous' to ensure that no callbacks are
in progress for a QP after dapl has destroyed it. This fixes a
use after free error accessing the dapl ep structure from a qp
callback that results in an application crash.
Sean Hefty [Thu, 9 Sep 2010 17:41:28 +0000 (10:41 -0700)]
dapl/ibal: wait for qp destroy callback before freeing ep
Make QP destruction 'synchronous' to ensure that no callbacks are
in progress for a QP after dapl has destroyed it. This fixes a
use after free error accessing the dapl ep structure from a qp
callback that results in an application crash.
Sean Hefty [Thu, 9 Sep 2010 17:41:28 +0000 (10:41 -0700)]
dapl/ibal: wait for qp destroy callback before freeing ep
Make QP destruction 'synchronous' to ensure that no callbacks are
in progress for a QP after dapl has destroyed it. This fixes a
use after free error accessing the dapl ep structure from a qp
callback that results in an application crash.