[asterisk-bugs] [JIRA] Closed: (ASTERISK-19154) huge number of sip OPTION on 'sip reload'

Digium Subversion (JIRA) noreply at issues.asterisk.org
Tue Jul 31 16:03:21 CDT 2012


     [ https://issues.asterisk.org/jira/browse/ASTERISK-19154?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Digium Subversion closed ASTERISK-19154.
----------------------------------------

    Resolution: Fixed

> huge number of sip OPTION on 'sip reload'
> -----------------------------------------
>
>                 Key: ASTERISK-19154
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-19154
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_sip/General
>    Affects Versions: 1.8.8.0
>            Reporter: Nicolò Mazzon
>         Attachments: issue19154.patch
>
>
> In a large installation with thousands of registered peers with qualify set to yes, "sip reload" is a command that sends a huge number of sip OPTION.
> This is potentially capable of generating a high network traffic through the switch in a short time causing temporary flooding. 
> The outcome is a poor performance of the network and the system.
> The following is a brief analysis of the problem, referring to the source code of asterisk-1.8.8.0\channels\chan_sip.c
> A command of "sip reload" calls the following procedures:
> {code}
> sip_do_reload
> reload_config(reason = CHANNEL_CLI_RELOAD)
> build_peer
> reg_source_db
> {code}
> reload_config loads each peer, users and friends (line: 28309) and looking into reg_source_db (line: 13364):
> {code}
> 	if (sipsock < 0) {
> 		/* SIP isn't up yet, so schedule a poke only, pretty soon */
> 		AST_SCHED_REPLACE_UNREF(peer->pokeexpire, sched, ast_random() % 5000 + 1, sip_poke_peer_s, peer,
> 				unref_peer(_data, "removing poke peer ref"),
> 				unref_peer(peer, "removing poke peer ref"),
> 				ref_peer(peer, "adding poke peer ref"));
> 	} else {
> 		sip_poke_peer(peer, 0);
> 	}
> {code}
> being sipsock positive at runtime, each peer is immediately poked.
> Is there a way to avoid this problem?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list