Bug #46222 | Agent memory leak (sigar related) | ||
---|---|---|---|
Submitted: | 16 Jul 2009 13:57 | Modified: | 29 Jul 2009 9:04 |
Reporter: | Diego Medina | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Enterprise Monitor: Agent | Severity: | S1 (Critical) |
Version: | 2.0.5.x 2.1.0.1067 | OS: | Linux (Mac OS X, *BSD) |
Assigned to: | Jan Kneschke | CPU Architecture: | Any |
[16 Jul 2009 13:57]
Diego Medina
[16 Jul 2009 13:58]
Diego Medina
valgrind output ==18712== ==18712== 59,421,120 bytes in 331 blocks are possibly lost in loss record 93 of 94 ==18712== at 0x4C22741: realloc (vg_replace_malloc.c:429) ==18712== by 0x7477871: sigar_file_system_list_grow (sigar.c:383) ==18712== by 0x747DDDE: sigar_file_system_list_get (linux_sigar.c:1133) ==18712== by 0x7479CCE: sigar_iodev_get (sigar_util.c:405) ==18712== by 0x747E093: get_iostat_proc_dstat (linux_sigar.c:1214) ==18712== by 0x747E725: sigar_disk_usage_get (linux_sigar.c:1391) ==18712== by 0x747EAF3: sigar_file_system_usage_get (linux_sigar.c:1488) ==18712== by 0x6A9BD29: agent_dc_os_fs_update_values (job_collect_os.c:756) ==18712== by 0x6A9A2B2: job_collect_get_value (job_collect.c:81) ==18712== by 0x6A9DD6C: job_collect_os_thread (job_collect_os.c:1532) ==18712== by 0x60B82A7: g_thread_create_proxy (gthread.c:635) ==18712== by 0x4F30FC6: start_thread (in /lib/libpthread-2.7.so) ==18712== ==18712== ==18712== 91,555,200 bytes in 510 blocks are definitely lost in loss record 94 of 94 ==18712== at 0x4C22741: realloc (vg_replace_malloc.c:429) ==18712== by 0x7477871: sigar_file_system_list_grow (sigar.c:383) ==18712== by 0x747DDDE: sigar_file_system_list_get (linux_sigar.c:1133) ==18712== by 0x7479CCE: sigar_iodev_get (sigar_util.c:405) ==18712== by 0x747E093: get_iostat_proc_dstat (linux_sigar.c:1214) ==18712== by 0x747E725: sigar_disk_usage_get (linux_sigar.c:1391) ==18712== by 0x747EAF3: sigar_file_system_usage_get (linux_sigar.c:1488) ==18712== by 0x6A9BD29: agent_dc_os_fs_update_values (job_collect_os.c:756) ==18712== by 0x6A9A2B2: job_collect_get_value (job_collect.c:81) ==18712== by 0x6A9DD6C: job_collect_os_thread (job_collect_os.c:1532) ==18712== by 0x60B82A7: g_thread_create_proxy (gthread.c:635) ==18712== by 0x4F30FC6: start_thread (in /lib/libpthread-2.7.so) ==18712== ==18712== LEAK SUMMARY: ==18712== definitely lost: 91,555,200 bytes in 510 blocks. ==18712== possibly lost: 59,421,120 bytes in 331 blocks. ==18712== still reachable: 83,433 bytes in 354 blocks. ==18712== suppressed: 0 bytes in 0 blocks.
[16 Jul 2009 14:04]
Enterprise Tools JIRA Robot
Jan Kneschke writes: ==18712== 91,555,200 bytes in 510 blocks are definitely lost in loss record 94 of 94 ==18712== at 0x4C22741: realloc (vg_replace_malloc.c:429) ==18712== by 0x7477871: sigar_file_system_list_grow (sigar.c:383) ==18712== by 0x747DDDE: sigar_file_system_list_get (linux_sigar.c:1133) ==18712== by 0x7479CCE: sigar_iodev_get (sigar_util.c:405) ==18712== by 0x747E093: get_iostat_proc_dstat (linux_sigar.c:1214) ==18712== by 0x747E725: sigar_disk_usage_get (linux_sigar.c:1391) ==18712== by 0x747EAF3: sigar_file_system_usage_get (linux_sigar.c:1488) ==18712== by 0x6A9BD29: agent_dc_os_fs_update_values (job_collect_os.c:756) ==18712== by 0x6A9A2B2: job_collect_get_value (job_collect.c:81) ==18712== by 0x6A9DD6C: job_collect_os_thread (job_collect_os.c:1532) ==18712== by 0x60B82A7: g_thread_create_proxy (gthread.c:635) ==18712== by 0x4F30FC6: start_thread (in /lib/libpthread-2.7.so)
[16 Jul 2009 14:06]
Enterprise Tools JIRA Robot
Jan Kneschke writes: Mail sent to Hyperic: Hi Doug, On Linux we have a mem-leak for one of our customers: ==18712== 91,555,200 bytes in 510 blocks are definitely lost in loss record 94 of 94 ==18712== at 0x4C22741: realloc (vg_replace_malloc.c:429) ==18712== by 0x7477871: sigar_file_system_list_grow (sigar.c:383) ==18712== by 0x747DDDE: sigar_file_system_list_get (linux_sigar.c:1133) ==18712== by 0x7479CCE: sigar_iodev_get (sigar_util.c:405) ==18712== by 0x747E093: get_iostat_proc_dstat (linux_sigar.c:1214) ==18712== by 0x747E725: sigar_disk_usage_get (linux_sigar.c:1391) ==18712== by 0x747EAF3: sigar_file_system_usage_get (linux_sigar.c:1488) ... in sigar_iodev_get (sigar_util.c:405) status = sigar_file_system_list_get(sigar, &fslist); if (status != SIGAR_OK) { sigar_log_printf(sigar, SIGAR_LOG_DEBUG, "[iodev] file_system_list failed: %s", sigar_strerror(sigar, status)); return NULL; } for (i=0; i<fslist.number; i++) { sigar_file_system_t *fsp = &fslist.data[i]; if (fsp->type == SIGAR_FSTYPE_LOCAL_DISK) { int retval = stat(fsp->dir_name, &sb); sigar_cache_entry_t *ent; if (retval < 0) { if (debug) { sigar_log_printf(sigar, SIGAR_LOG_DEBUG, "[iodev] inode stat(%s) failed", fsp->dir_name); } >>> sigar_file_system_list_get() isn't destroyed return NULL; /* cant cache w/o inode */ }
[17 Jul 2009 11:16]
Andrii Nikitin
Testcase which should demonstrate leak: mount something /test/mnt chmod 0000 /test You will see in the dashboard: /test/mnt null (null free) And agent size increasing rapidly.
[22 Jul 2009 19:51]
Enterprise Tools JIRA Robot
Andy Bang writes: Should be in agent build 2.1.0.1079.
[29 Jul 2009 0:55]
Enterprise Tools JIRA Robot
Diego Medina writes: This has been fixed on 2.1.0.1079
[29 Jul 2009 9:04]
Tony Bedford
An entry was added to the 2.1.0 changelog: The Agent had a memory leak. The memory consumption increased by 35MB every five minutes.