I am getting PHP errors from my cache router engine (wincache) indicating that the TTL can't be negative. It's failing where cache objects like page-???? are being passed in with an $expire value of 1800 (or 30 minutes, which is what cache_lifetime is set to in the Drupal performance settings on my site).

This can be fixed in the wincache and APC engines by checking if $expire is <= 86400 (1 day) before setting $ttl to $expire - time() and if it is, just use the value of $expire as the TTL. Or, should it be defaulting to 0 and the cache flushing functions handle checking cache_lifetime?

Comments

andypost’s picture

It seems that each engine should have own fix for that

tauno’s picture

I put the fix for wincache in my patch in the wincache issue.

I don't have a server using APC right now, so it's possible there isn't an issue there with negative TTL values. Maybe someone else can test that and either update or close this issue.