]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
client: introduce timeout for client shutdown 36215/head
authorVenky Shankar <vshankar@redhat.com>
Wed, 3 Jun 2020 07:17:38 +0000 (03:17 -0400)
committerVenky Shankar <vshankar@redhat.com>
Mon, 20 Jul 2020 13:30:35 +0000 (09:30 -0400)
commita58e642a167e3ea8f2eef03044d031ce3422b4ff
treea3fb2aca98f845d52e33e46780487e4c2dcaca4e
parentebb3b88fa355f722566c51bd067c51fed0e1c497
client: introduce timeout for client shutdown

Client::shutdown() could indefinitely wait when tearing down
MDS sessions if an MDS is unreachable during shutdown, but a
valid session existed, i.e., Client::mount() was successfull.

These failures were initially observed in mgr/volumes tests in
teuthology and lately during rados/mgr selftests where manager
plugins do not respawn as volumes plugin waits for cleaning up
libcephfs handles via Client::shutdown().

Fixes: http://tracker.ceph.com/issues/44276
Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit 7c716be4b94d7640d051d427f5d7e97fefe5baf2)

 Conflicts:
src/client/Client.cc
src/client/Client.h
src/common/options.cc

Condition variables in nautilus use WaitInterval() rather
than wait_for(). Client::_closed_mds_session() does not accept
errno parameter in nautilus -- so adjust for that. Also, fixup
config option conflict.
src/client/Client.cc
src/client/Client.h
src/common/options.cc