From: Kefu Chai Date: Sat, 29 May 2021 07:08:18 +0000 (+0800) Subject: crimson/osd/main: always stop osd as long as it started X-Git-Tag: v17.1.0~1802^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d4671c2ff93e63f4436c53239d4e0d4ce6d3014d;p=ceph.git crimson/osd/main: always stop osd as long as it started otherwise the sharded_service's dtor complains if we destruct it without stopping it first, like: FATAL: startup failed: std::system_error (error crimson::net:3, negotiation failure) crimson-osd: ../src/seastar/include/seastar/core/sharded.hh:523: seastar::sharded::~sharded() [with Service = crimson::osd::OSD]: Assertion `_instances.empty()' failed. Aborting on shard 0. Signed-off-by: Kefu Chai --- diff --git a/src/crimson/osd/main.cc b/src/crimson/osd/main.cc index c8e0e5a6b572..2024d2bef8f4 100644 --- a/src/crimson/osd/main.cc +++ b/src/crimson/osd/main.cc @@ -250,6 +250,9 @@ int main(int argc, char* argv[]) osd.start_single(whoami, nonce, cluster_msgr, client_msgr, hb_front_msgr, hb_back_msgr).get(); + auto stop_osd = seastar::defer([&] { + osd.stop().get(); + }); if (config.count("mkkey")) { make_keyring().get(); } @@ -263,9 +266,6 @@ int main(int argc, char* argv[]) local_conf().get_val("osd_uuid"), local_conf().get_val("fsid")).get(); } - auto stop_osd = seastar::defer([&] { - osd.stop().get(); - }); if (config.count("mkkey") || config.count("mkfs")) { return EXIT_SUCCESS; } else {