]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: improve error handling in PurgeQueue 22810/head
authorJohn Spray <john.spray@redhat.com>
Fri, 15 Jun 2018 15:39:02 +0000 (16:39 +0100)
committerNathan Cutler <ncutler@suse.com>
Tue, 3 Jul 2018 10:15:29 +0000 (12:15 +0200)
Fixes: http://tracker.ceph.com/issues/24533
Signed-off-by: John Spray <john.spray@redhat.com>
(cherry picked from commit b0b7b84da84d69951977045e8812419c19268756)

src/mds/PurgeQueue.cc

index e01e46e4ca47bff5f66bc721fae6041ef8a7d57f..ddf2ed5fa714447949e31d7d417e0f7ee188617f 100644 (file)
@@ -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);
           }
         }));
       }