← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1799249] Re: "UserWarning: Cannot convert <oslo_db.sqlalchemy.enginefacade._Default object at 0x7f5db695a2b8> to primitive, will raise ValueError instead of warning in version 3.0" seen in nova functional tests due to CheatingSerializer

 

We probably don't need to fix this on stable, nor do we really need to,
since the fallback kwarg was added to oslo.serialization
jsonutils.to_primitive in 2.21.1:

https://review.openstack.org/#/c/503993/

But we didn't require that minimum version yet, so we should really only
be able to fix on master and bump the minimum required version of
oslo.serialization.

** Changed in: nova
     Assignee: (unassigned) => Matt Riedemann (mriedem)

** Also affects: nova/queens
   Importance: Undecided
       Status: New

** Also affects: nova/rocky
   Importance: Undecided
       Status: New

** Changed in: nova/queens
   Importance: Undecided => Low

** Changed in: nova/rocky
   Importance: Undecided => Low

** Changed in: nova/rocky
       Status: New => Confirmed

** Changed in: nova/queens
       Status: New => Confirmed

** Changed in: nova
       Status: Confirmed => Triaged

** No longer affects: nova/queens

** No longer affects: nova/rocky

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1799249

Title:
  "UserWarning: Cannot convert <oslo_db.sqlalchemy.enginefacade._Default
  object at 0x7f5db695a2b8> to primitive, will raise ValueError instead
  of warning in version 3.0" seen in nova functional tests due to
  CheatingSerializer

Status in OpenStack Compute (nova):
  Triaged

Bug description:
  http://logstash.openstack.org/#dashboard/file/logstash.json?query=message%3A%5C%22UserWarning%3A%20Cannot%20convert%20%3Coslo_db.sqlalchemy.enginefacade._Default%20object%20at%5C%22&from=7d

  This shows up in nova functional test runs. This is the stacktrace
  from one of the tests:

      2018-10-22 11:16:41,704 ERROR [root] Original exception being dropped: ['Traceback (most recent call last):\n', '  File "nova/exception_wrapper.py", line 69, in wrapped\n    return f(self, context, *args, **kw)\n', '  File "nova/compute/utils.py", line 1157, in decorated_function\n    return function(self, context, *args, **kwargs)\n', '  File "nova/compute/manager.py", line 216, in decorated_function\n    kwargs[\'instance\'], e, sys.exc_info())\n', '  File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__\n    self.force_reraise()\n', '  File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise\n    six.reraise(self.type_, self.value, self.tb)\n', '  File "nova/compute/manager.py", line 204, in decorated_function\n    return function(self, context, *args, **kwargs)\n', '  File "nova/compute/manager.py", line 6077, in check_can_live_migrate_destination\n    block_migration, disk_over_commit)\n', '  File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1062, in __call__\n    return _mock_self._mock_call(*args, **kwargs)\n', '  File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1128, in _mock_call\n    ret_val = effect(*args, **kwargs)\n', '  File "nova/tests/functional/test_servers.py", line 2864, in fake_check_can_live_migrate_destination\n    reason=\'test_live_migrate_pre_check_fails\')\n', 'MigrationPreCheckError: Migration pre-check error: test_live_migrate_pre_check_fails\n']
      2018-10-22 11:16:41,704 ERROR [oslo_messaging.rpc.server] Exception during message handling
      Traceback (most recent call last):
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_messaging/rpc/server.py", line 163, in _process_incoming
          res = self.dispatcher.dispatch(message)
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 265, in dispatch
          return self._do_dispatch(endpoint, method, ctxt, args)
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 194, in _do_dispatch
          result = func(ctxt, **new_args)
        File "nova/exception_wrapper.py", line 79, in wrapped
          function_name, call_dict, binary, tb)
        File "nova/exception_wrapper.py", line 33, in _emit_exception_notification
          args)
        File "nova/exception_wrapper.py", line 56, in _emit_legacy_exception_notification
          notifier.error(context, function_name, payload)
        File "nova/rpc.py", line 402, in _notify
          getattr(self.notifier, priority)(ctxt, event_type, payload)
        File "nova/tests/unit/fake_notifier.py", line 99, in _notify
          payload = self._serializer.serialize_entity(ctxt, payload)
        File "nova/rpc.py", line 134, in serialize_entity
          return self._base.serialize_entity(context, entity)
        File "nova/rpc.py", line 123, in serialize_entity
          return jsonutils.to_primitive(entity, convert_instances=True)
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 170, in to_primitive
          for k, v in value.items()}
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 170, in <dictcomp>
          for k, v in value.items()}
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 170, in to_primitive
          for k, v in value.items()}
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 170, in <dictcomp>
          for k, v in value.items()}
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 181, in to_primitive
          return recursive(value.__dict__, level=level + 1)
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 170, in to_primitive
          for k, v in value.items()}
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 170, in <dictcomp>
          for k, v in value.items()}
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 181, in to_primitive
          return recursive(value.__dict__, level=level + 1)
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 170, in to_primitive
          for k, v in value.items()}
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 170, in <dictcomp>
          for k, v in value.items()}
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 181, in to_primitive
          return recursive(value.__dict__, level=level + 1)
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 170, in to_primitive
          for k, v in value.items()}
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 170, in <dictcomp>
          for k, v in value.items()}
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 170, in to_primitive
          for k, v in value.items()}
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 170, in <dictcomp>
          for k, v in value.items()}
        File "/home/osboxes/git/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 192, in to_primitive
          "instead of warning in version 3.0" % (value,))
      UserWarning: Cannot convert <oslo_db.sqlalchemy.enginefacade._Default object at 0x7f364c63f6a8> to primitive, will raise ValueError instead of warning in version 3.0

  So there is something in the notification payload that has an instance
  of oslo_db.sqlalchemy.enginefacade._Default in it and the serializer
  doesn't know how to handle that. My guess would be there are versioned
  objects in the payload and those versioned objects have a context
  which has a db_connection engine facade in it, maybe because of using
  the CheatingSerializer fixture in nova?

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1799249/+subscriptions


References