I'm running a 3 node cluster with version 2.1.1 running on Windows 2012 R2. Tried to install 2.2.0 which was released today. I'm following the instructions here: https://www.elastic.co/guide/en/elasticsearch/reference/2.2/rolling-upgrades.html
Basically, I disable shard allocation, sync flush, then stop the service on 1 node. I use .\service.bat to create a new service for the 2.2.0 directory and start the service. The node never joins the cluster, and gives alot of the following in the logs:
[2016-02-02 13:54:35,311][DEBUG][action.admin.indices.create] [node1] no known master node, scheduling a retry
[2016-02-02 13:55:35,323][DEBUG][action.admin.indices.create] [node1] timed out while retrying [indices:admin/create] after failure (timeout [1m])
[2016-02-02 13:55:35,323][INFO ][rest.suppressed ] /_bulk Params: {}
ClusterBlockException[blocked by: [SERVICE_UNAVAILABLE/1/state not recovered / initialized];[SERVICE_UNAVAILABLE/2/no master];]
at org.elasticsearch.cluster.block.ClusterBlocks.globalBlockedException(ClusterBlocks.java:154)
at org.elasticsearch.cluster.block.ClusterBlocks.globalBlockedRaiseException(ClusterBlocks.java:144)
at org.elasticsearch.action.bulk.TransportBulkAction.executeBulk(TransportBulkAction.java:212)
at org.elasticsearch.action.bulk.TransportBulkAction.access$000(TransportBulkAction.java:71)
at org.elasticsearch.action.bulk.TransportBulkAction$1.onFailure(TransportBulkAction.java:150)
at org.elasticsearch.action.support.ThreadedActionListener$2.doRun(ThreadedActionListener.java:104)
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
My elasticsearch.yml file looks like this:
#
cluster.name: cluster-01
#
node.name: "node1"
#
path.data: c:\path
#
path.logs: c:\path
#
network.host: <Network IP>
#
gateway.recover_after_nodes: 2
#
discovery.zen.ping.unicast.hosts: ["node2", "node3"]
#
discovery.zen.minimum_master_nodes: 2
#
watcher.actions.email.service.account:
blah
#