From: Varsha Rao Date: Fri, 28 Feb 2020 06:43:31 +0000 (+0530) Subject: mds: Handle blacklisted error in purge queue X-Git-Tag: v15.2.4~28^2~2^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=50cf686772af9d28ebd3154da38c8942db52b95c;p=ceph.git mds: Handle blacklisted error in purge queue This patch adds check to catch blacklisted error from filer. On catching this error, mds will respawn. Fixes: https://tracker.ceph.com/issues/43598 Signed-off-by: Varsha Rao (cherry picked from commit c144d66afa74e8e45a2fc96bb650219d001538bf) --- diff --git a/src/mds/PurgeQueue.cc b/src/mds/PurgeQueue.cc index a671325b5191..eace818ec3d8 100644 --- a/src/mds/PurgeQueue.cc +++ b/src/mds/PurgeQueue.cc @@ -588,8 +588,14 @@ void PurgeQueue::_execute_item( gather.set_finisher(new C_OnFinisher( new LambdaContext([this, expire_to](int r){ std::lock_guard l(lock); - _execute_item_complete(expire_to); + if (r == -EBLACKLISTED) { + finisher.queue(on_error, r); + on_error = nullptr; + return; + } + + _execute_item_complete(expire_to); _consume(); // Have we gone idle? If so, do an extra write_head now instead of