← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1160900] Re: Caching metadata fails when using memcached

 

** Changed in: nova/grizzly
       Status: Fix Committed => Fix Released

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

Title:
  Caching metadata fails when using memcached

Status in OpenStack Compute (Nova):
  Fix Committed
Status in OpenStack Compute (nova) grizzly series:
  Fix Released

Bug description:
  Value stored into the memorycache contains the 'nova.db' module
  itself. This is not an issue for the local implementation, but
  memcached needs a serialised version of the values.

  Trying to save the metadata value results in:

  2013-03-27 11:11:45.611 28474 ERROR nova.api.metadata.handler [-] Failed to get metadata for instance id: 7f655b96-7c99-44e2-9c83-1a62e6ddb3da
  2013-03-27 11:11:45.611 28474 TRACE nova.api.metadata.handler Traceback (most recent call last):
  2013-03-27 11:11:45.611 28474 TRACE nova.api.metadata.handler   File "/usr/lib/python2.7/dist-packages/nova/api/metadata/handler.py", line 179, in _handle_instance_id_request
  2013-03-27 11:11:45.611 28474 TRACE nova.api.metadata.handler     remote_address)
  2013-03-27 11:11:45.611 28474 TRACE nova.api.metadata.handler   File "/usr/lib/python2.7/dist-packages/nova/api/metadata/handler.py", line 94, in get_metadata_by_instance_id
  2013-03-27 11:11:45.611 28474 TRACE nova.api.metadata.handler     self._cache.set(cache_key, data, CACHE_EXPIRATION)
  2013-03-27 11:11:45.611 28474 TRACE nova.api.metadata.handler   File "/usr/lib/python2.7/dist-packages/memcache.py", line 565, in set
  2013-03-27 11:11:45.611 28474 TRACE nova.api.metadata.handler     return self._set("set", key, val, time, min_compress_len)
  2013-03-27 11:11:45.611 28474 TRACE nova.api.metadata.handler   File "/usr/lib/python2.7/dist-packages/memcache.py", line 802, in _set
  2013-03-27 11:11:45.611 28474 TRACE nova.api.metadata.handler     return _unsafe_set()
  2013-03-27 11:11:45.611 28474 TRACE nova.api.metadata.handler   File "/usr/lib/python2.7/dist-packages/memcache.py", line 780, in _unsafe_set
  2013-03-27 11:11:45.611 28474 TRACE nova.api.metadata.handler     store_info = self._val_to_store_info(val, min_compress_len)
  2013-03-27 11:11:45.611 28474 TRACE nova.api.metadata.handler   File "/usr/lib/python2.7/dist-packages/memcache.py", line 751, in _val_to_store_info
  2013-03-27 11:11:45.611 28474 TRACE nova.api.metadata.handler     pickler.dump(val)
  2013-03-27 11:11:45.611 28474 TRACE nova.api.metadata.handler   File "/usr/lib/python2.7/copy_reg.py", line 70, in _reduce_ex
  2013-03-27 11:11:45.611 28474 TRACE nova.api.metadata.handler     raise TypeError, "can't pickle %s objects" % base.__name__
  2013-03-27 11:11:45.611 28474 TRACE nova.api.metadata.handler TypeError: can't pickle module objects

  The metadata request then fails completely. Complete faliure is
  addressed by bug 1160883, but the structure of metadata cache needs to
  be fixed too.

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