-
Type:
Regression Bug
-
Status: Closed
-
Resolution: Fixed
-
Affects Version/s: 7.1.X, Master
-
Fix Version/s: 7.0.0 DXP FP80, 7.0.10.11 DXP SP11, 7.0.X, 7.1.10 DXP FP3, 7.1.X, Master
-
Component/s: Search Infrastructure > Elasticsearch Connector
-
Branch Version/s:7.1.x, 7.0.x
-
Backported to Branch:Committed
-
Fix Priority:5
-
Last Working Version:
Steps to reproduce issue:
- Set up a Liferay cluster with two nodes
- Configure both nodes to use remote Elasticsearch instance
- In osgi/config, set the following in com.liferay.portal.search.elasticsearch6.configuration.ElasticsearchConfiguration.config
httpEnabled=B"false" logExceptionsOnly=B"false" operationMode="REMOTE"
- In osgi/config, set the following in com.liferay.portal.search.elasticsearch6.configuration.ElasticsearchConfiguration.config
- Configure remote Elasticsearch server
- Install analysis-icu, analysis-kuromoji, analysis-smartcn, and analysis-stempel plugins
- In path/to/elasticsearch/config/elasticsearcy.yml, set the following:
discovery.zen.minimum_master_nodes: 1 cluster.name: LiferayElasticsearchCluster
- Start the Elasticsearch server
- Start the first node
- Start the second node
Expected result: Nodes connect to remote Elasticsearch instance with no errors
Actual result: The second node throws a NullPointerException during startup when attempting to configure for remote Elasticsearch:
[exec] Exception in thread "Elasticsearch initialization thread" java.lang.NullPointerException [exec] at java.util.logging.Logger.doSetParent(Logger.java:2070) [exec] at java.util.logging.Logger.getAnonymousLogger(Logger.java:644) [exec] at java.util.logging.Logger.getAnonymousLogger(Logger.java:603) [exec] at org.elasticsearch.common.inject.InjectorShell$LoggerFactory.get(InjectorShell.java:240) [exec] at org.elasticsearch.common.inject.InjectorShell$LoggerFactory.get(InjectorShell.java:235) [exec] at org.elasticsearch.common.inject.InjectorImpl$4$1.call(InjectorImpl.java:762) [exec] at org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:818) [exec] at org.elasticsearch.common.inject.InjectorImpl$4.get(InjectorImpl.java:757) [exec] at org.elasticsearch.common.inject.InheritingState.makeAllBindingsToEagerSingletons(InheritingState.java:157) [exec] at org.elasticsearch.common.inject.InjectorImpl.readOnlyAllSingletons(InjectorImpl.java:847) [exec] at org.elasticsearch.common.inject.ModulesBuilder.createInjector(ModulesBuilder.java:46) [exec] at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:191) [exec] at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:262) [exec] at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:128) [exec] at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:114) [exec] at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:104) [exec] at com.liferay.portal.search.elasticsearch6.internal.connection.RemoteElasticsearchConnection.createTransportClient(RemoteElasticsearchConnection.java:144) [exec] at com.liferay.portal.search.elasticsearch6.internal.connection.RemoteElasticsearchConnection.createClient(RemoteElasticsearchConnection.java:119) [exec] at com.liferay.portal.search.elasticsearch6.internal.connection.BaseElasticsearchConnection.connect(BaseElasticsearchConnection.java:65) [exec] at com.liferay.portal.search.elasticsearch6.internal.connection.ElasticsearchConnectionManager.connect(ElasticsearchConnectionManager.java:51) [exec] at com.liferay.portal.search.elasticsearch6.internal.ElasticsearchEngineConfigurator.lambda$initialize$0(ElasticsearchEngineConfigurator.java:91) [exec] at java.lang.Thread.run(Thread.java:745) [exec] 19:44:23,638 ERROR [Framework Event Dispatcher: Equinox Container: 37263ec1-89b0-4106-9b0b-38ea6966254c][com_liferay_portal_search:97] FrameworkEvent ERROR [exec] java.lang.NullPointerException [exec] at com.liferay.portal.search.elasticsearch6.internal.connection.BaseElasticsearchConnection.getClusterHealthResponse(BaseElasticsearchConnection.java:77) [exec] at com.liferay.portal.search.elasticsearch6.internal.connection.ElasticsearchConnectionManager.getClusterHealthResponse(ElasticsearchConnectionManager.java:81) [exec] at com.liferay.portal.search.elasticsearch6.internal.ElasticsearchSearchEngine.waitForYellowStatus(ElasticsearchSearchEngine.java:341) [exec] at com.liferay.portal.search.elasticsearch6.internal.ElasticsearchSearchEngine.initialize(ElasticsearchSearchEngine.java:112) [exec] at com.liferay.portal.kernel.search.SearchEngineProxyWrapper.initialize(SearchEngineProxyWrapper.java:95) [exec] at com.liferay.portal.kernel.search.AbstractSearchEngineConfigurator.setSearchEngine(AbstractSearchEngineConfigurator.java:450) [exec] at com.liferay.portal.kernel.search.AbstractSearchEngineConfigurator.initSearchEngine(AbstractSearchEngineConfigurator.java:380) [exec] at com.liferay.portal.kernel.search.AbstractSearchEngineConfigurator.initialize(AbstractSearchEngineConfigurator.java:303) [exec] at com.liferay.portal.search.elasticsearch6.internal.ElasticsearchEngineConfigurator.initialize(ElasticsearchEngineConfigurator.java:107) [exec] at com.liferay.portal.kernel.search.AbstractSearchEngineConfigurator$1.dependenciesFulfilled(AbstractSearchEngineConfigurator.java:79) [exec] at com.liferay.registry.dependency.ServiceDependencyManager.verifyDependencies(ServiceDependencyManager.java:146) [exec] at com.liferay.registry.dependency.ServiceDependencyManager$ServiceDependencyServiceTrackerCustomizer.addingService(ServiceDependencyManager.java:242) [exec] at com.liferay.registry.internal.ServiceTrackerCustomizerAdapter.addingService(ServiceTrackerCustomizerAdapter.java:35) [exec] at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:943) [exec] at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1) [exec] at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) [exec] at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183) [exec] at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:321) [exec] at com.liferay.registry.internal.ServiceTrackerWrapper.open(ServiceTrackerWrapper.java:191) [exec] at com.liferay.registry.dependency.ServiceDependency.open(ServiceDependency.java:73) [exec] at com.liferay.registry.dependency.ServiceDependencyManager.registerDependencies(ServiceDependencyManager.java:72) [exec] at com.liferay.portal.kernel.search.AbstractSearchEngineConfigurator.afterPropertiesSet(AbstractSearchEngineConfigurator.java:88) [exec] at com.liferay.portal.search.internal.SearchEngineHelperImpl$1.addingService(SearchEngineHelperImpl.java:303) [exec] at com.liferay.portal.search.internal.SearchEngineHelperImpl$1.addingService(SearchEngineHelperImpl.java:287) [exec] at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:943) [exec] at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1) [exec] at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) [exec] at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) [exec] at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:903) [exec] at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:891) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228) [exec] at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469) [exec] at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:906) [exec] at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:892) [exec] at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128) [exec] at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:959) [exec] at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:732) [exec] at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1053) [exec] at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1007) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168) [exec] at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125) [exec] at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:891) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228) [exec] at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469) [exec] at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:906) [exec] at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:892) [exec] at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128) [exec] at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:959) [exec] at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:732) [exec] at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1053) [exec] at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1007) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168) [exec] at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125) [exec] at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:891) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228) [exec] at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469) [exec] at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:906) [exec] at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:892) [exec] at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128) [exec] at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:959) [exec] at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:732) [exec] at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1053) [exec] at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1007) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168) [exec] at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125) [exec] at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:891) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228) [exec] at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469) [exec] at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:906) [exec] at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:892) [exec] at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128) [exec] at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:959) [exec] at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:732) [exec] at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1053) [exec] at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1007) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880) [exec] at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168) [exec] at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125) [exec] at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:891) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127) [exec] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228) [exec] at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469) [exec] at com.liferay.portal.bootstrap.ModuleFrameworkImpl._registerService(ModuleFrameworkImpl.java:1293) [exec] at com.liferay.portal.bootstrap.ModuleFrameworkImpl._registerApplicationContext(ModuleFrameworkImpl.java:1264) [exec] at com.liferay.portal.bootstrap.ModuleFrameworkImpl.registerContext(ModuleFrameworkImpl.java:327) [exec] at com.liferay.portal.module.framework.ModuleFrameworkUtilAdapter.registerContext(ModuleFrameworkUtilAdapter.java:71) [exec] at com.liferay.portal.spring.context.PortalContextLoaderListener.contextInitialized(PortalContextLoaderListener.java:355) [exec] at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4643) [exec] at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5109) [exec] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [exec] at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:742) [exec] at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:718) [exec] at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:703) [exec] at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630) [exec] at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1840) [exec] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [exec] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [exec] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [exec] at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112) [exec] at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:525) [exec] at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:424) [exec] at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1585) [exec] at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:308) [exec] at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) [exec] at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:424) [exec] at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:367) [exec] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:966) [exec] at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:839) [exec] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [exec] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1427) [exec] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1417) [exec] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [exec] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [exec] at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) [exec] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:943) [exec] at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:258) [exec] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [exec] at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422) [exec] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [exec] at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:770) [exec] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [exec] at org.apache.catalina.startup.Catalina.start(Catalina.java:682) [exec] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [exec] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [exec] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [exec] at java.lang.reflect.Method.invoke(Method.java:498) [exec] at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350) [exec] at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
Reproduced on:
Tomcat 9.0.10 + MySQL 5.7
Portal master GIT ID: ee12c7b2c59e12f2c06942e6575f95d137457d66
- is a dependency of
-
LPS-86715 Unit test: Remote Elasticsearch with incorrect Context ClassLoader goes NPE in java.util.logging.Logger.getAnonymousLogger()
-
- Closed
-
- relates
-
LPS-103124 Redeploying Elasticsearch 7 Connector with REST client: "java.util.ServiceConfigurationError: org.elasticsearch.plugins.spi.NamedXContentProvider: Provider org.elasticsearch.client.dataframe.DataFrameNamedXContentProvider not a subtype"
- Closed