Hi,
I'm trying to use Conductor server along with Elasticsearch 6.
I compiled everything following these instructions : https://github.com/Netflix/conductor/tree/master/es6-persistence
But when I run the Conductor as standalone I get this error :
Exception in thread "main" java.lang.InstantiationError: org.elasticsearch.common.transport.TransportAddress
at com.netflix.conductor.elasticsearch.ElasticSearchTransportClientProvider.get(ElasticSearchTransportClientProvider.java:48)
at com.netflix.conductor.elasticsearch.ElasticSearchTransportClientProvider.get(ElasticSearchTransportClientProvider.java:19)
at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72)
at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:65)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
at com.netflix.governator.event.ApplicationEventModule$ApplicationEventSubscribingProvisionListener.onProvision(ApplicationEventModule.java:89)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:133)
at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:63)
at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:62)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:110)
at com.google.inject.internal.ConstructorInjector.access$000(ConstructorInjector.java:33)
at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:95)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
at com.netflix.governator.event.ApplicationEventModule$ApplicationEventSubscribingProvisionListener.onProvision(ApplicationEventModule.java:89)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:133)
at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:92)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56)
at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:110)
at com.google.inject.internal.ConstructorInjector.access$000(ConstructorInjector.java:33)
at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:95)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
at com.netflix.governator.event.ApplicationEventModule$ApplicationEventSubscribingProvisionListener.onProvision(ApplicationEventModule.java:89)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:133)
at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:92)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:110)
at com.google.inject.internal.ConstructorInjector.access$000(ConstructorInjector.java:33)
at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:95)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
at com.netflix.governator.event.ApplicationEventModule$ApplicationEventSubscribingProvisionListener.onProvision(ApplicationEventModule.java:89)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:133)
at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:92)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)
at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:110)
at com.google.inject.internal.ConstructorInjector.access$000(ConstructorInjector.java:33)
at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:95)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
at com.netflix.governator.event.ApplicationEventModule$ApplicationEventSubscribingProvisionListener.onProvision(ApplicationEventModule.java:89)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:133)
at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:92)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205)
at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1085)
at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199)
at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
at com.google.inject.Guice.createInjector(Guice.java:99)
at com.google.inject.Guice.createInjector(Guice.java:73)
at com.netflix.conductor.bootstrap.Main.main(Main.java:53)
And when I try to use an external elasticsearch using HTTP I get this error :
1) Error injecting constructor, java.lang.NoSuchMethodError: org.elasticsearch.client.RestHighLevelClient.<init>(Lorg/elasticsearch/client/RestClientBuilder;)V
--
聽 | at com.netflix.conductor.dao.es6.index.ElasticSearchRestDAOV6.<init>(ElasticSearchRestDAOV6.java:140)
聽 | at com.netflix.conductor.dao.es6.index.ElasticSearchRestDAOV6.class(ElasticSearchRestDAOV6.java:86)
聽 | while locating com.netflix.conductor.dao.es6.index.ElasticSearchRestDAOV6
聽 | while locating com.netflix.conductor.dao.IndexDAO
聽 | for the 2nd parameter of com.netflix.conductor.core.orchestration.ExecutionDAOFacade.<init>(ExecutionDAOFacade.java:51)
聽 | at com.netflix.conductor.core.orchestration.ExecutionDAOFacade.class(ExecutionDAOFacade.java:41)
聽 | while locating com.netflix.conductor.core.orchestration.ExecutionDAOFacade
聽 | for the 6th parameter of com.netflix.conductor.core.execution.WorkflowExecutor.<init>(WorkflowExecutor.java:106)
聽 | while locating com.netflix.conductor.core.execution.WorkflowExecutor
聽 | for the 1st parameter of com.netflix.conductor.core.events.ActionProcessor.<init>(ActionProcessor.java:50)
聽 | at com.netflix.conductor.core.config.CoreModule.configure(CoreModule.java:51) (via modules: com.google.inject.util.Modules$OverrideModule -> com.netflix.conductor.server.ServerModule -> com.netflix.conductor.core.config.CoreModule)
聽 | while locating com.netflix.conductor.core.events.ActionProcessor
聽 | Caused by: java.lang.NoSuchMethodError: org.elasticsearch.client.RestHighLevelClient.<init>(Lorg/elasticsearch/client/RestClientBuilder;)V
聽 | at com.netflix.conductor.dao.es6.index.ElasticSearchRestDAOV6.<init>(ElasticSearchRestDAOV6.java:144)
聽 | at com.netflix.conductor.dao.es6.index.ElasticSearchRestDAOV6$$FastClassByGuice$$960a60af.newInstance(<generated>)
聽 | at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:89)
聽 | at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:111)
聽 | at com.google.inject.internal.ConstructorInjector.access$000(ConstructorInjector.java:33)
聽 | at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:95)
聽 | at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
聽 | at com.netflix.governator.event.ApplicationEventModule$ApplicationEventSubscribingProvisionListener.onProvision(ApplicationEventModule.java:89)
聽 | at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
聽 | at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:133)
聽 | at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
聽 | at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:92)
聽 | at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)
聽 | at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
聽 | at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
聽 | at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
聽 | at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
聽 | at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
聽 | at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56)
聽 | at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
聽 | at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
聽 | at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:110)
聽 | at com.google.inject.internal.ConstructorInjector.access$000(ConstructorInjector.java:33)
聽 | at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:95)
聽 | at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
聽 | at com.netflix.governator.event.ApplicationEventModule$ApplicationEventSubscribingProvisionListener.onProvision(ApplicationEventModule.java:89)
聽 | at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
聽 | at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:133)
聽 | at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
聽 | at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:92)
聽 | at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)
聽 | at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
聽 | at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
聽 | at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
聽 | at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
聽 | at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
聽 | at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
聽 | at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
聽 | at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:110)
聽 | at com.google.inject.internal.ConstructorInjector.access$000(ConstructorInjector.java:33)
聽 | at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:95)
聽 | at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
聽 | at com.netflix.governator.event.ApplicationEventModule$ApplicationEventSubscribingProvisionListener.onProvision(ApplicationEventModule.java:89)
聽 | at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
聽 | at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:133)
聽 | at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
聽 | at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:92)
聽 | at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)
聽 | at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
聽 | at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
聽 | at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:110)
聽 | at com.google.inject.internal.ConstructorInjector.access$000(ConstructorInjector.java:33)
聽 | at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:95)
聽 | at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
聽 | at com.netflix.governator.event.ApplicationEventModule$ApplicationEventSubscribingProvisionListener.onProvision(ApplicationEventModule.java:89)
聽 | at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
聽 | at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:133)
聽 | at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
聽 | at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:92)
聽 | at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)
聽 | at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
聽 | at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
聽 | at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
聽 | at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
聽 | at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
聽 | at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205)
聽 | at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199)
聽 | at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1085)
聽 | at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199)
聽 | at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180)
聽 | at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
聽 | at com.google.inject.Guice.createInjector(Guice.java:99)
聽 | at com.google.inject.Guice.createInjector(Guice.java:73)
聽 | at com.netflix.conductor.bootstrap.Main.main(Main.java:53)
Am I doing something wrong ? Is ES 6 really supported ?
@tafael / @dskarataev Please comment on your experience with using ES6 with conductor.
Hi @mrik974, I was able to run conductor following the instructions of es6-module from a fresh clone of master branch. The problem that you having is most commonly caused by incorrect libraries being packaged during build. Did you deleted the files "dependencies.lock" of every module before building ? If you don't, gradle will use the version declared in the file dependencies.lock that have the es5-client in it, and probably will cause the issue you are seeing. Tell me if that was the case and if it solves your issue.
Regards
My experience with ES6 is good so far, no problems for a few months in production. I also just followed the instruction and it works.
My ES6 settings:
workflow.elasticsearch.instanceType=external
workflow.elasticsearch.version=6
workflow.elasticsearch.cluster.health.color=green
workflow.elasticsearch.url=http://my-aws-es-endpoint:80
workflow.elasticsearch.index.name=conductor
workflow.elasticsearch.tasklog.index.name=task_log
Yes, I also had the problem with dependencies.lock initially and most probably following what @tafael wrote above should help.
Thanks! I'm not used to gradle, and I skipped the line To do that delete all dependencies.lock files.
I couldn't get it to work with HTTP (it issued a timeout after 30s) but with TCP port 9300 it works like a charm.
Closing the ticket now, as HTTP connection is another issue (maybe from my side again so I'll try a few things before posting).
Thank you for your help and keep up that good work!
Thank you for the prompt responses @tafael and @dskarataev .
Most helpful comment
My experience with ES6 is good so far, no problems for a few months in production. I also just followed the instruction and it works.
My ES6 settings:
Yes, I also had the problem with
dependencies.lockinitially and most probably following what @tafael wrote above should help.