Description
Elasticsearch version (bin/elasticsearch --version
):
Version: 5.5.1, Build: 19c13d0/2017-07-18T20:44:24.823Z, JVM: 1.8.0_131
JVM version (java -version
):
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
OS version (uname -a
if on a Unix-like system):
Linux zbook-15-G3 4.4.0-53-generic #74-Ubuntu SMP Fri Dec 2 15:59:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Description of the problem including expected versus actual behavior:
There are 3 elastic clusters and cluster_1 is configured to be able to search across clusters: cluster_2 and cluster_3.
When cluster_3 is down (cluster_1, cluster_2 are up) wildcard cluster search returns failure:
{
"error" : {
"root_cause" : [
{
"type" : "connect_transport_exception",
"reason" : "[][127.0.0.1:9303] connect_timeout[30s]"
}
],
"type" : "transport_exception",
"reason" : "unable to communicate with remote cluster [cluster_3]",
"caused_by" : {
"type" : "connect_transport_exception",
"reason" : "[][127.0.0.1:9303] connect_timeout[30s]",
"caused_by" : {
"type" : "annotated_connect_exception",
"reason" : "Connection refused: /127.0.0.1:9303",
"caused_by" : {
"type" : "connect_exception",
"reason" : "Connection refused"
}
}
}
},
"status" : 500
}
I would expect that result of all up clusters is returned.
Steps to reproduce:
- Add data to cluster_2
curl -XPUT 'localhost:9202/test-2/data/1?pretty' -H 'Content-Type: application/json' -d'
{
"user" : "user2",
"message" : "test2"
}
'
- Add data to cluster_3
curl -XPUT 'localhost:9203/test-3/data/1?pretty' -H 'Content-Type: application/json' -d'
{
"user" : "user3",
"message" : "test3"
}
'
- Set cross cluster search on cluster_1
curl -XPUT 'localhost:9200/_cluster/settings?pretty' -H 'Content-Type: application/json' -d'
{
"persistent": {
"search": {
"remote": {
"cluster_2": {
"seeds": [
"127.0.0.1:9302"
]
},
"cluster_3": {
"seeds": [
"127.0.0.1:9303"
]
}
}
}
}
}
'
- Down cluster_3
- Get all test-* indexes from cluster_2 and cluster_3
curl -XPOST 'localhost:9200/*:test-*/data/_search?pretty' -H 'Content-Type: application/json' -d'
{
"query": {
"match_all": {}
}
}
'
Please also see console output from the test case:
test.console.txt