Uploaded image for project: 'MariaDB MaxScale'
  1. MariaDB MaxScale
  2. MXS-4428

modulecmd.cc leaks memory on shutdown

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Trivial
    • Resolution: Fixed
    • 22.08.2
    • 23.08.0
    • Core
    • None
    • MXS-SPRINT-181

    Description

      The modules are never unloaded and they leak memory:

      ==416173== 64 bytes in 1 blocks are still reachable in loss record 95 of 118
      ==416173==    at 0x484586F: malloc (vg_replace_malloc.c:381)
      ==416173==    by 0x50A017C: mxb_malloc(unsigned long) (alloc.cc:33)
      ==416173==    by 0x4F3C092: command_create(char const*, char const*, modulecmd_type, bool (*)(MODULECMD_ARG const*, json_t**), int, modulecmd_arg_type_t const*, char const*) (modulecmd.cc:156)
      ==416173==    by 0x4F3CD4B: modulecmd_register_command(char const*, char const*, modulecmd_type, bool (*)(MODULECMD_ARG const*, json_t**), int, modulecmd_arg_type_t const*, char const*) (modulecmd.cc:452)
      ==416173==    by 0xB5634DA: register_monitor_commands() (monitor_commands.cc:567)
      ==416173==    by 0xB523ADF: mxs_get_module_object (mariadbmon.cc:1287)
      ==416173==    by 0x4F27111: (anonymous namespace)::load_module_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, maxscale::ModuleType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (load_utils.cc:331)
      ==416173==    by 0x4F272B5: (anonymous namespace)::load_module(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, maxscale::ModuleType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (load_utils.cc:364)
      ==416173==    by 0x4F2910A: get_module(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, maxscale::ModuleType) (load_utils.cc:707)
      ==416173==    by 0x4E2595D: is_valid_module(ConfigSection const*) (config.cc:2097)
      ==416173==    by 0x4E28A58: check_config_objects(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ConfigSection, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigSection> > >&) (config.cc:2712)
      ==416173==    by 0x4E251B0: config_load_and_process(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, maxbase::ini::map_result::ConfigSection, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, maxbase::ini::map_result::ConfigSection> > > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ConfigSection, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigSection> > >&) (config.cc:2024)
      ==416173== 
      

      The error reporting also leaks memory:

      ==416173== 512 bytes in 1 blocks are still reachable in loss record 115 of 118
      ==416173==    at 0x484586F: malloc (vg_replace_malloc.c:381)
      ==416173==    by 0x50A017C: mxb_malloc(unsigned long) (alloc.cc:33)
      ==416173==    by 0x4F3BD0E: prepare_error() (modulecmd.cc:61)
      ==416173==    by 0x4F3BD48: reset_error() (modulecmd.cc:75)
      ==416173==    by 0x4F3CC66: modulecmd_register_command(char const*, char const*, modulecmd_type, bool (*)(MODULECMD_ARG const*, json_t**), int, modulecmd_arg_type_t const*, char const*) (modulecmd.cc:437)
      ==416173==    by 0xB56315C: register_monitor_commands() (monitor_commands.cc:478)
      ==416173==    by 0xB523ADF: mxs_get_module_object (mariadbmon.cc:1287)
      ==416173==    by 0x4F27111: (anonymous namespace)::load_module_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, maxscale::ModuleType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (load_utils.cc:331)
      ==416173==    by 0x4F272B5: (anonymous namespace)::load_module(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, maxscale::ModuleType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (load_utils.cc:364)
      ==416173==    by 0x4F2910A: get_module(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, maxscale::ModuleType) (load_utils.cc:707)
      ==416173==    by 0x4E2595D: is_valid_module(ConfigSection const*) (config.cc:2097)
      ==416173==    by 0x4E28A58: check_config_objects(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ConfigSection, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigSection> > >&) (config.cc:2712)
      

      Attachments

        Activity

          People

            markus makela markus makela
            markus makela markus makela
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.