]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: invalid id for client eviction is to be treated as success 58726/head
authorVenky Shankar <vshankar@redhat.com>
Thu, 19 Sep 2024 06:27:53 +0000 (06:27 +0000)
committerVenky Shankar <vshankar@redhat.com>
Mon, 30 Sep 2024 14:57:23 +0000 (20:27 +0530)
Introduced-by: 0ef5941a2e79
Fixes: http://tracker.ceph.com/issues/68132
Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit 4277cd298977c606609b90e2c2fa367cce97ae5a)

qa/tasks/cephfs/test_misc.py
src/mds/MDSRank.cc

index a5cee7eafa1580d25384fbf2ca007286fff1f94c..1e8f564e3dc00ee43a545b024b6325315b2ce78c 100644 (file)
@@ -555,16 +555,18 @@ class TestSessionClientEvict(CephFSTestCase):
         self.assertEqual(ce.exception.exitstatus, errno.EINVAL)
 
     def _evict_with_invalid_id(self, cmd):
+        info_initial = self.fs.rank_asok(cmd + ['ls'])
         # with invalid id
-        with self.assertRaises(CommandFailedError) as ce:
-            self.fs.rank_tell(cmd + ['evict', 'id=1'])
-        self.assertEqual(ce.exception.exitstatus, errno.ESRCH)
+        self.fs.rank_tell(cmd + ['evict', 'id=1'])
+        info = self.fs.rank_asok(cmd + ['ls'])
+        self.assertEqual(len(info), len(info_initial)) # session list is status-quo
 
     def _evict_with_negative_id(self, cmd):
+        info_initial = self.fs.rank_asok(cmd + ['ls'])
         # with negative id
-        with self.assertRaises(CommandFailedError) as ce:
-            self.fs.rank_tell(cmd + ['evict', 'id=-9'])
-        self.assertEqual(ce.exception.exitstatus, errno.ESRCH)
+        self.fs.rank_tell(cmd + ['evict', 'id=-9'])
+        info = self.fs.rank_asok(cmd + ['ls'])
+        self.assertEqual(len(info), len(info_initial)) # session list is status-quo
 
     def _evict_with_valid_id(self, cmd):
         info_initial = self.fs.rank_asok(cmd + ['ls'])
index 77488cfe7b54304efee99f75575327b5b391586b..9cdd563e1e82333ad6bd775dff95e579fd196267 100644 (file)
@@ -2989,7 +2989,7 @@ void MDSRankDispatcher::evict_clients(
   dout(20) << __func__ << " matched " << victims.size() << " sessions" << dendl;
 
   if (victims.empty()) {
-    on_finish(-ESRCH, "no hosts match", outbl);
+    on_finish(0, "no hosts match", outbl);
     return;
   }