[Bug 1128792] perl-Cache-Cache-1.06-16.fc22 FTBFS: t/6_test_size_aware_memory_cache.t fails

bugzilla at redhat.com bugzilla at redhat.com
Wed Aug 13 08:21:46 UTC 2014


https://bugzilla.redhat.com/show_bug.cgi?id=1128792



--- Comment #2 from Petr Pisar <ppisar at redhat.com> ---
After reading Cache::CacheSizer::_Limit_Size():

sub _Limit_Size
{
  my ( $p_cache, $p_cache_meta_data, $p_new_size ) = @_;

  Assert_Defined( $p_cache );
  Assert_Defined( $p_cache_meta_data );
  Assert_Defined( $p_new_size );

  $p_new_size >= 0 or
    throw Error::Simple( "p_new_size >= 0 required" );

  my $size_estimate = $p_cache_meta_data->get_cache_size( );

  return if $size_estimate <= $p_new_size;

  foreach my $key ( $p_cache_meta_data->build_removal_list( ) )
  {
    return if $size_estimate <= $p_new_size;
    $size_estimate -= $p_cache_meta_data->build_object_size( $key );
    $p_cache->remove( $key );
    $p_cache_meta_data->remove( $key );
  }

  warn( "Couldn't limit size to $p_new_size" );
}

It's clear that $cache->limit_size() call from the tests removed all cache keys
and still could not press the cache size under size it previously had with the
first key. So later fetch could not find the key.

It's possible that the first key queued in front of other keys because in the
build_removal_list(), so it got removed before any of them. This is flaw in the
test.

However the reason why limit_size() could not decrease size while keeping at
least on key in the Cache is unclear to me.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=woIDNRtXv7&a=cc_unsubscribe



More information about the perl-devel mailing list