mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'devel' of https://github.com/arangodb/arangodb into devel
This commit is contained in:
commit
9385e9b36a
|
@ -649,21 +649,19 @@ int countOnCoordinator(std::string const& dbname, std::string const& collname,
|
|||
}
|
||||
|
||||
auto shards = collinfo->shardIds();
|
||||
CoordTransactionID coordTransactionID = TRI_NewTickServer();
|
||||
std::vector<ClusterCommRequest> requests;
|
||||
auto body = std::make_shared<std::string>();
|
||||
for (auto const& p : *shards) {
|
||||
auto headers = std::make_unique<std::unordered_map<std::string, std::string>>();
|
||||
cc->asyncRequest(
|
||||
"", coordTransactionID, "shard:" + p.first,
|
||||
arangodb::GeneralRequest::RequestType::GET,
|
||||
"/_db/" + StringUtils::urlEncode(dbname) + "/_api/collection/" +
|
||||
StringUtils::urlEncode(p.first) + "/count",
|
||||
std::shared_ptr<std::string>(), headers, nullptr, 300.0);
|
||||
requests.emplace_back("shard:" + p.first,
|
||||
arangodb::GeneralRequest::RequestType::GET,
|
||||
"/_db/" + StringUtils::urlEncode(dbname) +
|
||||
"/_api/collection/" +
|
||||
StringUtils::urlEncode(p.first) + "/count", body);
|
||||
}
|
||||
// Now listen to the results:
|
||||
int count;
|
||||
int nrok = 0;
|
||||
for (count = (int)shards->size(); count > 0; count--) {
|
||||
auto res = cc->wait("", coordTransactionID, 0, "", 0.0);
|
||||
size_t nrDone = 0;
|
||||
cc->performRequests(requests, CL_DEFAULT_TIMEOUT, nrDone, Logger::QUERIES);
|
||||
for (auto& req : requests) {
|
||||
auto& res = req.result;
|
||||
if (res.status == CL_COMM_RECEIVED) {
|
||||
if (res.answer_code == arangodb::GeneralResponse::ResponseCode::OK) {
|
||||
std::shared_ptr<VPackBuilder> answerBuilder = ExtractAnswer(res);
|
||||
|
@ -674,18 +672,18 @@ int countOnCoordinator(std::string const& dbname, std::string const& collname,
|
|||
result +=
|
||||
arangodb::basics::VelocyPackHelper::getNumericValue<uint64_t>(
|
||||
answer, "count", 0);
|
||||
nrok++;
|
||||
} else {
|
||||
return TRI_ERROR_INTERNAL;
|
||||
}
|
||||
} else {
|
||||
return static_cast<int>(res.answer_code);
|
||||
}
|
||||
} else {
|
||||
return TRI_ERROR_CLUSTER_BACKEND_UNAVAILABLE;
|
||||
}
|
||||
}
|
||||
|
||||
if (nrok != (int)shards->size()) {
|
||||
return TRI_ERROR_INTERNAL;
|
||||
}
|
||||
|
||||
return TRI_ERROR_NO_ERROR; // the cluster operation was OK, however,
|
||||
// the DBserver could have reported an error.
|
||||
|
||||
return TRI_ERROR_NO_ERROR;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -283,22 +283,26 @@ function SynchronousReplicationSuite () {
|
|||
catch (e1) {
|
||||
assertEqual(ERRORS.ERROR_ARANGO_DOCUMENT_NOT_FOUND.code, e1.errorNum);
|
||||
}
|
||||
assertEqual(2, c.count());
|
||||
|
||||
if (healing.place === 15) { healFailure(healing); }
|
||||
if (failure.place === 16) { makeFailure(failure); }
|
||||
|
||||
c.remove([ids[0]._key, ids[1]._key]);
|
||||
assertEqual(2, c.count());
|
||||
|
||||
if (healing.place === 16) { healFailure(healing); }
|
||||
if (failure.place === 17) { makeFailure(failure); }
|
||||
|
||||
c.remove([ids[0]._key, ids[1]._key]);
|
||||
|
||||
if (healing.place === 17) { healFailure(healing); }
|
||||
if (failure.place === 18) { makeFailure(failure); }
|
||||
|
||||
docs = c.document([ids[0]._key, ids[1]._key]);
|
||||
assertEqual(2, docs.length);
|
||||
assertTrue(docs[0].error);
|
||||
assertTrue(docs[1].error);
|
||||
|
||||
if (healing.place === 17) { healFailure(healing); }
|
||||
if (healing.place === 18) { healFailure(healing); }
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -336,7 +340,6 @@ function SynchronousReplicationSuite () {
|
|||
/// @brief check whether we have access to global.instanceInfo
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/*
|
||||
testCheckInstanceInfo : function () {
|
||||
assertTrue(global.instanceInfo !== undefined);
|
||||
},
|
||||
|
@ -376,7 +379,7 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail1 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:1, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:1, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -386,7 +389,7 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail2 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:2, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:2, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -396,7 +399,7 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail3 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:3, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:3, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -406,7 +409,7 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail4 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:4, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:4, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -416,7 +419,7 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail5 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:5, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:5, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -426,7 +429,7 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail6 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:6, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:6, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -436,7 +439,7 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail7 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:7, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:7, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -446,7 +449,7 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail8 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:8, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:8, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -456,7 +459,7 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail9 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:9, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:9, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -466,7 +469,7 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail10 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:10, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:10, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -476,7 +479,7 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail11 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:11, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:11, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -486,7 +489,7 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail12 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:12, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:12, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -496,7 +499,7 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail13 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:13, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:13, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -506,7 +509,7 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail14 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:14, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:14, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -516,7 +519,7 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail15 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:15, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:15, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -526,7 +529,7 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail16 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:16, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:16, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -536,10 +539,20 @@ function SynchronousReplicationSuite () {
|
|||
|
||||
testBasicOperationsFollowerFail17 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:17, follower:true}, {place:17, follower:true});
|
||||
runBasicOperations({place:17, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
*/
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief fail in place 18
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testBasicOperationsFollowerFail18 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:18, follower:true}, {place:18, follower:true});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief run a standard check with failures:
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -559,7 +572,7 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail1 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:1, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -570,7 +583,7 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail2 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:2, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -581,7 +594,7 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail3 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:3, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -592,7 +605,7 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail4 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:4, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -603,7 +616,7 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail5 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:5, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -614,7 +627,7 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail6 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:6, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -625,7 +638,7 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail7 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:7, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -636,7 +649,7 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail8 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:8, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -647,7 +660,7 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail9 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:9, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -658,7 +671,7 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail10 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:10, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -669,7 +682,7 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail11 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:11, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -680,7 +693,7 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail12 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:12, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -691,7 +704,7 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail13 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:13, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -702,7 +715,7 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail14 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:14, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -713,7 +726,7 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail15 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:15, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -724,7 +737,7 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail16 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:16, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
@ -735,7 +748,18 @@ function SynchronousReplicationSuite () {
|
|||
testBasicOperationsLeaderFail17 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:17, follower: false},
|
||||
{place:17, follower: false});
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief fail leader in place 18
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testBasicOperationsLeaderFail18 : function () {
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
runBasicOperations({place:18, follower: false},
|
||||
{place:18, follower: false});
|
||||
assertTrue(waitForSynchronousReplication("_system"));
|
||||
},
|
||||
|
||||
|
|
Loading…
Reference in New Issue