You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Simon Weller (JIRA)" <ji...@apache.org> on 2016/03/03 23:44:18 UTC

[jira] [Commented] (CLOUDSTACK-9300) MySQL HA feature StaticStrategy throws exception

    [ https://issues.apache.org/jira/browse/CLOUDSTACK-9300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15178748#comment-15178748 ] 

Simon Weller commented on CLOUDSTACK-9300:
------------------------------------------

This appears to be a 2 part issue.

Got tomcat to dump the class loader info into journald and got this...  WARNING: Problem with directory [/usr/share/cloudstack-mysql-ha/lib/*jar], exists: [false], isDirectory: [false], canRead

I changed ​*jar to *​.jar in the catalina.properities common.loader and that issue was no longer seen in the class loader logs..
After further debugging, I found that having mysql-connector-java.jar referenced in the global class path in /etc/sysconfig/cloudstack-management prevents the inherited StaticStrategy class from loading.
If you remove that and change to CLASSPATH=/etc/cloudstack/management:/usr/share/cloudstack-common:/usr/share/cloudstack-management/setup StaticStrategy loads
It was already referenced in the catalina.properities common.loader
I've tested that fix now on master and on 4.7.1. 

We'll complete testing after building new master rpms and then we'll submit a pull request on this.

> MySQL HA feature StaticStrategy throws exception
> ------------------------------------------------
>
>                 Key: CLOUDSTACK-9300
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9300
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>    Affects Versions: Future, 4.7.0, 4.8.0, 4.7.1
>         Environment: Centos 7
>            Reporter: Simon Weller
>            Priority: Minor
>
> 2016-03-03 12:00:13,204 INFO  [c.c.u.d.T.Transaction] (localhost-startStop-1:null) (logid:) Is Data Base High Availiability enabled? Ans : true
> 2016-03-03 12:00:13,239 INFO  [c.c.u.d.T.Transaction] (localhost-startStop-1:null) (logid:) The slaves configured for Cloud Data base is/are : localhost,localhost
> 2016-03-03 12:00:13,303 ERROR [c.c.u.d.Merovingian2] (localhost-startStop-1:null) (logid:) Unable to get a new db connection
> java.sql.SQLException: Invalid load balancing strategy 'com.cloud.utils.db.StaticStrategy'.
>         at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
>         at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:924)
>         at com.mysql.jdbc.Util.loadExtensions(Util.java:602)
>         at com.mysql.jdbc.LoadBalancingConnectionProxy.<init>(LoadBalancingConnectionProxy.java:280)
>         at com.mysql.jdbc.FailoverConnectionProxy.<init>(FailoverConnectionProxy.java:67)
>         at com.mysql.jdbc.NonRegisteringDriver.connectFailover(NonRegisteringDriver.java:433)
>         at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)
>         at java.sql.DriverManager.getConnection(DriverManager.java:571)
>         at java.sql.DriverManager.getConnection(DriverManager.java:215)
>         at org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:75)
>         at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
>         at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1188)
>         at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
>         at com.cloud.utils.db.TransactionLegacy.getStandaloneConnectionWithException(TransactionLegacy.java:202)
>         at com.cloud.utils.db.Merovingian2.<init>(Merovingian2.java:68)
>         at com.cloud.utils.db.Merovingian2.createLockMaster(Merovingian2.java:88)
>         at com.cloud.server.LockMasterListener.<init>(LockMasterListener.java:33)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
>         at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:148)
>         at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:121)
>         at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:277)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1077)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:981)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:487)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
>         at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
>         at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
>         at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
>         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:191)
>         at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:636)
>         at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:934)
>         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
>         at org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.loadContext(DefaultModuleDefinitionSet.java:145)
>         at org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet$2.with(DefaultModuleDefinitionSet.java:122)
>         at org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.withModule(DefaultModuleDefinitionSet.java:245)
>         at org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.withModule(DefaultModuleDefinitionSet.java:250)
>         at org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.withModule(DefaultModuleDefinitionSet.java:233)
>         at org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.loadContexts(DefaultModuleDefinitionSet.java:117)
>         at org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.load(DefaultModuleDefinitionSet.java:79)
>         at org.apache.cloudstack.spring.module.factory.ModuleBasedContextFactory.loadModules(ModuleBasedContextFactory.java:37)
>         at org.apache.cloudstack.spring.module.factory.CloudStackSpringContext.init(CloudStackSpringContext.java:71)
>         at org.apache.cloudstack.spring.module.factory.CloudStackSpringContext.<init>(CloudStackSpringContext.java:58)
>         at org.apache.cloudstack.spring.module.factory.CloudStackSpringContext.<init>(CloudStackSpringContext.java:62)
>         at org.apache.cloudstack.spring.module.web.CloudStackContextLoaderListener.contextInitialized(CloudStackContextLoaderListener.java:52)
>         at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
>         at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)



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