From: John Spray Date: Fri, 15 Jun 2018 15:39:02 +0000 (+0100) Subject: mds: improve error handling in PurgeQueue X-Git-Tag: v13.2.1~77^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F22810%2Fhead;p=ceph.git mds: improve error handling in PurgeQueue Fixes: http://tracker.ceph.com/issues/24533 Signed-off-by: John Spray (cherry picked from commit b0b7b84da84d69951977045e8812419c19268756) --- diff --git a/src/mds/PurgeQueue.cc b/src/mds/PurgeQueue.cc index e01e46e4ca47..ddf2ed5fa714 100644 --- a/src/mds/PurgeQueue.cc +++ b/src/mds/PurgeQueue.cc @@ -359,6 +359,12 @@ bool PurgeQueue::_consume() delayed_flush = nullptr; } + if (int r = journaler.get_error()) { + derr << "Error " << r << " recovering write_pos" << dendl; + on_error->complete(r); + return could_consume; + } + if (!journaler.is_readable()) { dout(10) << " not readable right now" << dendl; // Because we are the writer and the reader of the journal @@ -368,6 +374,8 @@ bool PurgeQueue::_consume() Mutex::Locker l(lock); if (r == 0) { _consume(); + } else if (r != -EAGAIN) { + on_error->complete(r); } })); }