On Thu, 2011-11-17 at 15:22 -0500, Russell Bryant wrote:
A few weeks ago I spent some time looking into a bug  that came up
back when we had the test day. The bug showed a "database locked" error
when sqlite was used. In short, using sqlite with nova is not a
reliable combination. I'd like to get some consensus on a good way to
For reference, the bug triggering this discussion is:
Some options ...
1) Update the docs to strongly recommend switching to MySQL as a part of
the setup process.
2) Don't even bother having the packages set up for sqlite at all.
Switch to mysql by default.
I'd like to take path #2 here. It seems like a bad idea to provide a
default configuration that we know will fail at times.
Yeah, if sqlite is such a lost cause, then we should drop it.
If we do remove the auto-sqlite-setup thing in %post, people who do try
to use sqlite will hit the following problems:
- You can use an sqlite URI like sqlite:////nova.sqlite, but if you
then run 'nova manage db sync' the DB will be created in the current
dir rather than /var/lib/nova. The nova services all run
with /var/lib/nova as their cwd
- 'nova-manage db sync' will create the DB owned by the current user.
You need to chown it to the nova user
So, the "create nova.sqlite in %post" thing was about trying to
eliminate those hurdles.
If we do take this path, what's the best way to go about it? We
have nova set up to use MySQL and point it at localhost with some
default credentials. Should we do more? Provide a trivial script for
creating the nova database and user? Have an optional openstack-nova-db
package that pulls in MySQL and automatically creates the db?
I don't want to try to make things too smart and then end up causing
pain for administrators.
I'd go with simply making mysql://nova:nova@localhost/nova the default
for the sql_connection flag
Potentially also include a simple script for changing the MySQL root
password, deleting anonymous accounts, creating the nova DB and the nova
user as described here:
I'd also look into what the Ubuntu packages do:
At a first glance, it looks like they use sqlite by default and don't
any particular help for people to use MySQL e.g.
if ! grep -q sql_connection /etc/nova/nova.conf
su -c 'nova-manage db sync' nova