You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by Hugo Trippaers <hu...@trippaers.nl> on 2013/10/03 11:08:16 UTC

Re: Configuration table changes and database update

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 <da...@gmail.com> wrote:

> works in the latest version
> 
> On Tue, Sep 24, 2013 at 4:09 PM, Daan Hoogland <da...@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 <us...@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 <hu...@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


Re: Configuration table changes and database update

Posted by Darren Shepherd <da...@gmail.com>.
I've done my best to test various DB upgrade scenarios and I believe
all this stuff should be fixed in the spring-modularization branch.  I
stated wrong before, the database upgrade stuff is in the system
context.  So the majority of ACS is in the "core" context which is
initialized after system.

Darren

On Thu, Oct 3, 2013 at 7:35 AM, Darren Shepherd
<da...@gmail.com> wrote:
> 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 <hu...@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 <da...@gmail.com> wrote:
>>>
>>> works in the latest version
>>>
>>>> On Tue, Sep 24, 2013 at 4:09 PM, Daan Hoogland <da...@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 <us...@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 <hu...@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
>>

Re: Configuration table changes and database update

Posted by Darren Shepherd <da...@gmail.com>.
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 <hu...@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 <da...@gmail.com> wrote:
>> 
>> works in the latest version
>> 
>>> On Tue, Sep 24, 2013 at 4:09 PM, Daan Hoogland <da...@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 <us...@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 <hu...@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
> 

Re: Configuration table changes and database update

Posted by Hugo Trippaers <hu...@trippaers.nl>.
It's fixed with commit 3f583684c6ddcf7efb66adada63957f8ca06cfdc

Not really the nicest of fixes, but at least the QA can continue. For a structural fix we would need to run the database upgrade check before initialising any of the beans. That can't be done yet as the upgrade checker depends on a dao bean at the moment.

Cheers,

Hugo

On Oct 3, 2013, at 12:47 PM, Hugo Trippaers <tr...@gmail.com> wrote:

> Just pushed a stop-gap fix to master. I'm running my qa tests now to check if it is ok now.
> 
> Cheers,
> 
> Hugo
> 
> Sent from my iPhone
> 
>> On 3 okt. 2013, at 12:18, Prasanna Santhanam <ts...@apache.org> wrote:
>> 
>> This was my problem too for running tests o master :(
>> 
>> I posted CLOUDSTACK-4791 today for the issue.
>> 
>> 
>>> On Thu, Oct 03, 2013 at 11:08:16AM +0200, Hugo Trippaers 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 <da...@gmail.com> wrote:
>>>> 
>>>> works in the latest version
>>>> 
>>>>> On Tue, Sep 24, 2013 at 4:09 PM, Daan Hoogland <da...@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 <us...@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 <hu...@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
>> 
>> -- 
>> Prasanna.,
>> 
>> ------------------------
>> Powered by BigRock.com
>> 


Re: Configuration table changes and database update

Posted by Hugo Trippaers <tr...@gmail.com>.
Just pushed a stop-gap fix to master. I'm running my qa tests now to check if it is ok now.

Cheers,

Hugo

Sent from my iPhone

> On 3 okt. 2013, at 12:18, Prasanna Santhanam <ts...@apache.org> wrote:
> 
> This was my problem too for running tests o master :(
> 
> I posted CLOUDSTACK-4791 today for the issue.
> 
> 
>> On Thu, Oct 03, 2013 at 11:08:16AM +0200, Hugo Trippaers 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 <da...@gmail.com> wrote:
>>> 
>>> works in the latest version
>>> 
>>>> On Tue, Sep 24, 2013 at 4:09 PM, Daan Hoogland <da...@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 <us...@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 <hu...@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
> 
> -- 
> Prasanna.,
> 
> ------------------------
> Powered by BigRock.com
> 

Re: Configuration table changes and database update

Posted by Prasanna Santhanam <ts...@apache.org>.
This was my problem too for running tests o master :(

I posted CLOUDSTACK-4791 today for the issue.


On Thu, Oct 03, 2013 at 11:08:16AM +0200, Hugo Trippaers 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 <da...@gmail.com> wrote:
> 
> > works in the latest version
> > 
> > On Tue, Sep 24, 2013 at 4:09 PM, Daan Hoogland <da...@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 <us...@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 <hu...@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

-- 
Prasanna.,

------------------------
Powered by BigRock.com