#11270 closed (fixed)
Cache templatetag with memcached can't handle long tags
Reported by: | 235 | Owned by: | nobody |
---|---|---|---|
Component: | Core (Cache system) | Version: | dev |
Severity: | Keywords: | ||
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | yes | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
similar to #10016
Memcached has a hard limit of 250 characters for cache keys.
So we have to use md5 hash instead of the whole cached tag name with all vary variables.
Traceback (most recent call last): File "/var/www/virtual/sumno.com/modules/django/core/handlers/base.py", line 86, in get_response response = callback(request, *callback_args, **callback_kwargs) File "/var/www/virtual/sumno.com/htdocs/sumnocom/apps/lib/decorators.py", line 56, in wrapper return func(request, *args, **kwargs) File "/var/www/virtual/sumno.com/htdocs/sumnocom/../sumnocom/apps/generic_content/views.py", line 370, in detail_view_content_entry context_instance=RequestContext(request)) File "/var/www/virtual/sumno.com/modules/django/shortcuts/__init__.py", line 18, in render_to_response return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs) File "/var/www/virtual/sumno.com/modules/django/template/loader.py", line 107, in render_to_string return t.render(context_instance) File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 176, in render return self.nodelist.render(context) File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 768, in render bits.append(self.render_node(node, context)) File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 781, in render_node return node.render(context) File "/var/www/virtual/sumno.com/modules/django/template/loader_tags.py", line 97, in render return compiled_parent.render(context) File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 176, in render return self.nodelist.render(context) File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 768, in render bits.append(self.render_node(node, context)) File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 781, in render_node return node.render(context) File "/var/www/virtual/sumno.com/modules/django/template/loader_tags.py", line 97, in render return compiled_parent.render(context) File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 176, in render return self.nodelist.render(context) File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 768, in render bits.append(self.render_node(node, context)) File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 781, in render_node return node.render(context) File "/var/www/virtual/sumno.com/modules/django/template/loader_tags.py", line 24, in render result = self.nodelist.render(context) File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 768, in render bits.append(self.render_node(node, context)) File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 781, in render_node return node.render(context) File "/var/www/virtual/sumno.com/htdocs/sumnocom/apps/lib/templatetags/smartspaceless.py", line 17, in render s = self.nodelist.render(context).strip() File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 768, in render bits.append(self.render_node(node, context)) File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 781, in render_node return node.render(context) File "/var/www/virtual/sumno.com/modules/django/template/loader_tags.py", line 24, in render result = self.nodelist.render(context) File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 768, in render bits.append(self.render_node(node, context)) File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 781, in render_node return node.render(context) File "/var/www/virtual/sumno.com/modules/django/template/loader_tags.py", line 24, in render result = self.nodelist.render(context) File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 768, in render bits.append(self.render_node(node, context)) File "/var/www/virtual/sumno.com/modules/django/template/__init__.py", line 781, in render_node return node.render(context) File "/var/www/virtual/sumno.com/modules/django/templatetags/cache.py", line 27, in render value = cache.get(cache_key) File "/var/www/virtual/sumno.com/modules/django/core/cache/backends/memcached.py", line 25, in get val = self._cache.get(smart_str(key)) File "/var/lib/python-support/python2.5/memcache.py", line 619, in get check_key(key) File "/var/lib/python-support/python2.5/memcache.py", line 885, in check_key % SERVER_MAX_KEY_LENGTH) MemcachedKeyLengthError: Key length is > 250
Attachments (1)
Change History (7)
by , 15 years ago
Attachment: | cache_templatetag.patch added |
---|
comment:1 by , 15 years ago
milestone: | → 1.1 |
---|---|
Needs tests: | set |
Triage Stage: | Unreviewed → Accepted |
If Jacob thought #10016 was 1.1 worthy, this should be too.
comment:2 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:3 by , 15 years ago
comment:4 by , 15 years ago
comment:5 by , 15 years ago
Note:
See TracTickets
for help on using tickets.
django/templatetags/cache.py patch