Flooding or spamming a MUC

I am using Wildfire 3.1.0 on Ubuntu with an internal database. AMD 2500+ 2GB memory. I have written my own client based on the agsXMPP library.

I don?t know if it is something else in my system that is causing this so am just asking the question.

With 100 clients connected a single client sends one message to each connected client at the rate of 10 per second. After this, that client can?t send or receive message for about 20 min. All of the clients are in a single MUC and I am sending the messages to the individual clients using their MUC JIDs (user@confernace.subdomain.domain.com/resource) The CPU and network usage is minimal on the client and server. Is this something built in to Wildfire or should I look at other components in my system?

Thanks!

Running the same test again it seems to be a MUC related problem. Once the MUC is ?flooded? I can have two users that are communicating on real JIDs (using spark) and they can communicate fine. But as soon as one of the users connects to the MUC it can no longer communicate with anyone or at least there is a significant delay in messages (5 to 20 min). If I disconnect the two clients completely and reconnect (to Wildfire but not to the MUC) it can again communicate. And the clients that are left in the MUC are still seeing significant delays in messages.

Is there are threshold that I am hitting? Or has anyone done stress testing in a MUC?

Hi,

Wildfire does as far as I know not have a feature to limit messages, so there should be no problem.

As you have a test case I wonder if you really need 100 users in a MUC to see this happen.

Does this still happen if you stop the client which sends 10 messages per second?

I did a normal p2p-chat stress test but no MUC one so far, so I have no idea what the problem causes. I’'ve seen strange MUC behaviour anyhow while entering a MUC where one receives a lot of packets which do not contain chat messages.

Can you open a xmpp debug window (Spark: F12) before entering the MUC to see or dump which messages are received by the client?

Which Wildfire version are you using?

LG

PS: such a strange behaviour looks for example like this - I wonder why so many error messages are received:

<iq type="result" id="wV8Hs-147" from="dev@conference.jivesoftware.com" to="lg@jivesoftware.com/Spark"><query xmlns="http://jabber.org/protocol/disco#info"><identity category="conference" name="Open Chat" type="text"></identity><feature var="http://jabber.org/protocol/muc"></feature><feature var="muc_public"></feature><feature var="muc_open"></feature><feature var="muc_unmoderated"></feature><feature var="muc_semianonymous"></feature><feature var="muc_unsecured"></feature><feature var="muc_persistent"></feature><x xmlns="jabber:x:data" type="result"><field var="FORM_TYPE" type="hidden"><value>http://jabber.org/protocol/muc#roominfo</value></field><field label="Description" var="muc#roominfo_description"><value>Open room for Wednesday chat</value></field><field label="Subject" var="muc#roominfo_subject"><value>Meetings every Wednesday at 17:00 UTC</value></field><field label="Number of occupants" var="muc#roominfo_occupants"><value>0</value></field><field label="Creation date" var="x-muc#roominfo_creationdate"><value>20051102T15:59:13</value></field></x></query></iq>
<presence id="wV8Hs-148" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/LG"><x xmlns="vcard-temp:x:update"><photo>3a64819d1e2e2ca11b90a82112bbaadb</photo></x><x xmlns="jabber:x:avatar"><hash>3a64819d1e2e2ca11b90a82112bbaadb</hash></x><x xmlns="http://jabber.org/protocol/muc#user"><item affiliation="none" role="participant"></item></x></presence>
<message type="groupchat" from="dev@conference.jivesoftware.com" to="lg@jivesoftware.com/Spark"><subject>Meetings every Wednesday at 17:00 UTC</subject><x xmlns="jabber:x:delay" stamp="20051102T17:38:11" from="dev@conference.jivesoftware.com"></x></message>
<message id="bYr4M-44" to="lg@jivesoftware.com/Spark" type="groupchat" from="dev@conference.jivesoftware.com/rtwert"><body>HI</body><x xmlns="jabber:x:delay" stamp="20061026T05:43:51" from="dev@conference.jivesoftware.com/rtwert"></x></message>
<message id="bYr4M-45" to="lg@jivesoftware.com/Spark" type="groupchat" from="dev@conference.jivesoftware.com/rtwert"><body>HI</body><x xmlns="jabber:x:delay" stamp="20061026T05:44:14" from="dev@conference.jivesoftware.com/rtwert"></x></message>
<message id="bYr4M-170" to="lg@jivesoftware.com/Spark" type="groupchat" from="dev@conference.jivesoftware.com/mayprog"><body>Hallo</body><x xmlns="jabber:x:delay" stamp="20061026T17:23:02" from="dev@conference.jivesoftware.com/mayprog"></x></message>
<message id="bYr4M-538" to="lg@jivesoftware.com/Spark" type="groupchat" from="dev@conference.jivesoftware.com/1233"><body>Messege</body><x xmlns="jabber:x:delay" stamp="20061027T21:05:51" from="dev@conference.jivesoftware.com/1233"></x></message>
<message id="wV8Hs-85" to="lg@jivesoftware.com/Spark" type="groupchat" from="dev@conference.jivesoftware.com/uu"><body>uu</body><x xmlns="jabber:x:event"><offline></offline><delivered></delivered><displayed></displayed><composing></composing></x><x xmlns="jabber:x:delay" stamp="20061028T13:38:44" from="dev@conference.jivesoftware.com/uu"></x></message>
<message id="wV8Hs-149" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><delivered></delivered><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-150" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><delivered></delivered><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-151" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><delivered></delivered><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-152" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><delivered></delivered><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-153" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><delivered></delivered><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-154" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><delivered></delivered><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-155" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><delivered></delivered><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-156" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><delivered></delivered><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-157" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><delivered></delivered><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-158" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><displayed></displayed><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-159" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><displayed></displayed><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-160" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><displayed></displayed><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-161" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><displayed></displayed><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-162" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><displayed></displayed><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-163" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><displayed></displayed><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-164" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><displayed></displayed><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-165" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><displayed></displayed><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>
<message id="wV8Hs-166" to="lg@jivesoftware.com/Spark" from="dev@conference.jivesoftware.com/uu" type="error"><x xmlns="jabber:x:event"><displayed></displayed><id>wV8Hs-85</id></x><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></recipient-unavailable></error></message>

Thanks for the ‘‘F12’’ debug idea. I did not know that was in there. I will see if i can get any more data using this.

I am using “Wildfire 3.1.0 – October 9, 2006”