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



--- Comment #2 from Petr Pisar <[email protected]> ---
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
--
Fedora Extras Perl SIG
http://www.fedoraproject.org/wiki/Extras/SIGs/Perl
perl-devel mailing list
[email protected]
https://admin.fedoraproject.org/mailman/listinfo/perl-devel

Reply via email to