Summary: | ASTERISK-22126: Bridging: Memory leak for channels that hang up if they were in the bridging system | ||
Reporter: | Jonathan Rose (jrose) | Labels: | |
Date Opened: | 2013-07-19 14:13:40 | Date Closed: | 2013-08-06 07:48:01 |
Priority: | Major | Regression? | |
Status: | Closed/Complete | Components: | Core/Bridging |
Versions: | SVN 12 | Frequency of Occurrence | Constant |
Related Issues: | |||
Environment: | Attachments: | ||
Description: | What's leaking as reported by the memory allocation summary feature of MALLOC_DEBUG:
728 bytes in 7 allocations by ast_channel_get_manager_vars() line 7506 of channel.c 728 bytes in 7 allocations by ast_channel_get_vars() line 7480 of channel. 7506: ret = ao2_alloc(sizeof(*ret), varshead_dtor); 7480: ret = ao2_alloc(sizeof(*ret), varshead_dtor); Reproduction: If a channel ever enters the bridging system, these two allocations will be leaked when the channel dies. Easiest way to reproduce this is by calling bridgewait() on a channel. Another easy method to reproduce this is to just have one device do a simple call to another. | ||
Comments: | By: Matt Jordan (mjordan) 2013-07-20 15:05:39.084-0500 I'd suspect that there's a ref leak on a channel snapshot someplace. By: Kinsey Moore (kmoore) 2013-07-31 11:08:56.411-0500 That's what it sounds like, but from my limited testing with a single channel entering and exiting a bridge, the leak doesn't happen. Jonathan, can you still reproduce this leak (make sure to exit asterisk using "core stop gracefully")? |