Merge PR #26096 into master

* refs/pull/26096/head:
	mds: remove cache drop asok command

Reviewed-by: Venky Shankar <vshankar@redhat.com>
This commit is contained in:
Patrick Donnelly 2019-01-26 16:51:20 -08:00
commit a823134c4d
No known key found for this signature in database
GPG Key ID: 3A2A7E25BEA8AADB
4 changed files with 13 additions and 45 deletions

View File

@ -264,6 +264,8 @@
system. This is a single command that unsets the joinable flag on the file system. This is a single command that unsets the joinable flag on the file
system and brings down all of its ranks. system and brings down all of its ranks.
* The `cache drop` admin socket command has been removed. The `ceph tell mds.X
cache drop` remains.
Upgrading from Luminous Upgrading from Luminous
----------------------- -----------------------

View File

@ -225,18 +225,15 @@ class TestMisc(CephFSTestCase):
info = self.fs.mds_asok(['dump', 'inode', hex(ino)]) info = self.fs.mds_asok(['dump', 'inode', hex(ino)])
assert info['path'] == "/foo" assert info['path'] == "/foo"
def _run_drop_cache_cmd(self, timeout, use_tell): def _run_drop_cache_cmd(self, timeout):
drop_res = None drop_res = None
if use_tell: mds_id = self.fs.get_lone_mds_id()
mds_id = self.fs.get_lone_mds_id() drop_res = json.loads(
drop_res = json.loads( self.fs.mon_manager.raw_cluster_cmd("tell", "mds.{0}".format(mds_id),
self.fs.mon_manager.raw_cluster_cmd("tell", "mds.{0}".format(mds_id), "cache", "drop", str(timeout)))
"cache", "drop", str(timeout)))
else:
drop_res = self.fs.mds_asok(["cache", "drop", str(timeout)])
return drop_res return drop_res
def _drop_cache_command(self, timeout, use_tell=True): def _drop_cache_command(self, timeout):
self.mount_b.umount_wait() self.mount_b.umount_wait()
ls_data = self.fs.mds_asok(['session', 'ls']) ls_data = self.fs.mds_asok(['session', 'ls'])
self.assert_session_count(1, ls_data) self.assert_session_count(1, ls_data)
@ -244,12 +241,12 @@ class TestMisc(CephFSTestCase):
# create some files # create some files
self.mount_a.create_n_files("dc-dir/dc-file", 1000) self.mount_a.create_n_files("dc-dir/dc-file", 1000)
# drop cache # drop cache
drop_res = self._run_drop_cache_cmd(timeout, use_tell) drop_res = self._run_drop_cache_cmd(timeout)
self.assertTrue(drop_res['client_recall']['return_code'] == 0) self.assertTrue(drop_res['client_recall']['return_code'] == 0)
self.assertTrue(drop_res['flush_journal']['return_code'] == 0) self.assertTrue(drop_res['flush_journal']['return_code'] == 0)
def _drop_cache_command_timeout(self, timeout, use_tell=True): def _drop_cache_command_timeout(self, timeout):
self.mount_b.umount_wait() self.mount_b.umount_wait()
ls_data = self.fs.mds_asok(['session', 'ls']) ls_data = self.fs.mds_asok(['session', 'ls'])
self.assert_session_count(1, ls_data) self.assert_session_count(1, ls_data)
@ -259,7 +256,7 @@ class TestMisc(CephFSTestCase):
# simulate client death and try drop cache # simulate client death and try drop cache
self.mount_a.kill() self.mount_a.kill()
drop_res = self._run_drop_cache_cmd(timeout, use_tell) drop_res = self._run_drop_cache_cmd(timeout)
self.assertTrue(drop_res['client_recall']['return_code'] == -errno.ETIMEDOUT) self.assertTrue(drop_res['client_recall']['return_code'] == -errno.ETIMEDOUT)
self.assertTrue(drop_res['flush_journal']['return_code'] == 0) self.assertTrue(drop_res['flush_journal']['return_code'] == 0)
@ -268,28 +265,14 @@ class TestMisc(CephFSTestCase):
self.mount_a.mount() self.mount_a.mount()
self.mount_a.wait_until_mounted() self.mount_a.wait_until_mounted()
def test_drop_cache_command_asok(self): def test_drop_cache_command(self):
"""
Basic test for checking drop cache command using admin socket.
Note that the cache size post trimming is not checked here.
"""
self._drop_cache_command(10, use_tell=False)
def test_drop_cache_command_tell(self):
""" """
Basic test for checking drop cache command using tell interface. Basic test for checking drop cache command using tell interface.
Note that the cache size post trimming is not checked here. Note that the cache size post trimming is not checked here.
""" """
self._drop_cache_command(10) self._drop_cache_command(10)
def test_drop_cache_command_timeout_asok(self): def test_drop_cache_command_timeout(self):
"""
Check drop cache command with non-responding client using admin
socket. Note that the cache size post trimming is not checked here.
"""
self._drop_cache_command_timeout(5, use_tell=False)
def test_drop_cache_command_timeout_tell(self):
""" """
Check drop cache command with non-responding client using tell Check drop cache command with non-responding client using tell
interface. Note that the cache size post trimming is not checked interface. Note that the cache size post trimming is not checked

View File

@ -260,11 +260,6 @@ void MDSDaemon::set_up_admin_socket()
asok_hook, asok_hook,
"show cache status"); "show cache status");
ceph_assert(r == 0); ceph_assert(r == 0);
r = admin_socket->register_command("cache drop",
"cache drop name=timeout,type=CephInt,range=0,req=false",
asok_hook,
"drop cache");
ceph_assert(r == 0);
r = admin_socket->register_command("dump tree", r = admin_socket->register_command("dump tree",
"dump tree " "dump tree "
"name=root,type=CephString,req=true " "name=root,type=CephString,req=true "

View File

@ -2517,18 +2517,6 @@ bool MDSRankDispatcher::handle_asok_command(std::string_view command,
} else if (command == "cache status") { } else if (command == "cache status") {
std::lock_guard l(mds_lock); std::lock_guard l(mds_lock);
mdcache->cache_status(f); mdcache->cache_status(f);
} else if (command == "cache drop") {
int64_t timeout;
if (!cmd_getval(g_ceph_context, cmdmap, "timeout", timeout)) {
timeout = 0;
}
C_SaferCond cond;
command_cache_drop((uint64_t)timeout, f, &cond);
int r = cond.wait();
if (r != 0) {
f->flush(ss);
}
} else if (command == "dump tree") { } else if (command == "dump tree") {
command_dump_tree(cmdmap, ss, f); command_dump_tree(cmdmap, ss, f);
} else if (command == "dump loads") { } else if (command == "dump loads") {