ConnectTransportException non-master-eligible node found

I'm configuring Elasticserach 7.9.0 cluster with 2 hosts. The elasticsearch.yml in host1 is setup with node.master as true and host2 is setup with node.master as false.
Both hosts have elasticsearch started but with error in host2. Each node is up and running but they are not communicating with each other. Enabled trace for discovery.

Host1 logs indicate: [2021-03-05T18:49:39,125][TRACE][o.e.d.PeerFinder ] [liferaydev1] probing resolved transport addresses [192.168.253.19:9300]
[2021-03-05T18:49:39,125][TRACE][o.e.d.PeerFinder ] [liferaydev1] Peer{transportAddress=192.168.253.19:9300, discoveryNode=null, peersRequestInFlight=false} attempting connection
[2021-03-05T18:49:39,125][TRACE][o.e.d.HandshakingTransportAddressConnector] [liferaydev1] [connectToRemoteMasterNode[192.168.253.19:9300]] opening probe connection
[2021-03-05T18:49:39,127][TRACE][o.e.d.HandshakingTransportAddressConnector] [liferaydev1] [connectToRemoteMasterNode[192.168.253.19:9300]] opened probe connection
[2021-03-05T18:49:39,128][TRACE][o.e.d.HandshakingTransportAddressConnector] [liferaydev1] [connectToRemoteMasterNode[192.168.253.19:9300]] handshake successful: {liferaydev2}{mOHlwT5kTXWcYD5QWCkkQQ}{w1_LFj-cTZWa5IuJTAE2rA}{liferaydev2}{192.168.253.19:9300}{dilrt}{ml.machine_memory=13640597504, ml.max_open_jobs=20, xpack.installed=true, transform.node=true}
[2021-03-05T18:49:39,128][DEBUG][o.e.d.PeerFinder ] [liferaydev1] Peer{transportAddress=192.168.253.19:9300, discoveryNode=null, peersRequestInFlight=false} connection failed
org.elasticsearch.transport.ConnectTransportException: [liferaydev2][192.168.253.19:9300] non-master-eligible node found

Elasticsearch in host1
cluster.name: liferay-elastic-cluster
node.name: liferaydev1
network.publish_host: liferaydev1
network.host: 192.168.253.18
network.bind_host: liferaydev1
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["192.168.253.18:9300", "192.168.253.19:9300"]
cluster.initial_master_nodes: ["liferaydev1", "liferaydev2"]
discovery.zen.minimum_master_nodes: 2
node.master: true
logger.org.elasticsearch.discovery: TRACE

Elasticsearch in host2
node.name: liferaydev2
network.publish_host: liferaydev2
network.host: 192.168.253.19
network.bind_host: liferaydev2
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.253.18:9300", "192.168.253.19:9300"]
cluster.initial_master_nodes: ["liferaydev1", "liferaydev2"]
discovery.zen.minimum_master_nodes: 2
node.master: false

What is missing in the host1 configuration....please help.
Thank you.

Hi @SSRR
There are some changes in discovery configuration:

  1. Look at Discovery | Elasticsearch Reference [7.9] | Elastic
node1:
discovery.seed_hosts: ["ip2:9300"]
node2:
discovery.seed_hosts: ["ip1:9300"]
  1. Node | Elasticsearch Reference [7.9] | Elastic
    node.master configuration I think is deprecated according to documentation, instead of use
    node.roles: [ master,data] or node.roles: [data]
  2. discovery.zen.minimum_master_nodes: 2 this configuration is deprecated, look at : Breaking changes in 7.0 | Elasticsearch Reference [7.9] | Elastic
    instead of use cluster.initial_master_nodes: ["liferaydev1", "liferaydev2"]
    Note If you want that NODE1 - master only, you should in cluster.inital_master_nodes set only "liferaydev1" value.

Thank you so much for the suggestions.
I changed to
'cluster.initial_master_nodes: ["node1_name"]'

Kept these same, though deprecated in Elasticsearch 7.9:

  1. 'node.master=' same as before in node1 and node2.
  2. 'discovery.zen.minimum_master_nodes: 2' same as before in node1 and node2
    and it worked.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.