Project

General

Profile

Bug #6458

Updated by Greg Farnum over 10 years ago

Got a report on irc from a user whose log was 611 bytes shorter than the header indicated it should be. His guess was that it had happened the day before when he restarted the MDS "a couple times" while some OSDs were down. 

 Checking the code, it turns out 
 This leads me to conclude that Journaler::flush there are some circumstances under which we will unconditionally call write_head(), which uses write out the current in-memory locations. We should instead be preparing a journal header (of the current state) and then sending that indicating we have writes which we have not actually committed to disk once we get acks of our journal log writes! Not doing so leads to the MDS getting stuck at the end of replay, waiting to read entries yet. Check for that will never be written. possibility.

Back