I'm having the same problem (solution below). The problem is that
_reset_auto_purge_interval loops. Here's a stack trace demonstrating
the issue:
Cache::BaseCache::_reset_auto_purge_interval('Cache::FileCache=HASH(0x8392a50)')
called at /usr/local/lib/perl5/site_perl/5.8.4/Cache/BaseCache.pm line 511
Cache::BaseCache::_auto_purge('Cache::FileCache=HASH(0x8392a50)') called
at /usr/local/lib/perl5/site_perl/5.8.4/Cache/BaseCache.pm line 556
Cache::BaseCache::_conditionally_auto_purge_on_get('Cache::FileCache=HASH(0x8392a50)')
called at /usr/local/lib/perl5/site_perl/5.8.4/Cache/BaseCache.pm line 198
Cache::BaseCache::get('Cache::FileCache=HASH(0x8392a50)',
'Default') called at
/usr/local/lib/perl5/site_perl/5.8.4/Cache/BaseCache.pm line 466
Cache::BaseCache::_reset_auto_purge_interval('Cache::FileCache=HASH(0x8392a50)')
called at /usr/local/lib/perl5/site_perl/5.8.4/Cache/BaseCache.pm line 625
Cache::BaseCache::set_auto_purge_interval('Cache::FileCache=HASH(0x8392a50)',
'12h') called at /usr/local/lib/perl5/site_perl/5.8.4/Cache/BaseCache.pm
line 393
Cache::BaseCache::_initialize_auto_purge_interval('Cache::FileCache=HASH(0x8392a50)')
called at /usr/local/lib/perl5/site_perl/5.8.4/Cache/BaseCache.pm line 337
Cache::BaseCache::_complete_initialization('Cache::FileCache=HASH(0x8392a50)')
called at /usr/local/lib/perl5/site_perl/5.8.4/Cache/FileCache.pm line 90
Cache::FileCache::new('Cache::FileCache', 'HASH(0x811b168)')
called at t/new2.t line 17
And here's one solution that seems to work:
In Cache::BaseCache, update this line in sub get:
$self->_conditionally_auto_purge_on_get( )
to this:
$self->_conditionally_auto_purge_on_get( ) unless
$self->get_namespace() eq $AUTO_PURGE_NAMESPACE;
Regards,
-Dan