← Back to team overview

nova team mailing list archive

Re: Database is locked after running nova-manage

 

Yes we modified python-gflags to ignore unknown options.  This allows us to specify options in dynamically imported files and to use the same flagfile for all of the binaries if necessary.

--help should show the majority of the available flags, but if there are flags in dynamically imported files they will not show up.  For example flags in volume/manager.py do not show up in --help, nor do the flags in volume/driver.py, but they are used in nova-volume

we should probably use flags.DECLARE to show the possible flags in --help, but it is a little challenging with pluggable backends. Perhaps the best solution would be to add a flags.DEFINE_plugin which works like DEFINE_string but will import the specified file and add any other flags that are defined in it.

As far as validating the flags, it is a tradeoff.  Not validating means we can throw a bunch of flags into a file and not care if there are extras specified, but validating saves you from mistyped flags.  If we had the above DEFINE support we could switch to validating flags again.

Vish

On Sep 16, 2010, at 5:16 PM, Manuel Amador (Rudd-O) wrote:

> So when you say flags, what you mean is command-line options?
> 
> Then I have to report that I can pass any number of crazy nonsense options to 
> the nova programs, and the programs do not validate them.
> 
> I did not use pip.  I do not like to rely on non-package manager programs 
> modifying my /usr.
> 
> OK, so I can ignore the errors.
> 
> I can see the project admin was created.
> 
> THANKS!
> 
> El Thursday, September 16, 2010, Vishvananda Ishaya escribió:
>> Those errors are normal.  SQLite isn't very good with multiple threads, but
>> it doesn't actually cause any real problems.
>> 
>> Don't know why redis wasn't installed, it should have gotten it from the
>> pip requires.
>> 
>> You can ignore the scheduler error, it is in the scheduler branch, which
>> hasn't been merged into trunk yet.
>> 
>> nova uses python-gflags.  To set flags you can either use
>> --FLAGNAME=FLAGVALUE on the commandline when you run each of the bins or
>> you can stick a bunch of them into a file with one line per flag, like so
>> --s3_url=127.0.0.1
>> --auth_driver=nova.auth.ldapdriver.LdapDriver
>> and specify the file on the commandline:
>> ./nova-compute --flagfile=/path/to/flagfile
>> 
>> If you have further questions, you might want to just jump in #openstack
>> and irc.freenode.net and we can discuss there.
>> 
>> On Sep 16, 2010, at 2:20 PM, Manuel Amador (Rudd-O) wrote:
>>> When I ran
>>> 
>>> bin/nova-manage project create admin admin
>>> 
>>> Nova-volume said this:
>>> 
>>> -------------------------
>>> ERROR:root:model server went away
>>> 
>>> Traceback (most recent call last):
>>> File "/home/rudd-o/openstack/nova/nova/service.py", line 139, in
>>> 
>>> report_state
>>> 
>>>   service_ref = db.service_get(context, self.service_id)
>>> 
>>> File "/home/rudd-o/openstack/nova/nova/db/api.py", line 56, in
>>> service_get
>>> 
>>>   return IMPL.service_get(context, service_id)
>>> 
>>> File "/home/rudd-o/openstack/nova/nova/db/sqlalchemy/api.py", line 50,
>>> in
>>> 
>>> service_get
>>> 
>>>   return models.Service.find(service_id)
>>> 
>>> File "/home/rudd-o/openstack/nova/nova/db/sqlalchemy/models.py", line
>>> 79, in
>>> 
>>> find
>>> 
>>>   ).filter_by(deleted=deleted
>>> 
>>> File "/usr/lib/python2.6/dist-packages/sqlalchemy/orm/query.py", line
>>> 1522,
>>> 
>>> in one
>>> 
>>>   ret = list(self)
>>> 
>>> File "/usr/lib/python2.6/dist-packages/sqlalchemy/orm/query.py", line
>>> 1565,
>>> 
>>> in __iter__
>>> 
>>>   return self._execute_and_instances(context)
>>> 
>>> File "/usr/lib/python2.6/dist-packages/sqlalchemy/orm/query.py", line
>>> 1570,
>>> 
>>> in _execute_and_instances
>>> 
>>>   mapper=self._mapper_zero_or_none())
>>> 
>>> File "/usr/lib/python2.6/dist-packages/sqlalchemy/orm/session.py", line
>>> 735,
>>> 
>>> in execute
>>> 
>>>   clause, params or {})
>>> 
>>> File "/usr/lib/python2.6/dist-packages/sqlalchemy/engine/base.py", line
>>> 
>>> 1157, in execute
>>> 
>>>   params)
>>> 
>>> File "/usr/lib/python2.6/dist-packages/sqlalchemy/engine/base.py", line
>>> 
>>> 1237, in _execute_clauseelement
>>> 
>>>   return self.__execute_context(context)
>>> 
>>> File "/usr/lib/python2.6/dist-packages/sqlalchemy/engine/base.py", line
>>> 
>>> 1268, in __execute_context
>>> 
>>>   context.parameters[0], context=context)
>>> 
>>> File "/usr/lib/python2.6/dist-packages/sqlalchemy/engine/base.py", line
>>> 
>>> 1367, in _cursor_execute
>>> 
>>>   context)
>>> 
>>> File "/usr/lib/python2.6/dist-packages/sqlalchemy/engine/base.py", line
>>> 
>>> 1360, in _cursor_execute
>>> 
>>>   context)
>>> 
>>> File "/usr/lib/python2.6/dist-packages/sqlalchemy/engine/default.py",
>>> line
>>> 
>>> 288, in do_execute
>>> 
>>>   cursor.execute(statement, parameters)
>>> 
>>> OperationalError: (OperationalError) database is locked u'SELECT
>>> services.created_at AS services_created_at, services.updated_at AS
>>> services_updated_at, services.deleted_at AS services_deleted_at,
>>> services.deleted AS services_deleted, services.id AS services_id,
>>> services.host AS services_host, services.binary AS services_binary,
>>> services.topic AS services_topic, services.report_count AS
>>> services_report_count \nFROM services \nWHERE services.id = ? AND
>>> services.deleted = ?' (2, False)
>>> 2010-09-16 14:19:17-0700 [-] (root): ERROR model server went away
>>> 2010-09-16 14:19:17-0700 [-] Traceback (most recent call last):
>>> 2010-09-16 14:19:17-0700 [-]   File "/home/rudd-
>>> o/openstack/nova/nova/service.py", line 139, in report_state
>>> 2010-09-16 14:19:17-0700 [-]     service_ref = db.service_get(context,
>>> self.service_id)
>>> 2010-09-16 14:19:17-0700 [-]   File "/home/rudd-
>>> o/openstack/nova/nova/db/api.py", line 56, in service_get
>>> 2010-09-16 14:19:17-0700 [-]     return IMPL.service_get(context,
>>> service_id) 2010-09-16 14:19:17-0700 [-]   File "/home/rudd-
>>> o/openstack/nova/nova/db/sqlalchemy/api.py", line 50, in service_get
>>> 2010-09-16 14:19:17-0700 [-]     return models.Service.find(service_id)
>>> 2010-09-16 14:19:17-0700 [-]   File "/home/rudd-
>>> o/openstack/nova/nova/db/sqlalchemy/models.py", line 79, in find
>>> 2010-09-16 14:19:17-0700 [-]     ).filter_by(deleted=deleted
>>> 2010-09-16 14:19:17-0700 [-]   File "/usr/lib/python2.6/dist-
>>> packages/sqlalchemy/orm/query.py", line 1522, in one
>>> 2010-09-16 14:19:17-0700 [-]     ret = list(self)
>>> 2010-09-16 14:19:17-0700 [-]   File "/usr/lib/python2.6/dist-
>>> packages/sqlalchemy/orm/query.py", line 1565, in __iter__
>>> 2010-09-16 14:19:17-0700 [-]     return
>>> self._execute_and_instances(context) 2010-09-16 14:19:17-0700 [-]   File
>>> "/usr/lib/python2.6/dist-
>>> packages/sqlalchemy/orm/query.py", line 1570, in _execute_and_instances
>>> 2010-09-16 14:19:17-0700 [-]     mapper=self._mapper_zero_or_none())
>>> 2010-09-16 14:19:17-0700 [-]   File "/usr/lib/python2.6/dist-
>>> packages/sqlalchemy/orm/session.py", line 735, in execute
>>> 2010-09-16 14:19:17-0700 [-]     clause, params or {})
>>> 2010-09-16 14:19:17-0700 [-]   File "/usr/lib/python2.6/dist-
>>> packages/sqlalchemy/engine/base.py", line 1157, in execute
>>> 2010-09-16 14:19:17-0700 [-]     params)
>>> 2010-09-16 14:19:17-0700 [-]   File "/usr/lib/python2.6/dist-
>>> packages/sqlalchemy/engine/base.py", line 1237, in _execute_clauseelement
>>> 2010-09-16 14:19:17-0700 [-]     return self.__execute_context(context)
>>> 2010-09-16 14:19:17-0700 [-]   File "/usr/lib/python2.6/dist-
>>> packages/sqlalchemy/engine/base.py", line 1268, in __execute_context
>>> 2010-09-16 14:19:17-0700 [-]     context.parameters[0], context=context)
>>> 2010-09-16 14:19:17-0700 [-]   File "/usr/lib/python2.6/dist-
>>> packages/sqlalchemy/engine/base.py", line 1367, in _cursor_execute
>>> 2010-09-16 14:19:17-0700 [-]     context)
>>> 2010-09-16 14:19:17-0700 [-]   File "/usr/lib/python2.6/dist-
>>> packages/sqlalchemy/engine/base.py", line 1360, in _cursor_execute
>>> 2010-09-16 14:19:17-0700 [-]     context)
>>> 2010-09-16 14:19:17-0700 [-]   File "/usr/lib/python2.6/dist-
>>> packages/sqlalchemy/engine/default.py", line 288, in do_execute
>>> 2010-09-16 14:19:17-0700 [-]     cursor.execute(statement, parameters)
>>> 2010-09-16 14:19:17-0700 [-] OperationalError: (OperationalError)
>>> database is locked u'SELECT services.created_at AS services_created_at,
>>> services.updated_at AS services_updated_at, services.deleted_at AS
>>> services_deleted_at, services.deleted AS services_deleted, services.id AS
>>> services_id, services.host AS services_host, services.binary AS
>>> services_binary, services.topic AS services_topic, services.report_count
>>> AS services_report_count \nFROM services \nWHERE services.id = ? AND
>>> services.deleted = ?' (2, False)
>>> ERROR:root:Recovered model server connection!
>>> 2010-09-16 14:19:52-0700 [-] (root): ERROR Recovered model server
>>> connection ---------------------------
>>> 
>>> Identical tracebacks in nova-network and nova-compute.
>>> 
>>> I am stuck here :-)
>>> 
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~nova
>>> Post to     : nova@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~nova
>>> More help   : https://help.launchpad.net/ListHelp
> 




Follow ups

References