History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: JM-835
Type: Bug Bug
Status: Open Open
Priority: Minor Minor
Assignee: Gaston Dombiak
Reporter: LG
Votes: 9
Watchers: 4
Operations

If you were logged in you would be able to see more operations.
Openfire

fix "the s2s out of order issue" (MUC messages in wrong)

Created: 09/18/06 05:58 PM   Updated: 08/21/08 12:54 PM
Component/s: Core, Connection Manager
Affects Version/s: 3.0.2
Fix Version/s: 3.6.1

Time Tracking:
Not Specified

Support Plan Customer Issue: No
Acceptance Test - Add?: No


 Description  « Hide
When connecting to another server through Wildfire (simple s-2-s) Wildfire does display the wrong order of MUC messages.

This error also occurs (not tested by Gato or me so far) for connections to Wildfire through a Connection Manager.



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Jeff McAdams - 02/19/07 08:25 AM
FWIW, this problem is not isolated to MUC.

I have had a user from a remote Wildfire server cut-n-paste messages to me, and the client decided to send each line of the cut-n-paste as a separate <message/> (dumb client, but there ya go).

Because it was a single cut-n-paste and thus nearly instantaneous, but multiple messages, they ended up out-of-order when they arrived. This was private messages, no MUC involved, but still involving an s2s connection.


Yann Biancheri - 04/27/07 02:16 AM
I can confirm that this issue can happen when using Connection Managers also.

When a user sends a stanza through the CM, the CM receives it and 'randomly' choose one of the connection to forward it to OF.
When sending two stanzas, they can be routed through two different connections and OF has no way to know which stanzas has arrived first. By doing so, we can loose ordering. I beleive that clients should be assigned to one and only one connection on the CM so that we are sure to maintain ordering.


LG - 05/31/07 01:59 PM
see also http://www.igniterealtime.org/forum/thread.jspa?threadID=26787
"When connected to CM:
  • CM has 5 connections (blocking io, mina is not used in that part) to OF and the
    incoming traffic for each connection is handled by 5 threads
  • This mean that a stanza coming from a particular client will be randomly handled by 1
    of this 25 threads.
    ...
    even if stanza arrived in the right order there might be processed at the same time in different threads!! This can lead to a lot lot of troubles due to concurency issues and we can expect some crazy behaviours nearly everywhere."

So one should make sure that "each client has a dedicated thread server side for processing incoming stanzas" no matter if connected directly where this is already the case or if it is connected via a CM.