[asterisk-bugs] [JIRA] (ASTERISK-29184) memory leak manager.c:purge_old_stuff not scheduled when manager.conf enabled=no

Sean Bright (JIRA) noreply at issues.asterisk.org
Fri Dec 18 08:46:16 CST 2020


    [ https://issues.asterisk.org/jira/browse/ASTERISK-29184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=253146#comment-253146 ] 

Sean Bright commented on ASTERISK-29184:
----------------------------------------

bq. Or there would have to be a way to check if manager is enabled from an external module like chan-sccp to prevent it from registering the manager_hook.

[{{check_manager_enabled()}} in {{manager.h}}|https://github.com/asterisk/asterisk/blob/9c3b57822a325cd81597efb9b9489197470e3091/include/asterisk/manager.h#L117-L118]

Although we should probably be doing more to protect against this kind of thing in the manager code itself.

> memory leak manager.c:purge_old_stuff not scheduled when manager.conf enabled=no
> --------------------------------------------------------------------------------
>
>                 Key: ASTERISK-29184
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29184
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Core/ManagerInterface
>    Affects Versions: GIT, 17.8.1, 18.0.1, 16.15.0
>         Environment: Any
>            Reporter: Diederik de Groot
>              Labels: ami, core, manager, memory-leak
>         Attachments: eventq.log
>
>
> With enabled=off in manager.conf the `purge_old_stuff` function from main/manager.c is never scheduled and doesn't run. Meaning that any time the append_event is called (for example through __manager_event_sessions_va / manager_event) new memory is allocated for the event, it is inserted in the `eventqent`, but never released. Causing a non negligible memory consumption over time. Enabling manager/ami and reloading resolves the memory leak.
> Possible/Potential Solutions: 
> - append_event could bail out early and not allocate memory.
> - purge_old_stuff could be scheduled even if ami/manager is not enabled.
> - purge_old_stuff could be scheduled on some other monitoring thread.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list