powered by Jive Software

Groupchat history out of order

We have a openfire 3.9.1 server with groupchat running.

When joining persistant rooms, the history is sent to the clients out of order.

(Confirmed with an XML debug from Pidgin - it comes from the server out of order)

I’ve searched around on this community boards and found this:

PATCH: CM out of order messages (plus more)

http://community.igniterealtime.org/message/204016#204016

Has this patch been implmented in the baseline?

If so, is there something else required to get the groupchat history sent to the clients in correct historical order?

Thanks for the support

Patpat

http://fisheye.igniterealtime.org/changelog/openfire?cs=11928

The patch was commited …

With the patch in place, what else could be causing the history sent to joining clients being out of order?

This may be another concurrency issue. In org.jivesoftware.openfire.muc.HistoryRequest/sendHistory() the messages are send maybe in the right or wrong order. Without logging this is hard to tell.

for (Object aHistoryToSend : historyToSend) {

joinRole.send((Message) aHistoryToSend);

}

I have an XML debug log from Pidgin showing them arriving to the client out of order. A sanatized bit of it is here. It is a bit messy, but you can see that the messages are delivered in an order that does not follow the time stamps.

Is that the type of logging you were referring to?

As a data point, users are all logged in to gtalk and then accessing the chat server through those accounts. A mix of Adium and Pidgin clients. All users see history out of order.

If you leave/re-join, the order is different every time

Interesting thing I just learned in capturing debugging points for this. If I access the chat through an account local to the chat server (vs gtalk) it works. So it would appears it might be the server to server interaction, and perhaps specifically the google server.

(16:07:23) jabber: Recv (ssl)(503): Availablel1c32c817853e9050cf5dfff230c93ccff80f6ef91</ph oto>

(16:07:23) jabber: Recv (ssl)(225): This room is not anonymous.

(16:07:23) jabber: Recv (ssl)(273): room

(16:07:23) jabber: Recv (ssl)(381): blah

(16:07:23) jabber: Recv (ssl)(395): blah

(16:07:23) jabber: Recv (ssl)(361): blah

(16:07:23) jabber: Recv (ssl)(369): blah

(16:07:23) jabber: Recv (ssl)(434): blah

(16:07:23) jabber: Recv (ssl)(561): blah

(16:07:23) jabber: Recv (ssl)(362): blah

(16:07:23) jabber: Recv (ssl)(431): blah

(16:07:23) jabber: Recv (ssl)(375): blah

(16:07:23) jabber: Recv (ssl)(379): blah

(16:07:23) jabber: Recv (ssl)(384): blah

(16:07:23) jabber: Recv (ssl)(358): blah

(16:07:23) jabber: Recv (ssl)(431): blah

(16:07:23) jabber: Recv (ssl)(362): blah

(16:07:23) jabber: Recv (ssl)(368): blah

(16:07:23) jabber: Recv (ssl)(349): blah

(16:07:23) jabber: Recv (ssl)(366): blah

(16:07:23) jabber: Recv (ssl)(352): blah

(16:07:23) jabber: Recv (ssl)(396): blah

(16:07:23) jabber: Recv (ssl)(382): blah

(16:07:23) jabber: Recv (ssl)(468): blah

(16:07:23) jabber: Recv (ssl)(414): blah

(16:07:23) jabber: Recv (ssl)(390): blah

(16:07:23) jabber: Recv (ssl)(353): blah

(16:07:23) jabber: Recv (ssl)(372): blah

(16:07:23) jabber: Recv (ssl)(347): blah

(16:07:23) jabber: Recv (ssl)(391): blah

(16:07:23) jabber: Recv (ssl)(367): blah

(16:07:23) jabber: Recv (ssl)(387): blah

(16:07:23) jabber: Recv (ssl)(405): blah

(16:07:23) jabber: Recv (ssl)(357): blah

(16:07:23) jabber: Recv (ssl)(552): blah

(16:07:23) jabber: Recv (ssl)(354): blah

(16:07:23) jabber: Recv (ssl)(361): blah

(16:07:23) jabber: Recv (ssl)(479): blah

(16:07:23) jabber: Recv (ssl)(360): blah

(16:07:23) jabber: Recv (ssl)(379): blah

(16:07:23) jabber: Recv (ssl)(361): blah

(16:07:23) jabber: Recv (ssl)(360): blah

(16:07:23) jabber: Recv (ssl)(395): blah

(16:07:23) jabber: Recv (ssl)(423): blah

(16:07:23) jabber: Recv (ssl)(363): blah

(16:07:23) jabber: Recv (ssl)(500): blah

(16:07:23) jabber: Recv (ssl)(415): blah

For s2s this is a known issue.

http://issues.igniterealtime.org/browse/OF-115