incubator-cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Prachi Damle <Prachi.Da...@citrix.com>
Subject RE: DB upgrade to 4.0 version
Date Fri, 24 Aug 2012 23:00:12 GMT
I have attached dump of the physical_network_service_providers table here. Hope this helps.

Thanks,
Prachi

-----Original Message-----
From: Hugo Trippaers [mailto:HTrippaers@schubergphilis.com] 
Sent: Friday, August 24, 2012 7:53 AM
To: cloudstack-dev@incubator.apache.org; Alena Prokharchyk
Subject: RE: DB upgrade to 4.0 version

Hmm..  I have no idea yet what is causing this.

Can either one of you send me the current ddl (like a mysqldump without data) of that table?
 I can easily fix it by adding a "limit 1" to the subquery, but I would like to understand
why it is returning more results for you.

Cheers,

Hugo

-----Original Message-----
From: Prachi Damle [mailto:Prachi.Damle@citrix.com] 
Sent: Wednesday, August 22, 2012 12:53 AM
To: cloudstack-dev@incubator.apache.org; Alena Prokharchyk
Subject: RE: DB upgrade to 4.0 version

Hugo,

I also see this issue while unittesting the db upgrade. I started with a 2.2.14 db schema.
Upgrade fails with this:

2012-08-21 15:29:46,510 DEBUG [utils.db.ScriptRunner] (main:null) -- rrq 5839
2012-08-21 15:29:46,510 DEBUG [utils.db.ScriptRunner] (main:null) -- Remove the unique constraint
on physical_network_id, provider_name from physical_network_service_providers
2012-08-21 15:29:46,510 DEBUG [utils.db.ScriptRunner] (main:null) -- Because the name of this
contraint is not set we need this roundabout way
2012-08-21 15:29:46,510 DEBUG [utils.db.ScriptRunner] (main:null) -- The key is also used
by the foreign key constraint so drop and recreate that one
2012-08-21 15:29:46,510 DEBUG [utils.db.ScriptRunner] (main:null) ALTER TABLE physical_network_service_providers
DROP FOREIGN KEY fk_pnetwork_service_providers__physical_network_id 
2012-08-21 15:29:46,528 DEBUG [utils.db.ScriptRunner] (main:null) SET @constraintname = (select
CONCAT(CONCAT('DROP INDEX ', A.CONSTRAINT_NAME), ' ON physical_network_service_providers'
) from information_schema.key_column_usage A JOIN information_schema.key_column_usage B ON
B.table_name = 'physical_network_service_providers' AND B.COLUMN_NAME = 'provider_name' AND
A.COLUMN_NAME ='physical_network_id' AND B.CONSTRAINT_NAME=A.CONSTRAINT_NAME where A.table_name
= 'physical_network_service_providers') 
2012-08-21 15:29:46,537 ERROR [utils.db.ScriptRunner] (main:null) Error executing: SET @constraintname
= (select CONCAT(CONCAT('DROP INDEX ', A.CONSTRAINT_NAME), ' ON physical_network_service_providers'
) from information_schema.key_column_usage A JOIN information_schema.key_column_usage B ON
B.table_name = 'physical_network_service_providers' AND B.COLUMN_NAME = 'provider_name' AND
A.COLUMN_NAME ='physical_network_id' AND B.CONSTRAINT_NAME=A.CONSTRAINT_NAME where A.table_name
= 'physical_network_service_providers') 
2012-08-21 15:29:46,538 ERROR [utils.db.ScriptRunner] (main:null) java.sql.SQLException: Subquery
returns more than 1 row
2012-08-21 15:29:46,545 ERROR [cloud.upgrade.DatabaseUpgradeChecker] (main:null) Unable to
execute upgrade script: C:\tomcat\apache-tomcat-6.0.29\webapps\client\WEB-INF\lib\db\schema-302to40.sql
java.sql.SQLException: Subquery returns more than 1 row
	at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:181)
	at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:79)
	at com.cloud.upgrade.DatabaseUpgradeChecker.runScript(DatabaseUpgradeChecker.java:166)
	at com.cloud.upgrade.DatabaseUpgradeChecker.upgrade(DatabaseUpgradeChecker.java:226)
	at com.cloud.upgrade.DatabaseUpgradeChecker.check(DatabaseUpgradeChecker.java:348)
	at com.cloud.utils.component.ComponentLocator.runCheckers(ComponentLocator.java:273)
	at com.cloud.utils.component.ComponentLocator.parse(ComponentLocator.java:245)
	at com.cloud.utils.component.ComponentLocator.getLocatorInternal(ComponentLocator.java:836)
	at com.cloud.utils.component.ComponentLocator.getLocator(ComponentLocator.java:874)
	at com.cloud.utils.component.ComponentLocator.getComponent(ComponentLocator.java:416)
	at com.cloud.utils.component.ComponentLocator.getComponent(ComponentLocator.java:409)
	at com.cloud.servlet.CloudStartupServlet.init(CloudStartupServlet.java:44)
	at javax.servlet.GenericServlet.init(GenericServlet.java:212)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4350)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4659)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
	at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
	at org.apache.catalina.core.StandardService.start(StandardService.java:519)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
