RuntimeError: maximum recursion depth exceeded while calling a Python object

Bug #1869929 reported by Tobias Urdin
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Invalid
Undecided
Unassigned
oslo.config
Invalid
Undecided
Unassigned

Bug Description

When testing upgrading nova packages from Rocky to Train the following issue occurs:

versions:
oslo.config 6.11.2
oslo.concurrency 3.30.0
oslo.versionedobjects 1.36.1
oslo.db 5.0.2
oslo.config 6.11.2
oslo.cache 1.37.0

Happens here https://github.com/openstack/oslo.db/blob/5.0.2/oslo_db/api.py#L304
where it register_opts for options.database_opts

This cmp operation: https://github.com/openstack/oslo.config/blob/6.11.2/oslo_config/cfg.py#L363

If I edit above cmp operation and add print statements before like this:
    if opt.dest in opts:
        print('left: %s' % str(opts[opt.dest]['opt'].name))
        print('right: %s' % str(opt.name))
        if opts[opt.dest]['opt'] != opt:
            raise DuplicateOptError(opt.name)

It stops here:
$ nova-compute --help
left: sqlite_synchronous
right: sqlite_synchronous
Traceback (most recent call last):
....same exception
RuntimeError: maximum recursion depth exceeded while calling a Python object

/usr/bin/nova-compute --help
Traceback (most recent call last):
  File "/usr/bin/nova-compute", line 6, in <module>
    from nova.cmd.compute import main
  File "/usr/lib/python2.7/site-packages/nova/cmd/compute.py", line 29, in <module>
    from nova.compute import rpcapi as compute_rpcapi
  File "/usr/lib/python2.7/site-packages/nova/compute/rpcapi.py", line 30, in <module>
    from nova.objects import service as service_obj
  File "/usr/lib/python2.7/site-packages/nova/objects/service.py", line 170, in <module>
    base.NovaObjectDictCompat):
  File "/usr/lib/python2.7/site-packages/nova/objects/service.py", line 351, in Service
    def _db_service_get_by_compute_host(context, host, use_slave=False):
  File "/usr/lib/python2.7/site-packages/nova/db/api.py", line 91, in select_db_reader_mode
    return IMPL.select_db_reader_mode(f)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 58, in _api
    conf=self._conf, backend_mapping=self._backend_mapping)
  File "/usr/lib/python2.7/site-packages/oslo_db/api.py", line 304, in from_config
    conf.register_opts(options.database_opts, 'database')
  File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2055, in __inner
    result = f(self, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2317, in register_opts
    self.register_opt(opt, group, clear_cache=False)
  File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2059, in __inner
    return f(self, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2293, in register_opt
    return group._register_opt(opt, cli)
  File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 1497, in _register_opt
    if _is_opt_registered(self._opts, opt):
  File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 367, in _is_opt_registered
    if opts[opt.dest]['opt'] != opt:
  File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 642, in __ne__
    return self._vars_for_cmp() != another._vars_for_cmp()
  File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 630, in _vars_for_cmp
    v = dict(vars(self))
RuntimeError: maximum recursion depth exceeded while calling a Python object

Revision history for this message
Herve Beraud (herveberaud) wrote :

Please add the packages versions before the upgrade to help us to surround the issue in versions of oslo.

Revision history for this message
Tobias Urdin (tobias-urdin) wrote :
Download full text (42.4 KiB)

I can reproduce the issue with the following code:

import sys
from oslo_config import cfg
from oslo_db import options
import logging

from oslo_db import concurrency

CONF = cfg.CONF
#CONF.default_config_files=['/etc/nova/nova.conf']

_BACKEND_MAPPING = {'sqlalchemy': 'nova.db.sqlalchemy.api'}
IMPL = concurrency.TpoolDbapiWrapper(CONF, backend_mapping=_BACKEND_MAPPING)

def select_db_reader_mode(f):
    """Decorator to select synchronous or asynchronous reader mode.

    The kwarg argument 'use_slave' defines reader mode. Asynchronous reader
    will be used if 'use_slave' is True and synchronous reader otherwise.
    """
    return IMPL.select_db_reader_mode(f)

@select_db_reader_mode
def _db_service_get_by_compute_host(context, host, use_slave=False):
    print('yessss')

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.DEBUG)
logger.addHandler(handler)

CONF.register_opts(options.database_opts, 'database')
CONF.log_opt_values(logger, logging.WARNING)

Traceback (most recent call last):
  File "reprod.py", line 23, in <module>
    def _db_service_get_by_compute_host(context, host, use_slave=False):
  File "reprod.py", line 20, in select_db_reader_mode
    return IMPL.select_db_reader_mode(f)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib/python2.7/site-packages/oslo_db/concurrency.py", line 72, in __getattr__
    return getattr(self._api, key)
  File "/usr/lib...

Revision history for this message
Tobias Urdin (tobias-urdin) wrote :

Rocky versions that was used before upgrade: oslo.config was 6.4.1 oslo.db 4.40.1

Current oslo packages:
python2-oslo-upgradecheck-0.3.2-1.el7.noarch
python2-oslo-log-3.44.1-2.el7.noarch
python2-oslo-vmware-2.34.1-1.el7.noarch
python-oslo-privsep-lang-1.33.3-1.el7.noarch
python-oslo-cache-lang-1.37.0-2.el7.noarch
python-oslo-policy-lang-2.3.3-1.el7.noarch
python2-oslo-utils-3.41.5-1.el7.noarch
python-oslo-db-lang-5.0.2-2.el7.noarch
python2-oslo-service-1.40.2-2.el7.noarch
python2-oslo-concurrency-3.30.0-2.el7.noarch
python2-oslo-context-2.23.0-2.el7.noarch
python2-oslo-i18n-3.24.0-2.el7.noarch
python2-oslo-middleware-3.38.1-2.el7.noarch
python2-oslo-policy-2.3.3-1.el7.noarch
python2-oslo-rootwrap-5.16.1-1.el7.noarch
python-oslo-utils-lang-3.41.5-1.el7.noarch
python2-oslo-versionedobjects-1.36.1-1.el7.noarch
python-oslo-concurrency-lang-3.30.0-2.el7.noarch
python2-oslo-serialization-2.29.2-2.el7.noarch
python-oslo-i18n-lang-3.24.0-2.el7.noarch
python-oslo-middleware-lang-3.38.1-2.el7.noarch
python2-oslo-messaging-10.2.0-2.el7.noarch
python2-oslo-reports-1.30.0-1.el7.noarch
python2-oslo-privsep-1.33.3-1.el7.noarch
python-oslo-versionedobjects-lang-1.36.1-1.el7.noarch
python-oslo-vmware-lang-2.34.1-1.el7.noarch
python2-oslo-db-5.0.2-2.el7.noarch
python2-oslo-config-6.11.2-1.el7.noarch
python-oslo-log-lang-3.44.1-2.el7.noarch
python2-oslo-cache-1.37.0-2.el7.noarch

Current nova packages:
python2-novaclient-15.1.0-1.el7.noarch
openstack-nova-common-20.1.1-1.el7.noarch
python2-nova-20.1.1-1.el7.noarch
openstack-nova-compute-20.1.1-1.el7.noarch

Revision history for this message
Tobias Urdin (tobias-urdin) wrote :

The exact reproduce code above works for Rocky.

With rocky oslo packages:
python2-oslo-log-3.39.2-1.el7.noarch
python-oslo-db-lang-4.40.2-1.el7.noarch
python-oslo-concurrency-lang-3.27.0-1.el7.noarch
python2-oslo-versionedobjects-1.33.3-1.el7.noarch
python2-oslo-middleware-3.36.0-1.el7.noarch
python2-oslo-service-1.31.8-1.el7.noarch
python2-oslo-policy-1.38.1-1.el7.noarch
python2-oslo-serialization-2.27.0-1.el7.noarch
python2-oslo-vmware-2.31.0-1.el7.noarch
python-oslo-log-lang-3.39.2-1.el7.noarch
python-oslo-utils-lang-3.36.5-1.el7.noarch
python-oslo-cache-lang-1.30.4-1.el7.noarch
python2-oslo-context-2.21.0-1.el7.noarch
python2-oslo-utils-3.36.5-1.el7.noarch
python2-oslo-messaging-8.1.4-1.el7.noarch
python-oslo-middleware-lang-3.36.0-1.el7.noarch
python-oslo-privsep-lang-1.29.2-1.el7.noarch
python-oslo-i18n-lang-3.21.0-1.el7.noarch
python2-oslo-reports-1.28.0-1.el7.noarch
python2-oslo-config-6.4.2-1.el7.noarch
python2-oslo-i18n-3.21.0-1.el7.noarch
python-oslo-versionedobjects-lang-1.33.3-1.el7.noarch
python2-oslo-privsep-1.29.2-1.el7.noarch
python-oslo-policy-lang-1.38.1-1.el7.noarch
python2-oslo-rootwrap-5.14.2-1.el7.noarch
python2-oslo-concurrency-3.27.0-1.el7.noarch
python2-oslo-cache-1.30.4-1.el7.noarch
python2-oslo-db-4.40.2-1.el7.noarch
python-oslo-vmware-lang-2.31.0-1.el7.noarch

Rocky nova packages:
openstack-nova-common-18.2.3-1.el7.noarch
python-nova-18.2.3-1.el7.noarch
python2-novaclient-11.0.1-1.el7.noarch
openstack-nova-compute-18.2.3-1.el7.noarch

Revision history for this message
Tobias Urdin (tobias-urdin) wrote :

Some import issue in nova?

Removing @db.select_db_reader_mode decorator from from _db_service_get_by_compute_host and _db_service_get_minimum_version in in nova/objects/service.py makes "nova-compute --help" work.

Revision history for this message
Herve Beraud (herveberaud) wrote :

> Some import issue in nova?

> Removing @db.select_db_reader_mode decorator from from _db_service_get_by_compute_host and
> _db_service_get_minimum_version in in nova/objects/service.py makes "nova-compute --help" work.

You meant it could be an import issue on the nova side?

Revision history for this message
Tobias Urdin (tobias-urdin) wrote :

Could be yes, but I don't know. Given that nobody has hit this before makes me think it's a dependency issue but which one is the big questions :)

