Bug #20615
closed
Memcached backend does not work well if cache of a page shall expire after 30 days
Added by Vladimir Podkovanov over 15 years ago.
Updated almost 15 years ago.
Description
If page's "Cache expires" setted to 1 month then Memcached backend does not cache page properly.
For example for page's "Cache expires" < 1 month or default I'm getting parse time for page 91ms. When setted to 1 month page's parse time is 487ms that is the same as if no cache at all.
This applies only to memcached, with DB it works as intended.
http://de.php.net/manual/en/memcached.expiration.php
(issue imported from #M11326)
Files
From memcached docs:
"Expiration times
----------------
Some commands involve a client sending some kind of expiration time
(relative to an item or to an operation requested by the client) to
the server. In all such cases, the actual value sent may either be
Unix time (number of seconds since January 1, 1970, as a 32-bit
value), or a number of seconds starting from current time. In the
latter case, this number of seconds may not exceed 60*60*24*30 (number
of seconds in 30 days); if the number sent by a client is larger than
that, the server will consider it to be real Unix time value rather
than an offset from current time."
so maximum is 60*60*24*30 = 2592000
in $TCA['pages'] we have 2678400 secs (31 days) in 1 month expiration option
so IMHO proper handling is
1) change 1 month's value to 2592000
2) correct class.t3lib_cache_backend_memcachedbackend.php so expiration over 2592000 secs is not being passed to memcached as it is considered then as Unix timestamp
Does this problem still exist on your system?
Hi Oliver, just checked with latest trunk - yes, the bug still exists.
Committed to SVN Trunk (rev. 6577)
Also available in: Atom
PDF