The python version of that test reproducibly works for me with this patch reverted, and fails with it applied. The following change ontop of the series makes it pass this test for me, still running the whole test suite. index 59f71ba..c84f493 100644 --- a/sheep/sdnet.c +++ b/sheep/sdnet.c @@ -216,9 +216,7 @@ static int check_request(struct request *req) dead lock of recovery, if fails, recovery will take its own retrying mechanism. */ if (is_recoverying_oid(req->local_oid) && - !(req->rq.flags & SD_FLAG_CMD_RECOVERY) && - req->rq.flags & SD_FLAG_CMD_IO_LOCAL) { - /* Sheep peer request */ + !(req->rq.flags & SD_FLAG_CMD_RECOVERY)) { if (is_recovery_init()) { req->rp.result = SD_RES_OBJ_RECOVERING; list_add_tail(&req->request_list, |