GitHub user zap51 created a discussion: Failure in upgrading CloudStack from 
4.19.3.0 to 4.20.2.0

Hi Community,

We upgraded our setup with Ubuntu 20.04 LTS on management and agents to 
v4.20.2.0 but it is failing at this stage mentioned below.
We see these in the log file `management-server.out` after starting 
`cloudstack-management.service`. The service `cloudstack-management.service` 
keeps running but these failures are seen
```sh
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will 
impact performance.
2026-02-19 10:04:34,816 main ERROR Unknown object "logger" of type 
org.apache.logging.log4j.core.config.LoggerConfig is ignored: try nesting it 
inside one of: ["Appenders", "Loggers", "Properties", "Scripts", 
"CustomLevels"].
2026-02-19 10:04:34,821 main ERROR Unknown object "logger" of type 
org.apache.logging.log4j.core.config.LoggerConfig is ignored: try nesting it 
inside one of: ["Appenders", "Loggers", "Properties", "Scripts", 
"CustomLevels"].
2026-02-19 10:04:34,826 main ERROR Unknown object "root" of type 
org.apache.logging.log4j.core.config.LoggerConfig is ignored: try nesting it 
inside one of: ["Appenders", "Loggers", "Properties", "Scripts", 
"CustomLevels"].
10:04:42.954 [main] ERROR com.cloud.utils.db.ScriptRunner - Error executing: 
ALTER TABLE `cloud`.`snapshot_schedule` DROP CONSTRAINT 
`fk__snapshot_schedule_async_job_id`
10:04:42.962 [main] ERROR com.cloud.utils.db.ScriptRunner - 
java.sql.SQLSyntaxErrorException: Can't DROP CONSTRAINT 
`fk__snapshot_schedule_async_job_id`; check that it exists
10:04:42.963 [main] ERROR com.cloud.upgrade.DatabaseUpgradeChecker - Unable to 
execute upgrade script
java.sql.SQLSyntaxErrorException: Can't DROP CONSTRAINT 
`fk__snapshot_schedule_async_job_id`; check that it exists
        at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:186) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:88) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
com.cloud.upgrade.DatabaseUpgradeChecker.runScript(DatabaseUpgradeChecker.java:242)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
com.cloud.upgrade.DatabaseUpgradeChecker.executeUpgrade(DatabaseUpgradeChecker.java:363)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
com.cloud.upgrade.DatabaseUpgradeChecker.executeUpgrades(DatabaseUpgradeChecker.java:339)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
com.cloud.upgrade.DatabaseUpgradeChecker.upgrade(DatabaseUpgradeChecker.java:305)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
com.cloud.upgrade.DatabaseUpgradeChecker.check(DatabaseUpgradeChecker.java:478) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.lifecycle.CloudStackExtendedLifeCycle.checkIntegrity(CloudStackExtendedLifeCycle.java:62)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.lifecycle.CloudStackExtendedLifeCycle.start(CloudStackExtendedLifeCycle.java:52)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
        at 
org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:937)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.loadContext(DefaultModuleDefinitionSet.java:174)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet$2.with(DefaultModuleDefinitionSet.java:143)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.withModule(DefaultModuleDefinitionSet.java:274)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.withModule(DefaultModuleDefinitionSet.java:279)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.withModule(DefaultModuleDefinitionSet.java:262)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.loadContexts(DefaultModuleDefinitionSet.java:131)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.load(DefaultModuleDefinitionSet.java:79)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.factory.ModuleBasedContextFactory.loadModules(ModuleBasedContextFactory.java:37)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.factory.CloudStackSpringContext.init(CloudStackSpringContext.java:71)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.factory.CloudStackSpringContext.<init>(CloudStackSpringContext.java:58)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.factory.CloudStackSpringContext.<init>(CloudStackSpringContext.java:62)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.web.CloudStackContextLoaderListener.contextInitialized(CloudStackContextLoaderListener.java:53)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:1073)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:572)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.server.handler.ContextHandler.contextInitialized(ContextHandler.java:1002)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:765) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:379)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1449) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1414) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:916)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:288)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:426) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at org.eclipse.jetty.server.Server.start(Server.java:423) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at org.eclipse.jetty.server.Server.doStart(Server.java:387) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at org.apache.cloudstack.ServerDaemon.start(ServerDaemon.java:204) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at org.apache.cloudstack.ServerDaemon.main(ServerDaemon.java:115) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        
        10:04:42.982 [main] ERROR com.cloud.upgrade.DatabaseUpgradeChecker - 
Unable to upgrade the database
com.cloud.utils.exception.CloudRuntimeException: Unable to execute upgrade 
script
        at 
com.cloud.upgrade.DatabaseUpgradeChecker.runScript(DatabaseUpgradeChecker.java:248)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
com.cloud.upgrade.DatabaseUpgradeChecker.executeUpgrade(DatabaseUpgradeChecker.java:363)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
com.cloud.upgrade.DatabaseUpgradeChecker.executeUpgrades(DatabaseUpgradeChecker.java:339)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
com.cloud.upgrade.DatabaseUpgradeChecker.upgrade(DatabaseUpgradeChecker.java:305)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
com.cloud.upgrade.DatabaseUpgradeChecker.check(DatabaseUpgradeChecker.java:478) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.lifecycle.CloudStackExtendedLifeCycle.checkIntegrity(CloudStackExtendedLifeCycle.java:62)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.lifecycle.CloudStackExtendedLifeCycle.start(CloudStackExtendedLifeCycle.java:52)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
        at 
org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:937)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.loadContext(DefaultModuleDefinitionSet.java:174)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet$2.with(DefaultModuleDefinitionSet.java:143)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.withModule(DefaultModuleDefinitionSet.java:274)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.withModule(DefaultModuleDefinitionSet.java:279)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.withModule(DefaultModuleDefinitionSet.java:262)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.loadContexts(DefaultModuleDefinitionSet.java:131)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet.load(DefaultModuleDefinitionSet.java:79)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.factory.ModuleBasedContextFactory.loadModules(ModuleBasedContextFactory.java:37)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.factory.CloudStackSpringContext.init(CloudStackSpringContext.java:71)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.factory.CloudStackSpringContext.<init>(CloudStackSpringContext.java:58)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.factory.CloudStackSpringContext.<init>(CloudStackSpringContext.java:62)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.apache.cloudstack.spring.module.web.CloudStackContextLoaderListener.contextInitialized(CloudStackContextLoaderListener.java:53)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:1073)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:572)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.server.handler.ContextHandler.contextInitialized(ContextHandler.java:1002)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:765) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:379)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1449) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1414) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:916)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:288)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:426) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at org.eclipse.jetty.server.Server.start(Server.java:423) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at org.eclipse.jetty.server.Server.doStart(Server.java:387) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at org.apache.cloudstack.ServerDaemon.start(ServerDaemon.java:204) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at org.apache.cloudstack.ServerDaemon.main(ServerDaemon.java:115) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
Caused by: java.sql.SQLSyntaxErrorException: Can't DROP CONSTRAINT 
`fk__snapshot_schedule_async_job_id`; check that it exists
        at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:186) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at com.cloud.utils.db.ScriptRunner.runScript(ScriptRunner.java:88) 
~[cloudstack-4.20.2.0.jar:4.20.2.0]
        at 
com.cloud.upgrade.DatabaseUpgradeChecker.runScript(DatabaseUpgradeChecker.java:242)
 ~[cloudstack-4.20.2.0.jar:4.20.2.0]
        ... 54 more
```

Any help would be appreciated.

GitHub link: https://github.com/apache/cloudstack/discussions/12663

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]

Reply via email to