Elasticsearch is not starting and likely root cause is ZipException: invalid distance too far back

After a system reboot my elasticsearch is not starting.

This is my elasticsearch log file:
[2016-03-03 17:58:51,710][INFO ][node ] [Katherine Reynolds] version[2.2.0], pid[1507], build[8ff36d1/2016-01-27T13:32:39Z]
[2016-03-03 17:58:51,711][INFO ][node ] [Katherine Reynolds] initializing ...
[2016-03-03 17:58:52,402][INFO ][plugins ] [Katherine Reynolds] modules [lang-expression, lang-groovy], plugins [], sites []
[2016-03-03 17:58:52,426][INFO ][env ] [Katherine Reynolds] using [1] data paths, mounts [[/ (/dev/sda5)]], net usable_space [43.9gb], net total_space [50.2gb], spins? [possibly], types [ext4]
[2016-03-03 17:58:52,426][INFO ][env ] [Katherine Reynolds] heap size [990.7mb], compressed ordinary object pointers [true]
[2016-03-03 17:58:54,601][ERROR][bootstrap ] Guice Exception: java.lang.NoClassDefFoundError: org/elasticsearch/search/SearchService$Reaper
Likely root cause: java.util.zip.ZipException: invalid distance too far back
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:164)
at sun.misc.Resource.getBytes(Resource.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:462)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.elasticsearch.search.SearchService.(SearchService.java:215)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at <<>>
at org.elasticsearch.node.Node.(Node.java:200)
at org.elasticsearch.node.Node.(Node.java:128)
at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:145)
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:178)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)

In elasticsearch config file I just set the cluster name and other settings are default.

OS: Ubuntu 14.04.1
Elasticsearch v2.2.0
Java: OpenJDK Runtime Environment (build 1.8.0_72-internal-b15)

What is the cause of the problem? How can I fix it?

Sounds like your Elasticsearch JAR is corrupt. I'd reinstall.

Is there a way to reinstall Elasticsearch and keep its data?

Yes. How did you install Elasticsearch in the first place?

Executing dpkg -i elasticsearch-2.2.0.deb just solved my problem.

Thanks Jason

Awesome. You're welcome; best wishes. :slight_smile: