]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: invalid id for client eviction is to be treated as success 59874/head
authorVenky Shankar <vshankar@redhat.com>
Thu, 19 Sep 2024 06:27:53 +0000 (06:27 +0000)
committerVenky Shankar <vshankar@redhat.com>
Mon, 23 Sep 2024 08:29:59 +0000 (08:29 +0000)
Introduced-by: 0ef5941a2e79
Fixes: http://tracker.ceph.com/issues/68132
Signed-off-by: Venky Shankar <vshankar@redhat.com>
qa/tasks/cephfs/test_misc.py
src/mds/MDSRank.cc

index 7917bd9202fc6663668cc14a1ba6002ea9f3de7f..14f54a784e793e1a74fca4bd9b41ad514d2c0b52 100644 (file)
@@ -558,16 +558,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 50c7175df804a6aad62428d9e1608421a709c06e..f6665cf42d8217e0eac4698f5f270b8c29e6046d 100644 (file)
@@ -3149,7 +3149,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;
   }