16 Replies Last post: May 9, 2008 8:22 AM by Daryl Herzmann  
Daryl Herzmann KeyContributor 424 posts since
Mar 12, 2005
Currently Being Moderated

Apr 10, 2007 6:41 PM

Zombie remote users in MUC

Greetings,

 

I''ve run into an issue with OpenFire 3.2.2 installed on 2 servers.  User A on server A connect to MUC server B.  Works great.  Then for whatever reason (local network errors perhaps), user A is booted from server A and server A logs:

 

2007.04.10 16:51:47 EXCEPTION

java.net.SocketTimeoutException: Read timed out

 

this stops the client connection on server A for user A, but the user A is still shown in the MUC room on server B.  The only thing we can do is give the user A a swift kick on the MUC server B

 

Looking at the changelog, this perhaps is a new issue?  If not, we will be happy to see it fixed when we upgrade to 3.3.0

 

Thanks!

  daryl

Gaston Dombiak Jiver 3,771 posts since
Sep 26, 2001
Currently Being Moderated
Apr 10, 2007 8:16 PM in response to: Daryl Herzmann
Re: Zombie remote users in MUC

Hey daryl,

 

Presence management when doing server-2-server is tricky. The main reason is that losing the s2s connection between 2 servers does not mean that the user is offline. You can send a mesage to the remote user and the servers will recreate the s2s connection. In the XMPP list it has recently been discussed this problem and will eventually come up with some recommendations. Once they reach that point we can improve presence management with remote users.

 

Having said that, in MUC you can specify the idle timeout before kicking users. In the admin console look into Group Chat --> Other Settings. This is not a perfect solution but at least it will kick users that are dandling around.

 

Regards,

 

  -- Gato

Gaston Dombiak Jiver 3,771 posts since
Sep 26, 2001
Currently Being Moderated
Apr 11, 2007 2:20 PM in response to: Daryl Herzmann
Re: Zombie remote users in MUC

Hey Daryl,

 

I think we are talking about the same issue. Lets say that userA that is connected to serverA joined a room in serverB. If connection of userA to serverA is lost then serverA should tell serverB that userA is offline. However, if serverA fails to detect that userA is disconnected then serverA will fail to tell serverB that userA is offline. Wildfire 3.2.2 uses a default idle timeout of 30 minutes. So after 30 minutes the server should realize that userA is offline and tell serverB that userA is offline now. Is this not working for you? Do you see any error in the log files?

 

Regarding the kicking of idle room occupants, are you using the default 30 minutes? Were the kicked occupants idle when they were kicked out?

 

Regards,

 

  -- Gato

Gaston Dombiak Jiver 3,771 posts since
Sep 26, 2001
Currently Being Moderated
May 16, 2007 2:17 PM in response to: Daryl Herzmann
Re: Zombie remote users in MUC

Hey daryl,

 

Are you using Openfire 3.3.1? Since we are using that version we are no longer seeing the phantom users problem. Let me know if that is not your case.

 

  -- Gato

Gaston Dombiak Jiver 3,771 posts since
Sep 26, 2001
Currently Being Moderated
Jun 15, 2007 11:26 AM in response to: Daryl Herzmann
Re: Zombie remote users in MUC

What do you see in the room occupants page in the admin console? I''m interested in JIDs, roles and affiliations.

 

Thanks,

 

  -- Gato

joey_mw   9 posts since
Jun 15, 2007
Currently Being Moderated
Jun 19, 2007 4:25 PM in response to: Daryl Herzmann
Re: Zombie remote users in MUC

My problem solved as:

 

Code:

sendAuthentication_result()

{

if (authenticated)
{
  loggedIn = true;

  // you have to do this here, after each login success, explicitly!!!
  send( new Presence( null, null, Presence.AVAILABLE_TYPE ) );

}

}

 

Without sending out the extra presence, some version of the server doesn''t think you are online in all modules.

 

*good luck

More Like This

  • Retrieving data ...