← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1403162] [NEW] fake_notifier: ValueError: Circular reference detected

 

Public bug reported:

The fake_notifier code is using anyjson, which today is failing to
serialize something in a notification payload. Failure looks like this:

    Traceback (most recent call last):
      File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/mock.py", line 1201, in patched
        return func(*args, **keywargs)
      File "nova/tests/unit/compute/test_compute.py", line 2774, in test_reboot_fail
        self._test_reboot(False, fail_reboot=True)
      File "nova/tests/unit/compute/test_compute.py", line 2744, in _test_reboot
        reboot_type=reboot_type)
      File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/testtools/testcase.py", line 420, in assertRaises
        self.assertThat(our_callable, matcher)
      File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/testtools/testcase.py", line 431, in assertThat
        mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
      File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/testtools/testcase.py", line 481, in _matchHelper
        mismatch = matcher.match(matchee)
      File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match
        mismatch = self.exception_matcher.match(exc_info)
      File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match
        mismatch = matcher.match(matchee)
      File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/testtools/testcase.py", line 412, in match
        reraise(*matchee)
      File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match
        result = matchee()
      File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/testtools/testcase.py", line 965, in __call__
        return self._callable_object(*self._args, **self._kwargs)
      File "nova/exception.py", line 88, in wrapped
        payload)
      File "nova/tests/unit/fake_notifier.py", line 57, in _notify
        anyjson.serialize(payload)
      File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/anyjson/__init__.py", line 141, in dumps
        return implementation.dumps(value)
      File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/anyjson/__init__.py", line 87, in dumps
        return self._encode(data)
      File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/oslo/serialization/jsonutils.py", line 186, in dumps
        return json.dumps(obj, default=default, **kwargs)
      File "/usr/lib64/python2.7/json/__init__.py", line 250, in dumps
        sort_keys=sort_keys, **kw).encode(obj)
      File "/usr/lib64/python2.7/json/encoder.py", line 207, in encode
        chunks = self.iterencode(o, _one_shot=True)
      File "/usr/lib64/python2.7/json/encoder.py", line 270, in iterencode
        return _iterencode(o, 0)
    ValueError: Circular reference detected

** Affects: nova
     Importance: Critical
     Assignee: Dan Smith (danms)
         Status: In Progress

-- 
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/1403162

Title:
  fake_notifier: ValueError: Circular reference detected

Status in OpenStack Compute (Nova):
  In Progress

Bug description:
  The fake_notifier code is using anyjson, which today is failing to
  serialize something in a notification payload. Failure looks like
  this:

      Traceback (most recent call last):
        File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/mock.py", line 1201, in patched
          return func(*args, **keywargs)
        File "nova/tests/unit/compute/test_compute.py", line 2774, in test_reboot_fail
          self._test_reboot(False, fail_reboot=True)
        File "nova/tests/unit/compute/test_compute.py", line 2744, in _test_reboot
          reboot_type=reboot_type)
        File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/testtools/testcase.py", line 420, in assertRaises
          self.assertThat(our_callable, matcher)
        File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/testtools/testcase.py", line 431, in assertThat
          mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
        File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/testtools/testcase.py", line 481, in _matchHelper
          mismatch = matcher.match(matchee)
        File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match
          mismatch = self.exception_matcher.match(exc_info)
        File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match
          mismatch = matcher.match(matchee)
        File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/testtools/testcase.py", line 412, in match
          reraise(*matchee)
        File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match
          result = matchee()
        File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/testtools/testcase.py", line 965, in __call__
          return self._callable_object(*self._args, **self._kwargs)
        File "nova/exception.py", line 88, in wrapped
          payload)
        File "nova/tests/unit/fake_notifier.py", line 57, in _notify
          anyjson.serialize(payload)
        File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/anyjson/__init__.py", line 141, in dumps
          return implementation.dumps(value)
        File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/anyjson/__init__.py", line 87, in dumps
          return self._encode(data)
        File "/home/dan/nova/.tox/py27/lib/python2.7/site-packages/oslo/serialization/jsonutils.py", line 186, in dumps
          return json.dumps(obj, default=default, **kwargs)
        File "/usr/lib64/python2.7/json/__init__.py", line 250, in dumps
          sort_keys=sort_keys, **kw).encode(obj)
        File "/usr/lib64/python2.7/json/encoder.py", line 207, in encode
          chunks = self.iterencode(o, _one_shot=True)
        File "/usr/lib64/python2.7/json/encoder.py", line 270, in iterencode
          return _iterencode(o, 0)
      ValueError: Circular reference detected

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


Follow ups

References