]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
perfglue/heap_profiler.cc: expect args as first element on cmd vector
authorJoao Eduardo Luis <jecluis@gmail.com>
Fri, 20 Sep 2013 15:41:14 +0000 (16:41 +0100)
committerSage Weil <sage@inktank.com>
Tue, 24 Sep 2013 16:02:32 +0000 (09:02 -0700)
We used to pass 'heap' as the first element of the cmd vector when
handling commands.  We haven't been doing so for a while now, so we
needed to fix this.

Not expecting 'heap' also makes sense, considering that what we need to
know when we reach this function is what command we should handle, and
we should not care what the caller calls us when handling his business.

Fixes: #6361
Backport: dumpling

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
(cherry picked from commit c98b910d49bd2b46ceafdc430044a31524c29f5b)

src/perfglue/heap_profiler.cc

index 550f7f924c6c32aca9b6860c8dcb31f5c64504d4..6b079b865fa9c3f24bcf63cf421f805511a0067b 100644 (file)
@@ -88,7 +88,7 @@ void ceph_heap_profiler_dump(const char *reason)
 void ceph_heap_profiler_handle_command(const std::vector<std::string>& cmd,
                                        ostream& out)
 {
-  if (cmd.size() == 2 && cmd[1] == "dump") {
+  if (cmd.size() == 1 && cmd[0] == "dump") {
     if (!ceph_heap_profiler_running()) {
       out << "heap profiler not running; can't dump";
       return;
@@ -98,16 +98,16 @@ void ceph_heap_profiler_handle_command(const std::vector<std::string>& cmd,
     out << g_conf->name << "dumping heap profile now.\n"
        << heap_stats;
     ceph_heap_profiler_dump("admin request");
-  } else if (cmd.size() == 2 && cmd[1] == "start_profiler") {
+  } else if (cmd.size() == 1 && cmd[0] == "start_profiler") {
     ceph_heap_profiler_start();
     out << g_conf->name << " started profiler";
-  } else if (cmd.size() == 2 && cmd[1] == "stop_profiler") {
+  } else if (cmd.size() == 1 && cmd[0] == "stop_profiler") {
     ceph_heap_profiler_stop();
     out << g_conf->name << " stopped profiler";
-  } else if (cmd.size() == 2 && cmd[1] == "release") {
+  } else if (cmd.size() == 1 && cmd[0] == "release") {
     ceph_heap_release_free_memory();
     out << g_conf->name << " releasing free RAM back to system.";
-  } else if (cmd.size() == 2 && cmd[1] == "stats") {
+  } else if (cmd.size() == 1 && cmd[0] == "stats") {
     char *heap_stats = new char[1024];
     ceph_heap_profiler_stats(heap_stats, 1024);
     out << g_conf->name << "tcmalloc heap stats:"