Let me look at this today.  The spring changes I have will greatly improve 
these initialization issues.  The current state of spring on master makes it 
very difficult to deterministic ally initialize beans.  With the spring changes 
I have in place the database upgrade stuff is in the bootstrap context and will 
be initialized before everything else.

You mentioned there's an issue with the database upgrade depending on a DAO.  
I'll look into that and fix it today.  The fix will be on the 
spring-modularization branch which I'd like to get merge ASAP.

Darren

> On Oct 3, 2013, at 2:08 AM, Hugo Trippaers <h...@trippaers.nl> wrote:
> 
> Heya guys,
> 
> I'm still running into this problem. Our jenkins automagically installs and 
> tests the latest packages based on master. With a clean database on clean 
> machines.
> 
> The error reported is similar to the error encountered:
> 
> Caused by: com.cloud.utils.exception.CloudRuntimeException: DB Exception on: 
> com.mysql.jdbc.JDBC4PreparedStatement@64726693: SELECT 
> configuration.instance, configuration.component, configuration.name, 
> configuration.value, configuration.default_value, configuration.description, 
> configuration.category, configuration.is_dynamic, configuration.scope, 
> configuration.updated FROM configuration WHERE configuration.name = 
> _binary'storage.cache.replacement.lru.interval'  ORDER BY RAND() LIMIT 1
>    at 
> com.cloud.utils.db.GenericDaoBase.searchIncludingRemoved(GenericDaoBase.java:421)
>    at 
> com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
>    at 
> com.cloud.utils.db.GenericDaoBase.searchIncludingRemoved(GenericDaoBase.java:356)
>    at 
> com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
>    at 
> com.cloud.utils.db.GenericDaoBase.findOneIncludingRemovedBy(GenericDaoBase.java:869)
>    at 
> com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
>    at 
> org.apache.cloudstack.framework.config.dao.ConfigurationDaoImpl.findByName(ConfigurationDaoImpl.java:201)
>    at 
> com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
>    at 
> org.apache.cloudstack.framework.config.dao.ConfigurationDaoImpl.getValue(ConfigurationDaoImpl.java:166)
>    at 
> com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
>    at 
> org.apache.cloudstack.storage.cache.manager.StorageCacheReplacementAlgorithmLRU.initialize(StorageCacheReplacementAlgorithmLRU.java:63)
>    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:616)
>    at 
> org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:346)
>    at 
> org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:299)
>    at 
> org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:132)
>    ... 79 more
> Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown 
> column 'configuration.default_value' in 'field list'
>    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:532)
>    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
>    at com.mysql.jdbc.Util.getInstance(Util.java:386)
>    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053)
>    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074)
>    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006)
>    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2468)
>    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2629)
>    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2719)
>    at 
> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
>    at 
> com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2318)
>    at 
> org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
>    at 
> org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
>    at 
> com.cloud.utils.db.GenericDaoBase.searchIncludingRemoved(GenericDaoBase.java:415)
>    ... 116 more
> 
> The full log is here: 
> http://nvpmadm1.nvp.strocamp.net:8080/job/cloudstack-qa-env-test/505/console
> 
> This still appears to be an issue. How can we make sure that the database is 
> properly updated before this piece of code is hit? 
> 
> Cheers,
> 
> Hugo
> 
> 
>> On Sep 24, 2013, at 4:13 PM, Daan Hoogland <daan.hoogl...@gmail.com> wrote:
>> 
>> works in the latest version
>> 
>>> On Tue, Sep 24, 2013 at 4:09 PM, Daan Hoogland <daan.hoogl...@gmail.com> 
>>> wrote:
>>> I ran into this as well, As I did some change to schema-420-430.sql I
>>> was my primary suspect. It does not have to do with my field though.
>>> Still looking,
>>> Daan
>>> 
>>>> On Tue, Sep 24, 2013 at 2:17 PM, Wei ZHOU <ustcweiz...@gmail.com> wrote:
>>>> I ran a fresh installation on devcloud just now, it works.
>>>> some records in configuration table are introduced by sql files, and
>>>> ConfigurationServerImpl will check and insert the records if not exist.
>>>> 
>>>> 
>>>> 2013/9/24 Hugo Trippaers <h...@trippaers.nl>
>>>> 
>>>>> Hey all,
>>>>> 
>>>>> Noticed an interesting problem today. I was trying to start a management
>>>>> server based on the latest sources in master, but failed. The reason was
>>>>> that the configuration threw an exception that a certain column in the
>>>>> database fit not exist. This column is added during the database upgrade
>>>>> sequence, but apparently the configuration is already accessed before the
>>>>> database upgrade takes place.
>>>>> 
>>>>> Seems like a chicken and egg problem to me.
>>>>> 
>>>>> Did anybody else run into this problem?
>>>>> 
>>>>> Cheers,
>>>>> 
>>>>> Hugo
> 

Reply via email to