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)