Skip to content

Commit 02a0c44

Browse files
committed
Fix for Broken Rebootstrap sequence
1 parent 43a1c61 commit 02a0c44

File tree

1 file changed

+25
-24
lines changed

1 file changed

+25
-24
lines changed

src/scheduler.js

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -188,32 +188,11 @@ module.exports = class Scheduler extends EventEmitter {
188188
capacityJob(nano, config.nano)
189189

190190
bucket.on('ping', onPing)
191-
let maintainBucket = ()=> {
192-
let nodes = bucket.toArray()
193-
let i = -1
194-
let next = (err)=> {
195-
if (err) {
196-
bucket.remove(nodes[ i ])
197-
}
198-
i++
199-
if (i < nodes.length) {
200-
let node = nodes[ i ]
201-
rpc.ping(node.id, next)
202-
} else {
203-
rebootstrap(() => {
204-
let maintenanceJob = setTimeout(maintainBucket, config.bucketTimeout)
205-
_maintenanceJob.set(this, maintenanceJob)
206-
})
207-
}
208-
}
209-
checkIP(next)
210-
}
211-
let maintenanceJob = setTimeout(maintainBucket, config.bucketTimeout)
212-
_maintenanceJob.set(this, maintenanceJob)
213191
let rebootstrap = (cb) => {
214192
try {
193+
let peers = bucket.toArray()
215194
let bootstrap = config.bootstrap.map((peer) => Peer.fromLocator(peer))
216-
.filter((peer) => !peer.isEqual(Peer.self) && !bucket.contains(peer.id))
195+
.filter((peer) => !peer.isEqual(Peer.self) && !peers.find((pier) => pier.isEqual(peer)))
217196

218197
let i = -1
219198
let next = (err) => {
@@ -235,6 +214,29 @@ module.exports = class Scheduler extends EventEmitter {
235214
return cb()
236215
}
237216
}
217+
let maintainBucket = () => {
218+
let nodes = bucket.toArray()
219+
let i = -1
220+
let next = (err)=> {
221+
if (err) {
222+
bucket.remove(nodes[ i ])
223+
}
224+
i++
225+
if (i < nodes.length) {
226+
let node = nodes[ i ]
227+
rpc.ping(node.id, next)
228+
} else {
229+
rebootstrap(() => {
230+
let maintenanceJob = setTimeout(maintainBucket, config.bucketTimeout)
231+
_maintenanceJob.set(this, maintenanceJob)
232+
})
233+
}
234+
}
235+
checkIP(next)
236+
}
237+
let maintenanceJob = setTimeout(maintainBucket, 20000)
238+
_maintenanceJob.set(this, maintenanceJob)
239+
238240
let checkIP = (cb) => {
239241
let intIP
240242
let extIP
@@ -256,7 +258,6 @@ module.exports = class Scheduler extends EventEmitter {
256258
})
257259
})
258260
}
259-
260261
}
261262

262263
}

0 commit comments

Comments
 (0)