mirror of https://gitee.com/bigwinds/arangodb
More fixes in DBServerAgencySync js part.
This commit is contained in:
parent
7ae9cfcd26
commit
717d110a1d
|
@ -84,7 +84,6 @@ function startReadLockOnLeader (endpoint, database, collName, timeout) {
|
|||
|
||||
var count = 0;
|
||||
while (++count < 20) { // wait for some time until read lock established:
|
||||
wait(0.5);
|
||||
// Now check that we hold the read lock:
|
||||
r = request({ url: url + "/_api/replication/holdReadLockCollection",
|
||||
body: JSON.stringify(body),
|
||||
|
@ -93,9 +92,10 @@ function startReadLockOnLeader (endpoint, database, collName, timeout) {
|
|||
return id;
|
||||
}
|
||||
console.debug("startReadLockOnLeader: Do not see read lock yet...");
|
||||
wait(0.5);
|
||||
}
|
||||
var asyncJobId = rr.headers["x-arango-async-id"];
|
||||
r = require({ url: url + "/_api/job/" + asyncJobId, body: "", method: "PUT"});
|
||||
r = request({ url: url + "/_api/job/" + asyncJobId, body: "", method: "PUT"});
|
||||
console.error("startReadLockOnLeader: giving up, async result:", r);
|
||||
return false;
|
||||
}
|
||||
|
@ -927,6 +927,11 @@ function synchronizeLocalFollowerCollections (plannedCollections,
|
|||
keepBarrier: true });
|
||||
if (sy.error) {
|
||||
console.error("Could not initially synchronize shard ", shard, sy);
|
||||
} else {
|
||||
if (sy.collections.length == 0 ||
|
||||
sy.collections[0].name != shard) {
|
||||
cancelBarrier(ep, database, sy.barrierId);
|
||||
throw "Shard seems to be gone from leader!";
|
||||
} else {
|
||||
var ok = false;
|
||||
// Now start a read transaction to stop writes:
|
||||
|
@ -936,6 +941,9 @@ function synchronizeLocalFollowerCollections (plannedCollections,
|
|||
shard, 300);
|
||||
console.debug("lockJobId:", lockJobId);
|
||||
}
|
||||
catch (err1) {
|
||||
console.error("Exception in startReadLockOnLeader:", err1);
|
||||
}
|
||||
finally {
|
||||
cancelBarrier(ep, database, sy.barrierId);
|
||||
}
|
||||
|
@ -952,6 +960,9 @@ function synchronizeLocalFollowerCollections (plannedCollections,
|
|||
ok = addShardFollower(ep, database, shard);
|
||||
}
|
||||
}
|
||||
catch (err3) {
|
||||
console.error("Exception in syncCollectionFinalize:", err3);
|
||||
}
|
||||
finally {
|
||||
if (!cancelReadLockOnLeader(ep, database,
|
||||
lockJobId)) {
|
||||
|
@ -969,6 +980,7 @@ function synchronizeLocalFollowerCollections (plannedCollections,
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (err2) {
|
||||
console.error("synchronization of local shard '%s/%s' for central '%s/%s' failed: %s",
|
||||
database,
|
||||
|
|
Loading…
Reference in New Issue