f4a25f6429
First off, this is an ugly hack, but we're dealing with code that essentially monkey-patches a monkey-patch. You reap what you sow. Per the linked bug, our connection pool client explodes on python 3 with eventlet monkey-patching in force: TypeError: object() takes no parameters This is due to the way __new__ is overridden in the class. We need to strip arguments from the call before they get to object(), which doesn't accept args. Unfortunately, when we're _not_ monkey-patched, adding the new override implementation fails with: TypeError: object.__new__(_MemcacheClient) is not safe, use Client.__new__() As such, we need different implementations depending on whether we are monkey-patched or not. This change passes both with and without monkey-patching and adds a unit test that exposes the bug. Note that this is a temporary, backportable fix that will ultimately be replaced by a switch to the pymemcache library which does not have the threading.local problem being worked around here. Change-Id: I039dffadeebd0ff4479b9c870c257772c43aba53 Partial-Bug: 1812935 |
||
---|---|---|
doc | ||
oslo_cache | ||
releasenotes | ||
tools | ||
.coveragerc | ||
.gitignore | ||
.gitreview | ||
.mailmap | ||
.stestr.conf | ||
.zuul.yaml | ||
CONTRIBUTING.rst | ||
HACKING.rst | ||
LICENSE | ||
README.rst | ||
babel.cfg | ||
lower-constraints.txt | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
README.rst
Team and repository tags
oslo.cache
oslo.cache aims to provide a generic caching mechanism for OpenStack projects by wrapping the dogpile.cache library. The dogpile.cache library provides support memoization, key value storage and interfaces to common caching backends such as Memcached.
- Free software: Apache license
- Documentation: https://docs.openstack.org/oslo.cache/latest/
- Source: https://git.openstack.org/cgit/openstack/oslo.cache/
- Bugs: https://bugs.launchpad.net/oslo.cache
- Release notes: https://docs.openstack.org/releasenotes/oslo.cache/