qa: add test for importer's unexpected client eviction after an export subtree task is interrupted

Signed-off-by: Zhansong Gao <zhsgao@hotmail.com>
This commit is contained in:
Zhansong Gao 2023-07-03 16:42:34 +08:00
parent 057c5b1610
commit f23bd5d099
2 changed files with 25 additions and 1 deletions

View File

@ -649,6 +649,8 @@ class FilesystemBase(MDSClusterBase):
def set_session_timeout(self, timeout):
self.set_var("session_timeout", "%d" % timeout)
def set_session_autoclose(self, autoclose_time):
self.set_var("session_autoclose", "%d" % autoclose_time)
def set_allow_standby_replay(self, yes):
self.set_var("allow_standby_replay", yes)

View File

@ -789,4 +789,26 @@ class TestKillExports(CephFSTestCase):
self.wait_until_evicted(client_id, importer_rank)
# for multiple tests
self.mount_a.remount()
self.mount_a.remount()
def test_client_eviction(self):
# modify the timeout so that we don't have to wait too long
timeout = 30
self.fs.set_session_timeout(timeout)
self.fs.set_session_autoclose(timeout + 5)
kill_export_at = [9, 10]
exporter_rank = 0
importer_rank = 1
for kill in kill_export_at:
log.info(f"kill_export_at: {kill}")
self._run_kill_export(kill, exporter_rank, importer_rank)
client_id = self.mount_a.get_global_id()
self.wait_until_evicted(client_id, importer_rank, timeout + 10)
time.sleep(1)
# failed if buggy
self.mount_a.ls()