You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Damodar Reddy T (JIRA)" <ji...@apache.org> on 2014/09/02 13:10:21 UTC

[jira] [Resolved] (CLOUDSTACK-7316) hitting java.lang.reflect.InvocationTargetException while starting usage server

     [ https://issues.apache.org/jira/browse/CLOUDSTACK-7316?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Damodar Reddy T resolved CLOUDSTACK-7316.
-----------------------------------------
    Resolution: Fixed

Problem:
-----------------------------
Usage Server was not starting when we enable DB Encryption due to not able to find "key" file in the class path when we install it on the same machine where management server was installed.
Analysis:
-----------------------------
Due to changes that are happened to, how CCP loads "key" file (earlier it used load key file from the hard coded absolute path "/etc/cloudstack/management/key") to read it from the class path, when we install usage server on the same machine where management server was installed it is not able to find the file "key" in the class path of the usage server which is "/etc/cloudstack/usage".
Proposed Solution:
----------------------------
During installation of the Usage server, if it is getting installed on the same machine where management server was installed add an alias to "/etc/cloudstack/management/key" in "/etc/cloudstacl/usage" as "key" if it exists.
QA Notes:
---------------------------
The default installation of the management server enables file based DB encryption so no need to enable it explicitly.

> hitting java.lang.reflect.InvocationTargetException while starting usage server
> -------------------------------------------------------------------------------
>
>                 Key: CLOUDSTACK-7316
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-7316
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: Usage
>    Affects Versions: 4.5.0
>            Reporter: shweta agarwal
>            Assignee: Damodar Reddy T
>            Priority: Blocker
>             Fix For: 4.5.0
>
>         Attachments: usage.tar.gz
>
>
> Repro steps:
> Install MS and usage server
> Start MS and usage server
> Bug:
> Usage server will stop after starting
> usage log shows :
> java.lang.reflect.InvocationTargetException
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:601)
>         at org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:243)
> Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'vmDiskUsageParser': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.cloud.usage.dao.UsageDao com.cloud.usage.parser.VmDiskUsageParser._usageDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'usageDaoImpl' defined in URL [jar:file:/usr/share/cloudstack-usage/lib/cloud-engine-schema-4.5.0-SNAPSHOT.jar!/com/cloud/usage/dao/UsageDaoImpl.class]: BeanPostProcessor before instantiation of bean failed; nested exception is net.sf.cglib.core.CodeGenerationException: java.lang.ExceptionInInitializerError-->null
>         at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:288)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1116)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
>         at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
>         at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
>         at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
>         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
>         at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:628)
>         at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
>         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
>         at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
>         at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
>         at com.cloud.usage.UsageServer.start(UsageServer.java:57)
>         ... 5 more
> Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.cloud.usage.dao.UsageDao com.cloud.usage.parser.VmDiskUsageParser._usageDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'usageDaoImpl' defined in URL [jar:file:/usr/share/cloudstack-usage/lib/cloud-engine-schema-4.5.0-SNAPSHOT.jar!/com/cloud/usage/dao/UsageDaoImpl.class]: BeanPostProcessor before instantiation of bean failed; nested exception is net.sf.cglib.core.CodeGenerationException: java.lang.ExceptionInInitializerError-->null
>         at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:514)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)