[libfabric-users] CQ permission denied (-EACCES)

Jose, Jithin jithin.jose at intel.com
Wed Feb 10 11:30:56 PST 2016


I think the race was because of an unprotected call to get-mr-key. I was able to reproduce it occasionally.

The following patch fixes it, and the test seems to run fine with it; still running in a loop :)
https://github.com/jithinjosepkl/libfabric/commit/a3a66678cffb376b4cd2bf033ae65fe05df30af0


I have also updated the tx_size_left() to check for the CQ availability. All the patches are in https://github.com/jithinjosepkl/libfabric/commits/pr/sockets. Can you give it a try?

Btw, in the application, do you make sure that some other thread is not issuing any TX operations between fi_tx_size_left() and fi_rma* calls? Otherwise, it can still result in -FI_EAGAIN.

- Jithin






-----Original Message-----
From: <libfabric-users-bounces at lists.openfabrics.org> on behalf of Ezra Kissel <ezkissel at indiana.edu>
Date: Wednesday, February 10, 2016 at 8:45 AM
To: "libfabric-users at lists.openfabrics.org" <libfabric-users at lists.openfabrics.org>
Subject: [libfabric-users] CQ permission denied (-EACCES)

>Starting a new thread with the issue I was originally trying to debug. 
>We (IU) have libfabric integrated into a task-based runtime system via 
>an intermediate RDMA middleware library and one of our unit tests was 
>often failing with the following error:
>
>ALL:ERR: 1 (cq_readerr:53): > local CQ: 13 Permission denied
>ALL:ERR: 1 (cq_readerr:54): > local CQ: prov_err: Permission denied (-13)
>
>Obviously, -EACCES is an appropriate CQ error if the incorrect rkey is 
>specified in an associated RMA op.  I've spent a lot of time debugging 
>this, making sure we are passing the correct rkeys, etc.  I've finally 
>been able to reproduce this issue in a small distributed, threaded test 
>using the sockets provider again, but unfortunately in a 
>non-deterministic way.
>
>https://github.com/disprosium8/fi_thread_test/blob/master/fi_rma_thread_mr.c
>
>Our unit test that fails causes a lot of memory pressure, and lots of 
>concurrent memory registrations interleaved with RMA ops.  I tried to 
>reproduce this in the above test and it will fail with the CQ error 
>after some number of repeated runs.
>
>I get the sense that there's a race condition somewhere, and/or the 
>fi_mr descriptors are getting corrupted.  I can't reproduce the error 
>without the "alloc_thread" running (athreads=0) in the test, and indeed 
>all our other integrated runtime unit tests that have less memory 
>pressure are passing OK.
>
>Now that I have a stripped-down test, I can try to more closely trace 
>the root cause but I thought I'd ask for thoughts.
>
>- ezra
>_______________________________________________
>Libfabric-users mailing list
>Libfabric-users at lists.openfabrics.org
>http://lists.openfabrics.org/mailman/listinfo/libfabric-users


More information about the Libfabric-users mailing list