How do I troubleshoot "Error injecting constructor" when adding an amazon S3 repository to ElasticSearch? -


i've been following instructions here , i've completed step 1, installation of plugin. i'm trying add snapshot executing following command in sense:

put /_snapshot/elasticsearch {      "type": "s3",      "settings": {          "bucket": "somebucket",          "base_path" : "elasticsearch",          "secret_key": "xxx",          "acess_key" : "xxx"         } } 

from following error:

{    "error": "repositoryexception[[elasticsearch] failed create repository]; nested: creationexception[guice creation errors:\n\n1) error injecting constructor, java.lang.noclassdeffounderror: org/elasticsearch/common/blobstore/immutableblobcontainer\n  @ org.elasticsearch.repositories.s3.s3repository.<init>(unknown source)\n  while locating org.elasticsearch.repositories.s3.s3repository\n  while locating org.elasticsearch.repositories.repository\n\n1 error]; nested: noclassdeffounderror[org/elasticsearch/common/blobstore/immutableblobcontainer]; nested: classnotfoundexception[org.elasticsearch.common.blobstore.immutableblobcontainer]; ",    "status": 500 } 

any ideas on how start troubleshooting this? information in logs is:

[2015-07-13 16:20:40,519][warn ][repositories             ] [app1050-ela-dacq] failed create repository [s3][elasticsearch -d] org.elasticsearch.common.inject.creationexception: guice creation errors:  1) error injecting constructor, java.lang.noclassdeffounderror: org/elasticsearch/common/blobstore/immutableblobcontainer   @ org.elasticsearch.repositories.s3.s3repository.<init>(unknown source)   while locating org.elasticsearch.repositories.s3.s3repository   while locating org.elasticsearch.repositories.repository  1 error         @ org.elasticsearch.common.inject.internal.errors.throwcreationexceptioniferrorsexist(errors.java:344)         @ org.elasticsearch.common.inject.injectorbuilder.injectdynamically(injectorbuilder.java:178)         @ org.elasticsearch.common.inject.injectorbuilder.build(injectorbuilder.java:110)         @ org.elasticsearch.common.inject.injectorimpl.createchildinjector(injectorimpl.java:131)         @ org.elasticsearch.common.inject.modulesbuilder.createchildinjector(modulesbuilder.java:69)         @ org.elasticsearch.repositories.repositoriesservice.createrepositoryholder(repositoriesservice.java:409)         @ org.elasticsearch.repositories.repositoriesservice.registerrepository(repositoriesservice.java:373)         @ org.elasticsearch.repositories.repositoriesservice.access$100(repositoriesservice.java:57)         @ org.elasticsearch.repositories.repositoriesservice$1.execute(repositoriesservice.java:112)         @ org.elasticsearch.cluster.service.internalclusterservice$updatetask.run(internalclusterservice.java:374)         @ org.elasticsearch.common.util.concurrent.prioritizedesthreadpoolexecutor$tiebreakingprioritizedrunnable.runandclean(prioritizedesthreadpoolexecutor.java:188)         @ org.elasticsearch.common.util.concurrent.prioritizedesthreadpoolexecutor$tiebreakingprioritizedrunnable.run(prioritizedesthreadpoolexecutor.java:158)         @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1142)         @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:617)         @ java.lang.thread.run(thread.java:745) caused by: java.lang.noclassdeffounderror: org/elasticsearch/common/blobstore/immutableblobcontainer         @ org.elasticsearch.repositories.s3.s3repository.<init>(s3repository.java:124)         @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method)         @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:62)         @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:45)         @ java.lang.reflect.constructor.newinstance(constructor.java:422)         @ org.elasticsearch.common.inject.defaultconstructionproxyfactory$1.newinstance(defaultconstructionproxyfactory.java:54)         @ org.elasticsearch.common.inject.constructorinjector.construct(constructorinjector.java:86)         @ org.elasticsearch.common.inject.constructorbindingimpl$factory.get(constructorbindingimpl.java:98)         @ org.elasticsearch.common.inject.factoryproxy.get(factoryproxy.java:52)         @ org.elasticsearch.common.inject.providertointernalfactoryadapter$1.call(providertointernalfactoryadapter.java:45)         @ org.elasticsearch.common.inject.injectorimpl.callincontext(injectorimpl.java:837)         @ org.elasticsearch.common.inject.providertointernalfactoryadapter.get(providertointernalfactoryadapter.java:42)         @ org.elasticsearch.common.inject.scopes$1$1.get(scopes.java:57)         @ org.elasticsearch.common.inject.internalfactorytoprovideradapter.get(internalfactorytoprovideradapter.java:45)         @ org.elasticsearch.common.inject.injectorbuilder$1.call(injectorbuilder.java:200)         @ org.elasticsearch.common.inject.injectorbuilder$1.call(injectorbuilder.java:193)     @ org.elasticsearch.common.inject.injectorimpl.callincontext(injectorimpl.java:830)     @ org.elasticsearch.common.inject.injectorbuilder.loadeagersingletons(injectorbuilder.java:193) 

note version of elasticsearch i'm using 1.6.0 plugin version 2.6.0. output of command 'java -version' following:

openjdk version "1.8.0_45" openjdk runtime environment (build 1.8.0_45-b13) openjdk 64-bit server vm (build 25.45-b02, mixed mode) 

it turns out version of plugin had been installed 2.2.0 instead of 2.6.0.

the answer tlrx gives in here clue.

it's remember restart elasticsearch after you've updated plugin


Comments