This seems to be a bug with the original commit: https://github.com/apache/cloudstack/commit/dc151115be3e922933ea26ab1507eb6469a91e11 It was committed to 4.4.0, but the SQL changes were added to setup/db/db/schema-40to410.sql, which caused the users who used 4.1.0/4.2.x/4.3.x not to have the SQL changes.
I think what to do are: 1. restore the old database 2. create table `autoscale_vmgroup_vm_map` if not exist CREATE TABLE `cloud`.`autoscale_vmgroup_vm_map` ( `id` bigint unsigned NOT NULL auto_increment, `vmgroup_id` bigint unsigned NOT NULL, `instance_id` bigint unsigned NOT NULL, PRIMARY KEY (`id`), CONSTRAINT `fk_autoscale_vmgroup_vm_map__vmgroup_id` FOREIGN KEY `fk_autoscale_vmgroup_vm_map__vmgroup_id` (`vmgroup_id`) REFERENCES `autoscale_vmgroups` (`id`) ON DELETE CASCADE, CONSTRAINT `fk_autoscale_vmgroup_vm_map__instance_id` FOREIGN KEY `fk_autoscale_vmgroup_vm_map__instance_id` (`instance_id`) REFERENCES `vm_instance` (`id`), INDEX `i_autoscale_vmgroup_vm_map__vmgroup_id`(`vmgroup_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 3. add column last_quiet_time to table autoscale_policies if not exist ALTER TABLE `cloud`.`autoscale_policies` ADD COLUMN `last_quiet_time` datetime DEFAULT NULL AFTER `quiet_time`; 4. add column last_interval to table autoscale_vmgroups if not exist ALTER TABLE `cloud`.`autoscale_vmgroups` ADD COLUMN `last_interval` datetime DEFAULT NULL AFTER `interval`; 5. Upgrade and restart mgmt server -Wei On Mon, 17 Apr 2023 at 19:39, Andrei Mikhailovsky <[email protected]> wrote: > Rohit, > > Done some more checks and I don't have this table in db backups dating > back early 2021. I don't have older backups than that. So it seems that > this table didn't exist in my setup for ages, if ever at all. > > Andrei > > ----- Original Message ----- > > From: "Rohit Yadav" <[email protected]> > > To: "users" <[email protected]> > > Sent: Monday, 17 April, 2023 18:14:02 > > Subject: Re: ACS upgrade SQL script error 4.17.2 > 4.18.0 > > > Hi Andrei, > > > > It appears your database schema isn't in right order, the > > cloud.autoscale_vmgroup_vm_map table is created when we install/setup > > cloudstack for the first time and created by > > > https://github.com/apache/cloudstack/blob/main/engine/schema/src/main/resources/META-INF/db/schema-40to410.sql#L405 > > > > Did you perhaps run the cloudstack-setup-databases or anything similar > on your > > database? If this is prod. DB you can try reverting to your backup and > try > > again. > > > > > > Regards. > > > > ________________________________ > > From: Andrei Mikhailovsky <[email protected]> > > Sent: Monday, April 17, 2023 18:09 > > To: users <[email protected]> > > Subject: ACS upgrade SQL script error 4.17.2 > 4.18.0 > > > > Hello everyone, > > > > I've done an upgrade of ACS from 4.17.2 to 4.18.0 and faced a problem. > The > > management service didn't start. Log investigation showed an error > during the > > database upgrade script: > > > > 2023-04-17 13:23:26,342 ERROR [c.c.u.d.ScriptRunner] (main:null) (logid:) > > java.sql.SQLSyntaxErrorException: Table 'cloud.autoscale_vmgroup_vm_map' > > doesn't exist > > 2023-04-17 13:23:26,342 ERROR [c.c.u.DatabaseUpgradeChecker] (main:null) > > (logid:) Unable to execute upgrade script > > java.sql.SQLSyntaxErrorException: Table 'cloud.autoscale_vmgroup_vm_map' > doesn't > > exist > > at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:185) > > at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:87) > > > > [....] > > > > 2023-04-17 13:23:26,344 ERROR [c.c.u.DatabaseUpgradeChecker] (main:null) > > (logid:) Unable to upgrade the database > > com.cloud.utils.exception.CloudRuntimeException: Unable to execute > upgrade > > script > > at > > > com.cloud.upgrade.DatabaseUpgradeChecker.runScript(DatabaseUpgradeChecker.java:232) > > at > > > com.cloud.upgrade.DatabaseUpgradeChecker.upgrade(DatabaseUpgradeChecker.java:310) > > at > > > com.cloud.upgrade.DatabaseUpgradeChecker.check(DatabaseUpgradeChecker.java:401) > > at > > > org.apache.cloudstack.spring.lifecycle.CloudStackExtendedLifeCycle.checkIntegrity(CloudStackExtendedLifeCycle.java:64) > > at > > > org.apache.cloudstack.spring.lifecycle.CloudStackExtendedLifeCycle.start(CloudStackExtendedLifeCycle.java:54) > > at > > > org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) > > at > > > org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54) > > at > > > org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) > > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > > at > > > org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) > > at > > > org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) > > at > > > org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935) > > at java.base/java.lang.Iterable.forEach(Iterable.java:75) > > at > > > org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) > > at > > > org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) > > at > > > org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935) > > at > > > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586) > > at > > > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.loadContext(DefaultModuleDefinitionSet.java:144) > > at > > > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet$2.with(DefaultModuleDefinitionSet.java:121) > > at > > > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.withModule(DefaultModuleDefinitionSet.java:244) > > at > > > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.withModule(DefaultModuleDefinitionSet.java:249) > > at > > > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.withModule(DefaultModuleDefinitionSet.java:232) > > at > > > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.loadContexts(DefaultModuleDefinitionSet.java:116) > > at > > > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.load(DefaultModuleDefinitionSet.java:78) > > at > > > org.apache.cloudstack.spring.module.factory.ModuleBasedContextFactory.loadModules(ModuleBasedContextFactory.java:37) > > at > org.apache.cloudstack.spring.module.factory.CloudStackSpringContext.init(Clou > > > > [.....] > > > > > > 2023-04-17 13:23:26,349 DEBUG [c.c.u.d.T.Transaction] (main:null) > (logid:) > > Rolling back the transaction: Time = 631 Name = Upgrade; called by > > > -TransactionLegacy.rollback:888-TransactionLegacy.removeUpTo:831-TransactionLegacy.close:655-DatabaseUpgradeChecker.upgrade:325-DatabaseUpgradeChecker.check:401-CloudStackExtendedLifeCycle.checkIntegrity:64-CloudStackExtendedLifeCycle.start:54-DefaultLifecycleProcessor.doStart:178-DefaultLifecycleProcessor.access$200:54-DefaultLifecycleProcessor$LifecycleGroup.start:356-Iterable.forEach:75-DefaultLifecycleProcessor.startBeans:155 > > > > > > My setup: > > > > Ubuntu 20.04.x with latest updates for both management, agent and usage > servers. > > DB: mariadb-server 1:10.3.38-0ubuntu0.20.04.1 > > > > Has anyone faced that issue? How do I solve it? > > > > Many thanks > > > > Andrei >
