Details
-
Bug
-
Status: Closed (View Workflow)
-
Trivial
-
Resolution: Fixed
-
22.08.2
-
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)
|