Project

General

Profile

Bug #12717

Updated by Kefu Chai over 8 years ago

We setup a cache tier and set target_max_bytes to 10240, 
 After put 2 objects(each 40MB) by 'rados put' to the cache pool, 
 which will trigger the cache pool's agent_evict operation 
 the ceph df and rados df shows the cache pool still have 2 objects, 
 but the 'rados ls' shows there is no objects. 

 It's because that in agent_maybe_evict(), we create a repop without op, 
 in the @eval_repop()@, eval_repop(), the @repop->all_committed@ repop->all_committed is 0, so it will not execute @publish_stats_to_osd()@, 

 <pre> publish_stats_to_osd(), 
 // ondisk? 
   if (repop->all_committed) { 
     if (repop->ctx->op && !repop->log_op_stat) { 
       log_op_stats(repop->ctx); 
       repop->log_op_stat = true; 
     } 
     publish_stats_to_osd(); 
 </pre> 
 

Back