Skip to content

cross cluster search - entire response failure although only one cluster down #26118

Closed
@kopnok

Description

@kopnok

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:

  1. Add data to cluster_2
curl -XPUT 'localhost:9202/test-2/data/1?pretty' -H 'Content-Type: application/json' -d'
{
    "user" : "user2",
    "message" : "test2"
}
'
  1. Add data to cluster_3
curl -XPUT 'localhost:9203/test-3/data/1?pretty' -H 'Content-Type: application/json' -d'
{
    "user" : "user3",
    "message" : "test3"
}
'
  1. 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"
          ]
        }
      }
    }
  }
}
'
  1. Down cluster_3
  2. 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

Metadata

Metadata

Assignees

Labels

:Search/SearchSearch-related issues that do not fall into other categories>enhancement

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions