ctdb-client: Keep trying to migrate till record lock is obtained
authorAmitay Isaacs <amitay@gmail.com>
Fri, 20 Nov 2015 05:22:41 +0000 (16:22 +1100)
committerMartin Schwenke <martins@samba.org>
Wed, 24 Feb 2016 07:44:38 +0000 (08:44 +0100)
If a record is not on a local node, then it is migrated from remote node.
However, before the client can get a lock on the record, it's possible
for the record to get migrated away.  In that case, repeat migration.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
ctdb/client/client_db.c

index 37e2ce51ec8c7b8118669d5e18f17d9ab6cb805b..8012464f108b3bfaf3b9e86bd95a8a5379dfc530 100644 (file)
@@ -904,7 +904,9 @@ static void ctdb_fetch_lock_migrate_done(struct tevent_req *subreq)
 
        ret = ctdb_fetch_lock_check(req);
        if (ret != 0) {
-               tevent_req_error(req, ret);
+               if (ret != EAGAIN) {
+                       tevent_req_error(req, ret);
+               }
                return;
        }