* Fix #1153

* Updated test
This commit is contained in:
Tomas Della Vedova
2020-04-14 18:14:27 +02:00
committed by GitHub
parent fd8f02b9df
commit 17959a41e1
2 changed files with 19 additions and 1 deletions

View File

@ -60,7 +60,17 @@ class ConnectionPool extends BaseConnectionPool {
const { id } = connection
debug(`Marking as 'dead' connection '${id}'`)
if (this.dead.indexOf(id) === -1) {
// It might happen that `markDead` is called jsut after
// a pool update, and in such case we will add to the dead
// list a node that no longer exist. The following check verify
// that the connection is still part of the pool before
// marking it as dead.
for (var i = 0; i < this.size; i++) {
if (this.connections[i].id === id) {
this.dead.push(id)
break
}
}
}
connection.status = Connection.statuses.DEAD
connection.deadCount++

View File

@ -74,6 +74,14 @@ test('API', t => {
}, 10)
})
t.test('markDead should ignore connections that no longer exists', t => {
const pool = new ConnectionPool({ Connection, sniffEnabled: true })
pool.addConnection('http://localhost:9200/')
pool.markDead({ id: 'foo-bar' })
t.deepEqual(pool.dead, [])
t.end()
})
t.test('markAlive', t => {
const pool = new ConnectionPool({ Connection, sniffEnabled: true })
const href = 'http://localhost:9200/'