Circular reference detected ValueError due to JSONDictSerializer

Bug #1119790 reported by Sumit Naiksatam
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Low
Alex Xu

Bug Description

While running the unit tests I am seeing this error (and more like this):

======================================================================
ERROR: test_create_network_with_portsecurity_false (quantum.tests.unit.nicira.test_nicira_plugin.TestNiciraPortSecurity)
----------------------------------------------------------------------
Traceback (most recent call last): File "quantum/quantum/tests/unit/test_extension_portsecurity.py", line 198, in test_create_network_with_portsecurity_false
    port_security_enabled=False)
  File "quantum/quantum/tests/unit/test_db_plugin.py", line 225, in _create_network
    return network_req.get_response(self.api)
  File "quantum/.venv/local/lib/python2.7/site-packages/webob/request.py", line 1296, in send
    application, catch_exc_info=False)
  File "quantum/.venv/local/lib/python2.7/site-packages/webob/request.py", line 1260, in call_application
    app_iter = application(self.environ, start_response)
  File "quantum/.venv/local/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "quantum/.venv/local/lib/python2.7/site-packages/routes/middleware.py", line 131, in __call__
    response = self.app(environ, start_response)
  File "quantum/.venv/local/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
    return resp(environ, start_response)
  File "quantum/.venv/local/lib/python2.7/site-packages/webob/dec.py", line 130, in __call__
    resp = self.call_func(req, *args, **self.kwargs)
  File "quantum/.venv/local/lib/python2.7/site-packages/webob/dec.py", line 195, in call_func
    return self.func(req, *args, **kwargs)
  File "quantum/quantum/api/v2/resource.py", line 109, in resource
    body = serializer.serialize(result)
  File "quantum/quantum/wsgi.py", line 228, in serialize
    return self.dispatch(data, action=action)
  File "quantum/quantum/wsgi.py", line 218, in dispatch
    return action_method(*args, **kwargs)
  File "quantum/quantum/wsgi.py", line 238, in default
    return jsonutils.dumps(data)
  File "quantum/quantum/openstack/common/jsonutils.py", line 130, in dumps
    return json.dumps(value, default=default, **kwargs)
  File "/usr/lib/python2.7/json/__init__.py", line 238, in dumps
    **kw).encode(obj)
  File "/usr/lib/python2.7/json/encoder.py", line 201, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/usr/lib/python2.7/json/encoder.py", line 264, in iterencode
    return _iterencode(o, 0)
ValueError: Circular reference detected

OSLO seems to have fixed this in it's wsgi version:
https://review.openstack.org/#/c/18877

Proposing to port this as a defensive fix.

Tags: api
description: updated
description: updated
Revision history for this message
Aaron Rosen (arosen) wrote :

Hrm, I just cloned a fresh copy of quantum and I don't see these errors. Any ideas why?

Revision history for this message
Sumit Naiksatam (snaiksat) wrote :

I did bring up this error in my local env. Nevertheless, I believe it might be a good check to have.

Revision history for this message
Edgar Magana (emagana) wrote : Re: [Bug 1119790] Re: Circular reference detected ValueError due to JSONDictSerializer
Download full text (3.6 KiB)

Hi,

Same here, I just ran all of them and no issue at all:

    test_default_raise_Maiformed_Exception (quantum.tests.unit.test_wsgi.XMLDeserializerTest)OK

----------------------------------------------------------------------
Ran 2412 tests in 256.220s

OK (SKIP=43)
Running pep8 …

Thanks,

Edgar

On Feb 8, 2013, at 1:58 PM, Aaron Rosen <email address hidden> wrote:

> Hrm, I just cloned a fresh copy of quantum and I don't see these errors.
> Any ideas why?
>
> --
> You received this bug notification because you are subscribed to
> quantum.
> https://bugs.launchpad.net/bugs/1119790
>
> Title:
> Circular reference detected ValueError due to JSONDictSerializer
>
> Status in OpenStack Quantum (virtual network service):
> New
>
> Bug description:
> While running the unit tests I am seeing this error (and more like
> this):
>
> ======================================================================
> ERROR: test_create_network_with_portsecurity_false (quantum.tests.unit.nicira.test_nicira_plugin.TestNiciraPortSecurity)
> ----------------------------------------------------------------------
> Traceback (most recent call last): File "quantum/quantum/tests/unit/test_extension_portsecurity.py", line 198, in test_create_network_with_portsecurity_false
> port_security_enabled=False)
> File "quantum/quantum/tests/unit/test_db_plugin.py", line 225, in _create_network
> return network_req.get_response(self.api)
> File "quantum/.venv/local/lib/python2.7/site-packages/webob/request.py", line 1296, in send
> application, catch_exc_info=False)
> File "quantum/.venv/local/lib/python2.7/site-packages/webob/request.py", line 1260, in call_application
> app_iter = application(self.environ, start_response)
> File "quantum/.venv/local/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
> return resp(environ, start_response)
> File "quantum/.venv/local/lib/python2.7/site-packages/routes/middleware.py", line 131, in __call__
> response = self.app(environ, start_response)
> File "quantum/.venv/local/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
> return resp(environ, start_response)
> File "quantum/.venv/local/lib/python2.7/site-packages/webob/dec.py", line 130, in __call__
> resp = self.call_func(req, *args, **self.kwargs)
> File "quantum/.venv/local/lib/python2.7/site-packages/webob/dec.py", line 195, in call_func
> return self.func(req, *args, **kwargs)
> File "quantum/quantum/api/v2/resource.py", line 109, in resource
> body = serializer.serialize(result)
> File "quantum/quantum/wsgi.py", line 228, in serialize
> return self.dispatch(data, action=action)
> File "quantum/quantum/wsgi.py", line 218, in dispatch
> return action_method(*args, **kwargs)
> File "quantum/quantum/wsgi.py", line 238, in default
> return jsonutils.dumps(data)
> File "quantum/quantum/openstack/common/jsonutils.py", line 130, in dumps
> return json.dumps(value, default=default, **kwargs)
> File "/usr/lib/python2.7/json/__init__.py", line 238, in dumps
> **kw).encode(obj)
> File "/usr/lib/python2.7/json/encoder.py", line 201, in ...

Read more...

Changed in quantum:
importance: High → Low
dan wendlandt (danwent)
Changed in quantum:
milestone: grizzly-3 → grizzly-rc1
dan wendlandt (danwent)
Changed in quantum:
milestone: grizzly-rc1 → havana-1
tags: added: api
Changed in quantum:
assignee: Sumit Naiksatam (snaiksat) → Alex Xu (xuhj)
status: New → In Progress
Revision history for this message
Alex Xu (xuhj) wrote :

Hi, Sumit, when I fix a bug for unicode https://review.openstack.org/#/c/25482/ , I reproduced that problem. That happened when serializer an exception object.

I fix this problem in my patch. Sorry for take the assigment to me.

Revision history for this message
Alex Xu (xuhj) wrote :

I mean I reproduce the error 'ValueError: Circular reference detected' when serialize an exception object. I can't reproduce that error in test-case. And I found that test-cast 'quantum.tests.unit.nicira.test_nicira_plugin.TestNiciraPortSecurity' doesn't exist now.

tags: added: grizzly-backport-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to quantum (master)

Reviewed: https://review.openstack.org/25482
Committed: http://github.com/openstack/quantum/commit/26dca9ff02dc9eb9b431ea66ec60fb828b4ae0a5
Submitter: Jenkins
Branch: master

commit 26dca9ff02dc9eb9b431ea66ec60fb828b4ae0a5
Author: He Jie Xu <email address hidden>
Date: Wed Mar 27 07:42:20 2013 +0800

    Return unicode for object in json and xml serializer

    Fix bug 1160644
    Fix bug 1119790

    When try to serialize an exception object as json, it failed
    with 'ValueError: Circular reference detected' that is same error
    as bug 119790. So this patch fixes bug 119790 too.

    Change-Id: I0da2616f4ec59da31be054b8be2f7a140f59d63a

Changed in quantum:
status: In Progress → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to quantum (milestone-proposed)

Fix proposed to branch: milestone-proposed
Review: https://review.openstack.org/25922

Changed in quantum:
milestone: havana-1 → grizzly-rc3
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to quantum (milestone-proposed)

Reviewed: https://review.openstack.org/25922
Committed: http://github.com/openstack/quantum/commit/46af52f24de13ce535a81573210d1a4f1bd93d96
Submitter: Jenkins
Branch: milestone-proposed

commit 46af52f24de13ce535a81573210d1a4f1bd93d96
Author: He Jie Xu <email address hidden>
Date: Wed Mar 27 07:42:20 2013 +0800

    Return unicode for object in json and xml serializer

    Fix bug 1160644
    Fix bug 1119790

    When try to serialize an exception object as json, it failed
    with 'ValueError: Circular reference detected' that is same error
    as bug 119790. So this patch fixes bug 119790 too.

    Change-Id: I0da2616f4ec59da31be054b8be2f7a140f59d63a
    (cherry picked from commit 26dca9ff02dc9eb9b431ea66ec60fb828b4ae0a5)

Changed in quantum:
status: Fix Committed → Fix Released
Revision history for this message
Sumit Naiksatam (snaiksat) wrote :

Thanks Alex for fixing this.

Thierry Carrez (ttx)
Changed in quantum:
milestone: grizzly-rc3 → 2013.1
Alan Pevec (apevec)
tags: removed: grizzly-backport-potential
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.