2012-08-21 15:29:46,647 DEBUG [db.Transaction.Transaction] (main:null) Rolling back the transaction:
Time = 657 Name =  Upgrade; called by -Transaction.rollback:841-Transaction.removeUpTo:784-Transaction.close:603-DatabaseUpgradeChecker.upgrade:256-DatabaseUpgradeChecker.check:348-ComponentLocator.runCheckers:273-ComponentLocator.parse:245-ComponentLocator.getLocatorInternal:836-ComponentLocator.getLocator:874-ComponentLocator.getComponent:416-ComponentLocator.getComponent:409-CloudStartupServlet.init:44

-----Original Message-----
From: Hugo Trippaers [mailto:HTrippaers@schubergphilis.com] 
Sent: Monday, August 20, 2012 4:23 AM
To: Alena Prokharchyk; cloudstack-dev@incubator.apache.org
Subject: RE: DB upgrade to 4.0 version

Hey Alena,

I did some checking and unfortunately I can't reproduce your issue. I started with a fresh
3.0.2 installation using the create_schema.sql. I get only one entry in the resulting list.
Can you show me the schema only dump of the database (or only of the table physical_network_service_providers
) you are having the problems with so I can see what is going on?

Cheers,

Hugo

-----Original Message-----
From: Alena Prokharchyk [mailto:Alena.Prokharchyk@citrix.com] 
Sent: Tuesday, August 14, 2012 1:31 AM
To: cloudstack-dev@incubator.apache.org
Cc: Hugo Trippaers
Subject: DB upgrade to 4.0 version

I started looking at the DB upgrade part of the code for 4.0 release, and fixed the following:

1) joined 3.0.2->3.0.3 and 3.0.3->4.0 upgrade paths to one: 3.0.2 to 4.0.
Did it because asf/master was branched when no 3.0.3 was released yet, and we shouldn't have
merged 302->303 to asf/master.
So whoever is going to make the upgrade to 4.0 Apache cloudStack, can do it from the any version
up to 3.0.2 inclusively.

2) Added upgrade code for the VPC feature


Hugo, I hit some error in your code during the unittest for db upgrade:

mysql -u root cloud < ./setup/db/db/schema-302to40.sql ERROR 1242 (21000) at line 237:
Subquery returns more than 1 row

It seems to be related to commit 420f08ab4a37fa485e6318a5c2683732b5744d7e,
and the following query returns more than one row:

mysql> select CONCAT(CONCAT('DROP INDEX ', A.CONSTRAINT_NAME), ' ON
physical_network_service_providers' ) from information_schema.key_column_usage A JOIN information_schema.key_column_usage
B ON B.table_name = 'physical_network_service_providers' AND B.COLUMN_NAME = 'provider_name'
AND A.COLUMN_NAME ='physical_network_id' AND B.CONSTRAINT_NAME=A.CONSTRAINT_NAME where A.table_name
=
'physical_network_service_providers';+-------------------------------------
--------------------------------------------------------+
| CONCAT(CONCAT('DROP INDEX ', A.CONSTRAINT_NAME), ' ON
physical_network_service_providers' ) |
+-----------------------------------------------------------------------
+---
-------------------+
| DROP INDEX physical_network_id ON physical_network_service_providers
                   |
| DROP INDEX physical_network_id ON physical_network_service_providers
                   |
| DROP INDEX physical_network_id ON physical_network_service_providers
                   |
| DROP INDEX physical_network_id ON physical_network_service_providers
                   |
+-----------------------------------------------------------------------
+---
-------------------+
4 rows in set (0.00 sec)




So could you please take a look and let me know if I did something wrong, or is it a real
bug? Steps I've made to reproduce the problem:

* deployed cloudStack 3.0.2, haven't added any resources, no dataCenters, nothing
* ran schema-302to40.sql against this DB.



Thank you,
Alena.


Mime
  • Unnamed multipart/mixed (inline, None, 0 bytes)
View raw message