Race condition with adding/cleaning rooms

Description

To expand on the explanation given on the forums;

1. org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl#processPacket calls org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl#getChatUser to get/create a user.
2. org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl#processPacket calls org.jivesoftware.openfire.muc.spi.LocalMUCUser#process(org.xmpp.packet.Presence)
3. In a background thread, org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl#checkForTimedOutUsers removes the user as they have not joined the room
4. org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl#processPacket calls org.jivesoftware.openfire.muc.spi.LocalMUCUser#process(org.xmpp.packet.Presence) tries (fails) to add the user to the room.

Environment

None
Fixed

Assignee

Greg Thomas

Reporter

Greg Thomas

Labels

None

Expected Effort

None

Components

Fix versions

Affects versions

Priority

Major
Configure