CacheManager: Cannot find LastAccessTimeout key in struct

I had a weird error come in through my logs about 20 times today on
only one of my three servers, and in only one of my three ColdBox
apps. It was this:

Cannot find LastAccessTimeout key in structure.
The specified key, LastAccessTimeout, does not exist in the

From coldbox\system\cache\policies\LRU.cfc line 34.

Basically that line is the structSort that sorts the cache pool
metadata to look for the best candidate to evict. It appears that
eviction is running at a point where at least one of the structs in
the pool doesn't have a LastAccessTimeout key.

At first I assumed some sort of race condition, but looking through
the set() and setObjectMetadata() methods in the ObjectPool class I
can't see how that would ever happen.

I'm not sure how to tell if the cache manager been doing more
evictions than normal.

CB ver. 2.6.3
Cache eviction policy: LRU
Max Cache objects: 100 (cache is usually filled)



Yes, I had one of those popup on my logs the other day and I was baffled about it also. Maybe you can add some try catch around the policy and log the state of the cache to the logs and maybe we can figure out something for the 3.0 fixes.

I would really appreciate your help on this.