10000 Make test not loose failed leaders/followers (#11712) · arangodb/arangodb@0064805 · GitHub
[go: up one dir, main page]

Skip to content

Commit 0064805

Browse files
authored
Make test not loose failed leaders/followers (#11712)
* Make test not loose failed leaders/followers * Fix jslint
1 parent 68054a3 commit 0064805

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

tests/js/server/resilience/failover-view/resilience-synchronous-repl-with-arangosearch-view-cluster.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ function SynchronousReplicationWithViewSuite () {
5858
var cinfo;
5959
var ccinfo;
6060
var shards;
61+
var failedState = { leader: null, follower: null };
6162

6263
////////////////////////////////////////////////////////////////////////////////
6364
/// @brief find out servers for the system collections
@@ -120,21 +121,23 @@ function SynchronousReplicationWithViewSuite () {
120121
assertTrue(pos >= 0);
121122
assertTrue(suspendExternal(global.instanceInfo.arangods[pos].pid));
122123
console.info("Have failed follower", follower);
124+
failedState.follower = follower;
123125
}
124126

125127
////////////////////////////////////////////////////////////////////////////////
126128
/// @brief heal the follower
127129
////////////////////////////////////////////////////////////////////////////////
128130

129-
function healFollower() {
130-
var follower = cinfo.shards[shards[0]][1];
131+
function healFollower(follower = null) {
132+
if (follower == null) follower = cinfo.shards[shards[0]][1];
131133
var endpoint = global.ArangoClusterInfo.getServerEndpoint(follower);
132134
// Now look for instanceInfo:
133135
var pos = _.findIndex(global.instanceInfo.arangods,
134136
x => x.endpoint === endpoint);
135137
assertTrue(pos >= 0);
136138
assertTrue(continueExternal(global.instanceInfo.arangods[pos].pid));
137139
console.info("Have healed follower", follower);
140+
if (failedState.follower === follower) failedState.follower = null;
138141
}
139142

140143
////////////////////////////////////////////////////////////////////////////////
@@ -150,22 +153,24 @@ function SynchronousReplicationWithViewSuite () {
150153
assertTrue(pos >= 0);
151154
assertTrue(suspendExternal(global.instanceInfo.arangods[pos].pid));
152155
console.info("Have failed leader", leader);
156+
failedState.leader = leader;
153157
return leader;
154158
}
155159

156160
////////////////////////////////////////////////////////////////////////////////
157161
/// @brief heal the follower
158162
////////////////////////////////////////////////////////////////////////////////
159163

160-
function healLeader() {
161-
var leader = cinfo.shards[shards[0]][0];
164+
function healLeader(leader) {
165+
if (leader == null) leader = cinfo.shards[shards[0]][1];
162166
var endpoint = global.ArangoClusterInfo.getServerEndpoint(leader);
163167
// Now look for instanceInfo:
164168
var pos = _.findIndex(global.instanceInfo.arangods,
165169
x => x.endpoint === endpoint);
166170
assertTrue(pos >= 0);
167171
assertTrue(continueExternal(global.instanceInfo.arangods[pos].pid));
168172
console.info("Have healed leader", leader);
173+
if (failedState.leader === leader) failedState.leader = null;
169174
}
170175

171176
////////////////////////////////////////////////////////////////////////////////
@@ -493,6 +498,8 @@ function SynchronousReplicationWithViewSuite () {
493498
////////////////////////////////////////////////////////////////////////////////
494499

495500
tearDown : function () {
501+
if(failedState.leader != null) healLeader(failedState.leader);
502+
if(failedState.follower != null) healFollower(failedState.leader);
496503
db._drop(cn);
497504
viewOperations("drop");
498505
//global.ArangoAgency.set('Target/FailedServers', {});

0 commit comments

Comments
 (0)
0