Ghost users in MUC rooms

Since upgrading to 3.9.2 we have had problems with ‘ghost’ users on our MUC chat server. All the users are logging in to Google Talk using Google Apps accounts for our company domain. We run a group chat service on Openfire on another domain, conference.chat.internaldomain.net. The symptoms are that every so often, a user who’s in the chatroom will appear twice on the ‘Room Occupants’ list, like this:

User
Nickname
rob@ourdomain.com/Adium174502DC
Rob
rob@ourdomain.com/Adium2CBED8D4
Rob

When this happens, the user gets 2 copies of every message which is said in the chatroom, in the same client window (they only have one client open). If they quit their client, one of the occupants disappears but the other one remains in the occupants list. It looks like one of the users is a “ghost” user.

Kicking one of the users by clicking the X in the room occupants list seems to kick both users, and then they can rejoin, and only one occupant shows up in the list, as it should be.

How can we avoid having to kick people to fix this problem? Is there any way we can have Openfire prevent users joining the same chat twice with the same nick, as it was before 3.9.2?

This is caused by OF-810. Currently openfire does not correctly route groupchat stanzas, so they get delivered to another resource when they in fact should not.

It didn’t appear in previous versions because allowing multiple resources in a MUC was introduced with 3.9.2: OF-103

I upgraded to a nightly build from Monday (Openfire 3.10.0 Alpha), thinking it contained a fix for OF-810, but it hasn’t fixed the problem. Users still have their Google Talk accounts appearing multiple times in the room occupants list, and they still get multiple copies of messages in the chatroom.

I’m going to downgrade our server to 3.9.1, since I think that was the last version that didn’t have this problem.

It would be good to be able to turn off the feature that allows multiple resources in a chatroom that introduced the problem, OF-103.

I am not sure what OF-810 has to do with it.

But I discovered that bug recently, too and tracked it as OF-821

My theory would be that the s2s session with gmail is not being notified of the google account getting logged out, so the account remains in the MUC eventhough they are gone from google. Then when they log into google again and connect back into the room, the openfire server sees two session using the same nick and sends things twice.

It does seem like that is the problem. After downgrading to 3.9.1 the problem stopped appearing. Is this something that needs to be fixed on Google’s side?