Skip to content

Commit

Permalink
Merge pull request ceph#7132 from jcsp/wip-14144-jcsp
Browse files Browse the repository at this point in the history
mds: fix standby replay thread creation
  • Loading branch information
ukernel committed Jan 11, 2016
2 parents 0bb7054 + 3337eee commit 3aa051b
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/mds/MDLog.cc
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,7 @@ void MDLog::open(MDSInternalContextBase *c)
{
dout(5) << "open discovering log bounds" << dendl;

assert(!recovery_thread.is_started());
recovery_thread.set_completion(c);
recovery_thread.create();

Expand Down Expand Up @@ -215,6 +216,11 @@ void MDLog::reopen(MDSInternalContextBase *c)
delete journaler;
journaler = NULL;

// recovery_thread was started at some point in the past. Although
// it has called it's completion if we made it back here, it might
// still not have been cleaned up: join it.
recovery_thread.join();

recovery_thread.set_completion(new C_ReopenComplete(this, c));
recovery_thread.create();
}
Expand Down Expand Up @@ -840,6 +846,11 @@ void MDLog::replay(MDSInternalContextBase *c)
<< " to " << journaler->get_write_pos() << dendl;

assert(num_events == 0 || already_replayed);
if (already_replayed) {
// Ensure previous instance of ReplayThread is joined before
// we create another one
replay_thread.join();
}
already_replayed = true;

replay_thread.create();
Expand Down

0 comments on commit 3aa051b

Please sign in to comment.