Comment 0 for bug 1296589

Revision history for this message
Erno Kuvaja (jokke) wrote :

There is set([]) passed to json.dumps() which is not parseable:
 self.func(req, *args, **kwargs)
   File "/usr/lib/python2.7/dist-packages/glance/common/wsgi.py", line 625, in __call__
     request, **action_args)
   File "/usr/lib/python2.7/dist-packages/glance/common/wsgi.py", line 644, in dispatch
     return method(*args, **kwargs)
   File "/usr/lib/python2.7/dist-packages/glance/common/utils.py", line 422, in wrapped
     return func(self, req, *args, **kwargs)
   File "/usr/lib/python2.7/dist-packages/glance/api/v2/image_tags.py",
 line 46, in update
     image_repo.save(image)
   File "/usr/lib/python2.7/dist-packages/glance/domain/proxy.py", line 65, in save
     result = self.base.save(base_item)
   File "/usr/lib/python2.7/dist-packages/glance/domain/proxy.py", line 65, in save
     result = self.base.save(base_item)
   File "/usr/lib/python2.7/dist-packages/glance/notifier/__init__.py", line 140, in save
     super(ImageRepoProxy, self).save(image)
   File
 "/usr/lib/python2.7/dist-packages/glance/domain/proxy.py", line 65, in save
     result = self.base.save(base_item)
   File "/usr/lib/python2.7/dist-packages/glance/api/policy.py", line 186, in save
     return super(ImageRepoProxy, self).save(image)
   File "/usr/lib/python2.7/dist-packages/glance/domain/proxy.py", line 65, in save
     result = self.base.save(base_item)
   File "/usr/lib/python2.7/dist-packages/glance/domain/proxy.py", line 65, in save

 result = self.base.save(base_item)
   File "/usr/lib/python2.7/dist-packages/glance/store/__init__.py", line 398, in save
     result = super(ImageRepoProxy, self).save(image)
   File "/usr/lib/python2.7/dist-packages/glance/domain/proxy.py", line 65, in save
     result = self.base.save(base_item)
   File "/usr/lib/python2.7/dist-packages/glance/db/__init__.py", line 170, in save
     image.tags)
   File "/usr/lib/python2.7/dist-packages/glance/db/registry/api.py", line 59,
 in wrapper
     return func(client, *args, **kwargs)
   File "/usr/lib/python2.7/dist-packages/glance/db/registry/api.py", line 200, in image_tag_set_all
     client.image_tag_set_all(image_id=image_id, tags=tags)
   File "/usr/lib/python2.7/dist-packages/glance/common/rpc.py", line 274, in method_proxy
     return self.do_request(item, **kw)
   File "/usr/lib/python2.7/dist-packages/glance/common/rpc.py", line 240, in do_request
     'kwargs': kwargs}])
   File
 "/usr/lib/python2.7/dist-packages/glance/common/client.py", line 64, in wrapped
     return func(self, *args, **kwargs)
   File "/usr/lib/python2.7/dist-packages/glance/common/rpc.py", line 223, in bulk_request
     body = self._serializer.to_json(commands)
   File "/usr/lib/python2.7/dist-packages/glance/common/wsgi.py", line 577, in to_json
     return json.dumps(data, default=self._sanitizer)
   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

After adding sanitizer check for it the sqlalchemy gets empty id to fetch:
 Mar 21 14:58:26.627 HOST 24293 DEBUG glance.db.sqlalchemy.api [...] No image found with ID None
 Mar 21 14:58:26.628 HOST 24293 ERROR glance.common.rpc [...] RPC Call Error: No image found with ID None
 Traceback (most recent call last):
   File "/usr/lib/python2.7/dist-packages/glance/common/rpc.py", line 177, in __call__
     result = method(req.context, **kwargs)
   File "/usr/lib/python2.7/dist-packages/glance/db/sqlalchemy/api.py", line 832, in image_get_all

 force_show_deleted=showing_deleted)
   File "/usr/lib/python2.7/dist-packages/glance/db/sqlalchemy/api.py", line 451, in _image_get
     raise exception.NotFound(msg)
 NotFound: No image found with ID None