Revision history for this message
Tobias Urdin (tobias-urdin) wrote :
Revision history for this message
Tobias Urdin (tobias-urdin) wrote :

Think this isn't a bug but was related to SELinux. This issue happend when I upgraded nova on our compute node and then this occured. So I removed the @db.select_db_reader_mode decorator usage in nova/objects/service.py to make it start.

I then proceeded to upgrade Neutron and Ceilometer on the compute nodes, Neutron requires the following SELinux packages to be updated in order for it to work:

libselinux libselinux-python libselinux-utils selinux-policy selinux-policy-targeted

When I upgraded that, neutron and ceilometer I didn't bother testing again.
I removed the commented decorators now and restart nova-compute and it worked.

This is the install log:

Mar 31 17:22:07 Installed: 1:python2-nova-20.1.1-1.el7.noarch
Mar 31 17:22:08 Updated: 1:openstack-nova-common-20.1.1-1.el7.noarch
Mar 31 17:22:09 Updated: 1:openstack-nova-compute-20.1.1-1.el7.noarch
Mar 31 17:22:09 Erased: python-dogpile-cache-0.6.2-1.el7.noarch
Mar 31 17:22:11 Erased: 1:python-nova-18.2.3-1.el7.noarch
Mar 31 17:22:11 Erased: python-dogpile-core-0.4.1-2.el7.noarch
Apr 01 11:49:46 Updated: python2-os-traits-0.16.0-1.el7.noarch
Apr 01 11:55:16 Installed: python2-os-ken-0.4.1-1.el7.noarch
Apr 01 11:55:17 Updated: python2-neutron-lib-1.29.1-1.el7.noarch
Apr 01 11:55:17 Updated: python2-pyroute2-0.5.6-1.el7.noarch
Apr 01 11:55:19 Installed: 1:python2-neutron-15.0.2-1.el7.noarch
Apr 01 11:55:20 Updated: 1:openstack-neutron-common-15.0.2-1.el7.noarch
Apr 01 11:55:21 Updated: 1:openstack-neutron-openvswitch-15.0.2-1.el7.noarch
Apr 01 11:55:22 Updated: 1:openstack-neutron-15.0.2-1.el7.noarch
Apr 01 11:55:25 Erased: 1:python-neutron-13.0.6-1.el7.noarch
Apr 01 11:55:44 Installed: python2-zaqarclient-1.12.0-1.el7.noarch
Apr 01 11:55:45 Installed: 1:python2-ceilometer-13.1.0-1.el7.noarch
Apr 01 11:55:46 Updated: 1:openstack-ceilometer-common-13.1.0-1.el7.noarch
Apr 01 11:55:46 Updated: 1:openstack-ceilometer-polling-13.1.0-1.el7.noarch
Apr 01 11:55:48 Erased: 1:python-ceilometer-11.0.1-1.el7.noarch

The possibility of any of the additional packages after nova-compute there fixed it is very low.

The only thing I did manually except for that was to upgrade the SELinux packages mentioned above because that's required by Neutron.

Changed in nova:
status: New → Invalid
Changed in oslo.config:
status: New → Invalid
Revision history for this message
Herve Beraud (herveberaud) wrote :

Interesting things, thanks for the heads up.

also I put here the github [1] that we used in the first time with Tobias to debug things, maybe it could
be useful for someone and to get the related context.

[1] https://github.com/tobias-urdin/reproduce-bug-1869929/

Revision history for this message
Herve Beraud (herveberaud) wrote :

Oh I missed that Tobias already added this one yesterday in comment #8.

https://bugs.launchpad.net/oslo.config/+bug/1869929/comments/8

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.