|ASTERISK-21160: In an XMPP distributed device state configuration, setting pubsub_node to a value without the pubsub prefix can cause a dialog loop leading to high CPU usage and crashiness
|Rusty Newton (rnewton)
|Asterisk 11 SVN r381835, res_xmpp, OpenFire 3.8.0
|( 0) spamcrash_full.txt
|Two Asterisk instances are configured for distributed device state via res_xmpp and an OpenFire server(with an almost default setup).
The issue occurs upon starting asterisk with the invalid config below. Asterisk will then consume CPU until the system becomes unresponsive, Asterisk crashes or other parts of the system crash. The issue occurs even if its just one system connected up to the OpenFire server,
If asterisk is already running, it seems to occur when device state is published to the XMPP connection after module reload.
;pubsub_node=pubsub.somehostname ; using this works fine
pubsub_node=somehostname ; using this causes the issue
Will attach a full log showing XMPP dialog loop that occurs. Its about 8mb that was logged in ~6 seconds (no calls or anything else major happening on the system). This log was terminated by manually killing Asterisk from a terminal since Asterisk's CLI was unresponsive.
I don't know XMPP well enough to know if this issue is a fault of how the OpenFire server responds to Asterisk's requests, or how Asterisk responds to it.