]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
tools/cephfs: instantiate MDSUtility after global_init() 21321/head
authorYan, Zheng <zyan@redhat.com>
Tue, 10 Apr 2018 08:02:18 +0000 (16:02 +0800)
committerYan, Zheng <zyan@redhat.com>
Tue, 10 Apr 2018 08:15:16 +0000 (16:15 +0800)
cephfs-foo-tool from current master crashes immediately it starts.

Introduced by commit 6972273d53d "global: output usage on -h, --help,
or no args before contacting mons"

Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
Fixes: http://tracker.ceph.com/issues/23624
src/tools/cephfs/DataScan.h
src/tools/cephfs/JournalTool.h
src/tools/cephfs/TableTool.h
src/tools/cephfs/cephfs-data-scan.cc
src/tools/cephfs/cephfs-journal-tool.cc
src/tools/cephfs/cephfs-table-tool.cc

index 839da1610fe1a6264406dff0cc7ac1c1fee49081..e44d9a50795b4247d65229db158d6e22c9137313 100644 (file)
@@ -316,7 +316,7 @@ class DataScan : public MDSUtility, public MetadataTool
         std::function<int(std::string, uint64_t, uint64_t)> handler);
 
   public:
-    void usage();
+    static void usage();
     int main(const std::vector<const char *> &args);
 
     DataScan()
index c31203f7369e4d31b646d645fb152478f39fdbc6..3d1188222cb7744fb2b8e945b05f91dc890fdcb3 100644 (file)
@@ -83,7 +83,7 @@ class JournalTool : public MDSUtility
     //validate type
     int validate_type(const std::string &type);
   public:
-    void usage();
+    static void usage();
     JournalTool() :
       rank(0), other_pool(false) {}
     int main(std::vector<const char*> &argv);
index bcd3167b29e4fee4e917387c95272b896096c4eb..bf9b95c12938cc26b5190062976926a216170e54 100644 (file)
@@ -33,7 +33,7 @@ class TableTool : public MDSUtility
     int apply_role_fn(std::function<int(mds_role_t, Formatter *)> fptr, Formatter *f);
 
   public:
-    void usage();
+    static void usage();
     int main(std::vector<const char*> &argv);
 
 };
index 9de8384ab6a314b57a8a30899b3550f3918af48f..e6efff66c370b32bf30b702346a194930855b9f5 100644 (file)
@@ -13,13 +13,12 @@ int main(int argc, const char **argv)
   vector<const char*> args;
   argv_to_vec(argc, argv, args);
 
-  DataScan data_scan;
   if (args.empty()) {
     cerr << argv[0] << ": -h or --help for usage" << std::endl;
     exit(1);
   }
   if (ceph_argparse_need_usage(args)) {
-    data_scan.usage();
+    DataScan::usage();
     exit(0);
   }
 
@@ -27,6 +26,8 @@ int main(int argc, const char **argv)
                          CODE_ENVIRONMENT_UTILITY, 0);
   common_init_finish(g_ceph_context);
 
+  DataScan data_scan;
+
   // Connect to mon cluster, download MDS map etc
   int rc = data_scan.init();
   if (rc != 0) {
index b8b22f664824f965176ae6c0486684e93eef6ccf..290cb305ba5274d38f442ce5b27023eff9a85ca8 100644 (file)
@@ -25,13 +25,12 @@ int main(int argc, const char **argv)
 {
   vector<const char*> args;
   argv_to_vec(argc, argv, args);
-  JournalTool jt;
   if (args.empty()) {
     cerr << argv[0] << ": -h or --help for usage" << std::endl;
     exit(1);
   }
   if (ceph_argparse_need_usage(args)) {
-    jt.usage();
+    JournalTool::usage();
     exit(0);
   }
 
@@ -39,6 +38,7 @@ int main(int argc, const char **argv)
                             CODE_ENVIRONMENT_UTILITY, 0);
   common_init_finish(g_ceph_context);
 
+  JournalTool jt;
 
   // Connect to mon cluster, download MDS map etc
   int rc = jt.init();
index d2b5c5253c5361991614807d61168bc80399e74a..47b475dd0f89b8cab920d3cbc66fd117db992340 100644 (file)
@@ -13,13 +13,12 @@ int main(int argc, const char **argv)
   vector<const char*> args;
   argv_to_vec(argc, argv, args);
 
-  TableTool tt;
   if (args.empty()) {
     cerr << argv[0] << ": -h or --help for usage" << std::endl;
     exit(1);
   }
   if (ceph_argparse_need_usage(args)) {
-    tt.usage();
+    TableTool::usage();
     exit(0);
   }
 
@@ -27,6 +26,7 @@ int main(int argc, const char **argv)
                          CODE_ENVIRONMENT_UTILITY, 0);
   common_init_finish(g_ceph_context);
 
+  TableTool tt;
 
   // Connect to mon cluster, download MDS map etc
   int rc = tt.init();