Nick Allen created METRON-1783:
----------------------------------
Summary: Starting Metron REST Can Lead to
Key: METRON-1783
URL: https://issues.apache.org/jira/browse/METRON-1783
Project: Metron
Issue Type: Bug
Reporter: Nick Allen
After kerberizing Metron using the Mpack in Ambari, if you start REST before
the other Storm topologies, the Client JAAS configuration file does not get
laid down. This causes the following error in
`/var/log/metron/metron-rest.log`.
{code:java}
18/09/18 00:51:41 WARN
context.AnnotationConfigServletWebServerApplicationContext: Exception
encountered during context initialization - cancelling refresh attempt:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error
creating bean with name 'kafkaConfig': Unsatisfied dependency expressed through
field 'zkClient'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'zkClient' defined in class path resource
[org/apache/metron/rest/config/ZookeeperConfig.class]: Bean instantiation via
factory method failed; nested exception is
org.springframework.beans.BeanInstantiationException: Failed to instantiate
[org.I0Itec.zkclient.ZkClient]: Factory method 'zkClient' threw exception;
nested exception is java.lang.IllegalArgumentException: File
/usr/metron/0.6.0/client_jaas.confcannot be read.
18/09/18 00:51:41 ERROR imps.CuratorFrameworkImpl: Background exception was not
retry-able or retry gave up
java.lang.IllegalStateException: instance must be started before calling this
method
at
com.google.common.base.Preconditions.checkState(Preconditions.java:176)
at
org.apache.curator.framework.imps.CuratorFrameworkImpl.getData(CuratorFrameworkImpl.java:363)
at
org.apache.curator.framework.recipes.cache.TreeCache$TreeNode.doRefreshData(TreeCache.java:244)
at
org.apache.curator.framework.recipes.cache.TreeCache$TreeNode.refresh(TreeCache.java:209)
at
org.apache.curator.framework.recipes.cache.TreeCache$TreeNode.wasCreated(TreeCache.java:263)
at
org.apache.curator.framework.recipes.cache.TreeCache$TreeNode.processResult(TreeCache.java:397)
at
org.apache.curator.framework.imps.CuratorFrameworkImpl.sendToBackgroundCallback(CuratorFrameworkImpl.java:728)
at
org.apache.curator.framework.imps.CuratorFrameworkImpl.processBackgroundOperation(CuratorFrameworkImpl.java:505)
at
org.apache.curator.framework.imps.GetChildrenBuilderImpl$2.processResult(GetChildrenBuilderImpl.java:166)
at
org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:590)
at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:498)
18/09/18 00:51:41 INFO zookeeper.ZooKeeper: Session: 0x165e9a7dc4a002a closed
18/09/18 00:51:41 INFO jpa.LocalContainerEntityManagerFactoryBean: Closing JPA
EntityManagerFactory for persistence unit 'default'
18/09/18 00:51:41 INFO hikari.HikariDataSource: HikariPool-1 - Shutdown
initiated...
18/09/18 00:51:41 INFO zookeeper.ClientCnxn: EventThread shut down
18/09/18 00:51:41 INFO hikari.HikariDataSource: HikariPool-1 - Shutdown
completed.
Sep 18, 2018 12:51:41 AM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service [Tomcat]
18/09/18 00:51:41 INFO logging.ConditionEvaluationReportLoggingListener:
Error starting ApplicationContext. To display the conditions report re-run your
application with 'debug' enabled.
18/09/18 00:51:41 ERROR boot.SpringApplication: Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error
creating bean with name 'kafkaConfig': Unsatisfied dependency expressed through
field 'zkClient'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'zkClient' defined in class path resource
[org/apache/metron/rest/config/ZookeeperConfig.class]: Bean instantiation via
factory method failed; nested exception is
org.springframework.beans.BeanInstantiationException: Failed to instantiate
[org.I0Itec.zkclient.ZkClient]: Factory method 'zkClient' threw exception;
nested exception is java.lang.IllegalArgumentException: File
/usr/metron/0.6.0/client_jaas.confcannot be read.
at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:587)
at
org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:373)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:578)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:501)
at
org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
at
org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)
at
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1255)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1243)
at
org.apache.metron.rest.MetronRestApplication.main(MetronRestApplication.java:36)
Caused by: org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'zkClient' defined in class path resource
[org/apache/metron/rest/config/ZookeeperConfig.class]: Bean instantiation via
factory method failed; nested exception is
org.springframework.beans.BeanInstantiationException: Failed to instantiate
[org.I0Itec.zkclient.ZkClient]: Factory method 'zkClient' threw exception;
nested exception is java.lang.IllegalArgumentException: File
/usr/metron/0.6.0/client_jaas.confcannot be read.
at
org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:587)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1250)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1099)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:541)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:501)
at
org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at
org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065)
at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:584)
... 19 more
Caused by: org.springframework.beans.BeanInstantiationException: Failed to
instantiate [org.I0Itec.zkclient.ZkClient]: Factory method 'zkClient' threw
exception; nested exception is java.lang.IllegalArgumentException: File
/usr/metron/0.6.0/client_jaas.confcannot be read.
at
org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
at
org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:579)
... 31 more
Caused by: java.lang.IllegalArgumentException: File
/usr/metron/0.6.0/client_jaas.confcannot be read.
at org.I0Itec.zkclient.ZkClient.isZkSaslEnabled(ZkClient.java:904)
at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:155)
at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:130)
at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:97)
at
org.apache.metron.rest.config.ZookeeperConfig.zkClient(ZookeeperConfig.java:63)
at
org.apache.metron.rest.config.ZookeeperConfig$$EnhancerBySpringCGLIB$$e6070ab6.CGLIB$zkClient$1(<generated>)
at
org.apache.metron.rest.config.ZookeeperConfig$$EnhancerBySpringCGLIB$$e6070ab6$$FastClassBySpringCGLIB$$8bbe133d.invoke(<generated>)
at
org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at
org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361)
at
org.apache.metron.rest.config.ZookeeperConfig$$EnhancerBySpringCGLIB$$e6070ab6.zkClient(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 32 more{code}
This was originally found here:
[https://github.com/apache/metron/pull/1192#issuecomment-422227976.]
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)