On 03/10/12 11:25, Patrick Reilly wrote:
e.g., when a process unexpectedly died, reference is not decreased. First apc.ttl seconds is active in APC cache, then is deleted (there isn't next hit on this item). Now item is on garbage collector list (GC) and apc.gc_ttl timeout is running. When apc.gc_ttl is less then (now - item_deletion_time), warning is written and item is finally completely flushed.
So what should we do?
That's the point of the apc.gc_ttl feature. The shared memory pool was being exhausted because of reference leaks, so we set apc.gc_ttl to release the leaked objects. We set it to a value much higher than the request timeout, so it's unlikely to release an object which is in use.
I don't think the warning is an issue which needs to be fixed. Maybe the segfaults need to be fixed, if segfaults are causing the leaks.
-- Tim Starling