So I was working on CloudStack today and I build new packages from the 4.2 branch to test some new things for the Ceph integration.
After installing the new packages and restarting my management server I wasn’t able to log on anymore. This is what I got:
The given command does not exist or it is not available for user
It took me quite some time to figure out what was going on, but after turning on MySQL logging it turned out that I was missing a column in a database. This setup is a dev setup where I build packages on a daily basis and perform a lot of database changes manually.
The problem was that my database was out of sync with what the code expected it to be. When you go from version A to B the management server will upgrade the database accordingly, but I went from version B to B, which did have some database changes, but weren’t taken care of by the DatabaseUpgradeChecker, which makes perfectly sense since this is a dev server.
So should you encounter this message at some point, turn on MySQL query logging and see the queries it tries to do. You’ll probably see that one of them is failing.
This causes the whole management server not to start properly.