Elasticsearch 2.4.1 released

Today we are pleased to announce the bugfix release of Elasticsearch 2.4.1 based on Lucene 5.5.2. This is the latest stable release and is already available for deployment on Elastic Cloud, our Elasticsearch-as-a-service platform. All users are advised to upgrade, especially Windows users and X-Pack users.

Full details of the changes in this release are available in the release notes listed above, but this release contains four important bug fixes which are worth mentioning:

Windows users and garbage collection

A bug in the startup script on Windows meant that the incorrect garbage collector is being used on all versions of Elasticsearch 2.x. The serial collector uses a single thread to perform all garbage collection work and is a poor choice for a multithreaded application like Elasticsearch. If you’re on Windows, this could be the magical go-faster switch that you have been looking for.

Flush API can cause shard recoveries

Trying to flush a shard which is already in the process of being flushed will result in an exception, which is to be expected. Unfortunately, this exception was being treated as a sign of shard failure which required shards to be recovered from disk.

Watcher and cluster state data

Watcher stores some data in the cluster state. A bug in Watcher meant that, when reading its data from the cluster state, the final } was not being consumed which could result in losing any custom cluster state data from that point on, including snapshot/restore configuration, index templates etc.

Undeletable watches

Previously, an executing watch could not be modified (e.g. updated or deleted). This was not a problem before because watches are typically fast to execute. Watches which use the new reporting feature, however, may have to wait for a minute or two for the report to be generated. Triggering such a watch every 5 seconds meant that watches are always executing and cannot be deleted. Watches can now be deleted or updated during watch execution.