Project

General

Profile

Bug #10546

Updated by Loïc Dachary about 9 years ago

HI all, 

 My ceph cluster report clock skew even after time syncing 30min ago, so i'm digging in the src code of ceph0.80.6,  
 i think the following code in void Monitor::timecheck_start_round() in monitor.cc from line 3160 to 3168 is very strange, 

 in my opinion, the highligted part should be *curr_time - timecheck_round_start < max* , 

 that is: if time elapsed less than max, then keep current round going, else cancel current round. 

 double max = g_conf->mon_timecheck_interval*3; 
 if (*curr_time - timecheck_round_start > max*) {  
 dout(10) << func << " keep current round going" << dendl;  
 goto out;  
 } else {  
 dout(10) << func  
 << " finish current timecheck and start new" << dendl;  
 timecheck_cancel_round();  
 } 

 just my opinion, any reply is welcomed! 

 thanks very much 

 * hammer commit:2e749599ac6e1060cf553b521761a93fafbf65bb 

Back