From f6cbe0133fdb16c308f3d76542371eab16337cc5 Mon Sep 17 00:00:00 2001 From: John Spray Date: Fri, 15 Jun 2018 16:39:02 +0100 Subject: [PATCH] mds: improve error handling in PurgeQueue Fixes: http://tracker.ceph.com/issues/24533 Signed-off-by: John Spray (cherry picked from commit b0b7b84da84d69951977045e8812419c19268756) --- src/mds/PurgeQueue.cc | 8 ++++++++ 1 file changed, 8 insertions(+) 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); } })); } -- 2.47.3