jong/testing.elasticsearch

Doesn't work with Debian Elasticsearch

Closed this issue · 3 comments

ukch commented

Debian (and probably other Linuxes too) installs its Elasticsearch binary in /usr/share/elasticsearch/bin/elasticsearch.

My test code:

import testing.elasticsearch
s = testing.elasticsearch.ElasticSearchServer(cmd="/usr/share/elasticsearch/bin/elasticsearch")
s.start()

This fails with the following errors:

Exception in thread "main" java.lang.NoClassDefFoundError: org/elasticsearch/common/jackson/dataformat/yaml/snakeyaml/error/YAMLException
    at org.elasticsearch.common.jackson.dataformat.yaml.YAMLFactory._createParser(YAMLFactory.java:426)
    at org.elasticsearch.common.jackson.dataformat.yaml.YAMLFactory.createParser(YAMLFactory.java:327)
    at org.elasticsearch.common.xcontent.yaml.YamlXContent.createParser(YamlXContent.java:90)
    at org.elasticsearch.common.settings.loader.XContentSettingsLoader.load(XContentSettingsLoader.java:45)
    at org.elasticsearch.common.settings.loader.YamlSettingsLoader.load(YamlSettingsLoader.java:46)
    at org.elasticsearch.common.settings.ImmutableSettings$Builder.loadFromStream(ImmutableSettings.java:982)
    at org.elasticsearch.common.settings.ImmutableSettings$Builder.loadFromUrl(ImmutableSettings.java:969)
    at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareSettings(InternalSettingsPreparer.java:110)
    at org.elasticsearch.bootstrap.Bootstrap.initialSettings(Bootstrap.java:144)
    at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:215)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32)
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.common.jackson.dataformat.yaml.snakeyaml.error.YAMLException
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    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)
    ... 11 more
Traceback (most recent call last):
  File "<ipython-input-20-d9b4c44c359b>", line 1, in <module>
    s.start()
  File "/home/joel/.virtualenvs/bbm-platform/lib/python3.5/site-packages/testing/elasticsearch.py", line 166, in start
    raise RuntimeError("Failed to start elasticsearch.")
RuntimeError: Failed to start elasticsearch.

I'm guessing this is because the Elasticsearch binary isn't looking for its classes in the right place, but there is no way to configure this with testing.elasticsearch.

ukch commented

Apologies, this is a known issue with Elasticsearch in Debian and not related to this library.

And another lame failure :

Package: elasticsearch
Version: 5.6.3
Source: elasticsearch
Maintainer: Elasticsearch Team info@elastic.co
Depends: libc6, adduser, bash

Did you forget to depend on default-jre here ?

jong commented

@johan-boule I'm sorry, I don't understand what you are asking. Could you clarify? This issue was closed over a year ago, feel free to create a new one.