Thread (1 message) 1 message, 1 author, 2012-01-16

Re: Leak in rdma_get_cm_event on pthread_cancel?

From: Flavio Baronti <hidden>
Date: 2012-01-16 08:46:37

Il 1/13/2012 18:59 PM, Jason Gunthorpe ha scritto:
On Fri, Jan 13, 2012 at 12:46:00PM +0100, Flavio Baronti wrote:
quoted
When I want to stop the thread reading rdma events, I kill it with a
pthread_cancel(), since it is blocked in a rdma_get_cm_event(). This
causes a leak of the evt variable in the rdma_get_cm_event()
function. Not a big deal, of course, but a couple of
pthread_cleanup_push(free, evt) and pthread_cleanup_pop() should
solve it.
None of the IB libraries have been audited for posix async cancellation
safety.

To do this work someone would have to review every call to determine
if it is a cancelation point, and document this as part of the API.

Then review if any of the internal cancelation points in the
cancelable functions require a resource clean up, and add it.

IHMO, cancelation should not be used with threads that call into the
ib libraries.

Jason
Ok, but what is then the proper way to stop a thread blocked on rdma_get_cm_event() (or on ibv_get_cq_event())?

Flavio
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help