Downgrade (simplified) is always as following (assuming an in-place upgrade was done_: - delete any resources that might be created with new/upgraded mgmt server (i.e. if you successfully upgraded, restarted VRs etc or created any VMs/volumes) - so that your external world (hypervisor/storage) corresponds to the DB state BEFORE the upgrade. - stop mgmt server, downgrade packages - restore full DB from BEFORE the upgrade - start downgraded mgmt server.
Since upgrade failed for you, skip step 1. and proceed with the downgrade and DB restore Andrija On Sun, 29 Sep 2019 at 20:49, Jevgeni Zolotarjov <[email protected]> wrote: > Yes. I have made db backup. > Whats the correct way to downgrade cloudstack management in centos7? > > On Sun, 29 Sep 2019, 20:06 Andrija Panic, <[email protected]> wrote: > > > Right... You have probably added custom guest OS type to the guest_os > > table before the upgrade, since I'm familiar this id 277 being a > > "duplicate". > > > > Remove from the guest_os table any custom added entries, since 4.13 adds > a > > few guest OS types, with entries being created (in this guest_os table > > specifically) with IDs 277 up to 304 or so. > > > > In order to upgrade again, you will need to first restore tthe 4.11.3 db > > backup (you took right before the upgrade...), then delete from guest_os > > table anything with ID>275 (275 being the last ID in 4.11.3) and start > mgmt > > (4.13) again. > > > > If you added custom entries to other OS type related tables (i.e. > > hypervisor_guest_os if I remember the name from top of my head...), you > > might also want to remove those together with guest_os related entries... > > > > Ping here if any problems. > > > > Andrija > > > > > > On Sun, 29 Sep 2019, 16:11 Jevgeni Zolotarjov, <[email protected]> > > wrote: > > > > > I was running clean installation of 4.11.3 > > > > > > Now after updating to 4.13 cloudstack-management does not start > > > > > > exception from management-server.log > > > 2019-09-29 14:05:57,058 WARN [o.a.c.s.m.c.ResourceApplicationContext] > > > (main:null) (logid:) Exception encountered during context > initialization > > - > > > cancelling refresh attempt: > > > org.springframework.context.ApplicationContextException: Failed to > start > > > bean 'cloudStackLifeCycle'; nested exception is > > > com.cloud.utils.exception.CloudRuntimeException: Unable to upgrade the > > > database > > > 2019-09-29 14:05:57,059 WARN [o.e.j.w.WebAppContext] (main:null) > > (logid:) > > > Failed startup of context o.e.j.w.WebAppContext@646be2c3 > > > > > > > > > {/client,file:///usr/share/cloudstack-management/webapp/,UNAVAILABLE}{/usr/share/cloudstack-management/webapp} > > > org.springframework.context.ApplicationContextException: Failed to > start > > > bean 'cloudStackLifeCycle'; nested exception is > > > com.cloud.utils.exception.CloudRuntimeException: Unable to upgrade the > > > database > > > at > > > > > > > > > org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:186) > > > at > > > > > > > > > org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:52) > > > at > > > > > > > > > org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:358) > > > at > > > > > > > > > org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:159) > > > at > > > > > > > > > org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) > > > at > > > > > > > > > org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:884) > > > at > > > > > > > > > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:552) > > > 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.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:890) > > > at > > > > > > > > > org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:532) > > > at > > > > > > > > > org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:853) > > > at > > > > > > > > > org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:344) > > > at > > > > > > org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1515) > > > at > > > > > > > > > org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1477) > > > at > > > > > > > > > org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:785) > > > at > > > > > > > > > org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:261) > > > at > > > org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:545) > > > at > > > > > > > > > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) > > > at > > > > > > > > > org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:133) > > > at > > > > > > > > > org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:107) > > > at > > > > > > > > > org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113) > > > at > > > > > > > > > org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:273) > > > at > > > > > > > > > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) > > > at > > > > > > > > > org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:133) > > > at > > > > > > > > > org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:115) > > > at > > > > > > > > > org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113) > > > at > > > > > > > > > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) > > > at > > > > > > > > > org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:133) > > > at org.eclipse.jetty.server.Server.start(Server.java:418) > > > at > > > > > > > > > org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:107) > > > at > > > > > > > > > org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113) > > > at org.eclipse.jetty.server.Server.doStart(Server.java:385) > > > at > > > > > > > > > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) > > > at > > org.apache.cloudstack.ServerDaemon.start(ServerDaemon.java:186) > > > at > org.apache.cloudstack.ServerDaemon.main(ServerDaemon.java:103) > > > Caused by: com.cloud.utils.exception.CloudRuntimeException: Unable to > > > upgrade the database > > > at > > > > > > > > > com.cloud.upgrade.DatabaseUpgradeChecker.upgrade(DatabaseUpgradeChecker.java:265) > > > at > > > > > > > > > com.cloud.upgrade.DatabaseUpgradeChecker.check(DatabaseUpgradeChecker.java:336) > > > at > > > > > > > > > org.apache.cloudstack.spring.lifecycle.CloudStackExtendedLifeCycle.checkIntegrity(CloudStackExtendedLifeCycle.java:65) > > > ... 47 more > > > Caused by: com.cloud.utils.exception.CloudRuntimeException: Unable to > > > execute upgrade script > > > at > > > > > > > > > com.cloud.upgrade.DatabaseUpgradeChecker.runScript(DatabaseUpgradeChecker.java:203) > > > at > > > > > > > > > com.cloud.upgrade.DatabaseUpgradeChecker.upgrade(DatabaseUpgradeChecker.java:252) > > > at > > > > > > > > > com.cloud.upgrade.DatabaseUpgradeChecker.check(DatabaseUpgradeChecker.java:336) > > > ... 48 more > > > Caused by: > > > > > > com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: > > > Duplicate entry '277' for key 'PRIMARY' > > > at > > com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:185) > > > at > > com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:87) > > > at > > > > > > > > > com.cloud.upgrade.DatabaseUpgradeChecker.runScript(DatabaseUpgradeChecker.java:197) > > > > > > -- Andrija Panić
