]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/osd/main: always stop osd as long as it started
authorKefu Chai <kchai@redhat.com>
Sat, 29 May 2021 07:08:18 +0000 (15:08 +0800)
committerKefu Chai <kchai@redhat.com>
Mon, 31 May 2021 12:06:40 +0000 (20:06 +0800)
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<T>::~sharded() [with Service = crimson::osd::OSD]: Assertion `_instances.empty()' failed.
Aborting on shard 0.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/osd/main.cc

index c8e0e5a6b5727af103b62a8eabb991b7ab7273e7..2024d2bef8f471452877761217a02b5604c17319 100644 (file)
@@ -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<uuid_d>("osd_uuid"),
               local_conf().get_val<uuid_d>("fsid")).get();
           }
-          auto stop_osd = seastar::defer([&] {
-            osd.stop().get();
-          });
           if (config.count("mkkey") || config.count("mkfs")) {
             return EXIT_SUCCESS;
           } else {