Status doesn't change on user exit\logout

We’re using Spark 2.5.8 and Openfire 3.3.2 (although I’ve tested with 3.4.2 with same result)

Presense works fine for all users except when a user logs out or exits and then it keeps whatever presence the user had before leaving. So, for example, if a user was set as “available” and then logs ou, I still see them as “available” with no way to get Spark to update without exiting myself and restarting Spark. Anyone seeing the same issue. The presence status works just fine otherwise (going from “available” to “away due to idle” to “on phone” etc without a problem).

Extras: I’m running the IM Gateway as well as the Asterisk-IM and SIP Phone plugin combo (all working fine) in addition to the standar core setup on a Windows 2003 server with XP\2000\2003 clients

OK, since I got no takers on this I did a little more testing and found that the presence problem only takes place when someone logs out of Windows itself (not Spark). So, they have Spark minimized and running and they decide to leave for the day so they hit the old ctrl-alt-del and logoff. Somehow, it is as if the Spark process is killed instead of it normally exiting or logging off since it never seems to have a chance to update its presence with the server. Anyone else out there have this issue and know a workaround or solution (this didn’t happen with earlier versions of Spark). I may have to have users switch to another chat client at this point as people are getitng confused more and more by each others’ status (particulary near the end of the work day obviously).

thanks in advance

UPDATED

It looks like the server (Openfire) does update itself since if I am viewing “sessions” through the admin console and then log out of a windows on another machine with Spark running, the server drops that instance from the list (after a refresh of the web page). The presence notice, or change in status, doesn’t get propogated out to any other clients though. So, the admin console shows the sessions accurately but the Spark clients do not (nor will they ever update to be correct). Is it the job of Spark to make sure all the other clients get information? It seems odd that the server doesn’t let the users know a client status has changed (or have the client “ping” the server periodically to make sure everything matches).

And this is what I see in the debug log

java.io.IOException: An existing connection was forcibly closed by the remote host

at sun.nio.ch.SocketDispatcher.read0(Native Method)

at sun.nio.ch.SocketDispatcher.read(Unknown Source)

at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source)

at sun.nio.ch.IOUtil.read(Unknown Source)

at sun.nio.ch.SocketChannelImpl.read(Unknown Source)

at org.apache.mina.transport.socket.nio.SocketIoProcessor.read(SocketIoProcessor.j ava:232)

at org.apache.mina.transport.socket.nio.SocketIoProcessor.process(SocketIoProcesso r.java:206)

at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$500(SocketIoProce ssor.java:44)

at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProce ssor.java:506)

at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:43)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

2008.02.01 15:00:57 passed presence:

<presence type=“unavailable” from=“user1@domain”/>

which makes it look like the server is passing the “unavailable” presence but no clients get it.

OK, for the heck of it, I set up the newest Openfire again with all the same plugins I use and everything seems to work fine so there must be something that went screwy with my install. So, I guess I will work to upgrade our production system and see if the problem goes away. In other words, never mind

I’m having the exact same problem here: status updates are not propagating

to clients. It looks like the clients are only getting the status of their contacts

at first login. If any contact goes offline or changes status after that (e.g.: to away),

nothing happens.

I’ve setup another test server, which is exactly the same (OS, firewall, openfire

version and settings), and everything works fine there.

Likewise, on the first server, our users are not able to initiate a video conference

using iChat, while everything works fine on the test server.

Leander

I just noticed that the original post was about the Spark

client, whereas we’re using desktop clients (mostly

iChat and Adium).

Leander

That’s exactly what we’re seeing with Adium and Openfire 3.5.1. The adium clients don’t change status on logins and logouts, but only for users local to our Openfire server. All the various gateways to yahoo, aim, icq, etc… when those users come in and out, their status changes.

Switching to the Spark client on the same desktops, everything works fine.

I suspect it’s something particular to Adium, but I haven’t tracked it down yet.

Eric Feldhusen

We are having this exact problem with Adium 1.2.7 (libpurple 2.4.3) with OpenFire. I’m all about it potentially being an Adium issue but I know our users use Adium’s jabber module with lots of other systems without any problem. This is pretty annoying though. I kept getting IMs from my boss and it showed him as ‘invisible’ and yet all I have to do is log out and back in and he is ‘available’… he reported IMing his boss who’s status showed ‘online’ when he was not, etc. I noticed that when I looked at ‘info’ on my bosses’ account when he appeared ‘invisible’ that the “Client” information was blank (of course I was using Adium though). Our open source organization is all about standards and interoperability, so getting users to change their client is not really an option. I had a hard enough time getting them to upgrade Adium. We have a unique environment like that and its beautiful… everyone gets what they want. Very little support needed 'cause its not Windows. But this issue is bothersome. We are running OpenFire 3.5.2 curently. We are not tying in with any other jabber servers or anything. This is a completely standalone jabber server with LDAP integration and about 10 unique users is all. I haven’t seen any updates to this thread in a while… any info would be much appreciated. I would rather not have to change to plain old jabberd or anything… I’ve used OpenFire / WildFire for years with various clients but so far this round has been a bummer as far as presence is concerned. We really need accurate presence. Thanks in advance for your help.

-_Carl

We have the same problem. Running Openfire 3.5.2 in a mixed environment. We’ve got people mostly using Adium 1.2.7 and pidgin on linux. About 22 users. You only get presence updates on login. This is a pita and would appreciate knowing if others have solved this problem already.

Well, my solution was unique I imagine but I will post it here just in case it helps someone out. What we had is a bunch of ldap users whos uid was slightly different due to a previous migration from one DS to Fedora DS. So, all I had to do was correct the ldap entries which was on my list to do anyway and magically it started working. Basically what happened for me was I ended up with an invisible partition between two groups of users and it manifested itself in weird ways like presence problems and messages never getting there even though the user appears online and lots of good stuff like that. Once I corrected the ldap discrepencies, we haven’t see the problem since.

-_Carl

Had the same problem for a while. Not sure when it started. Using OF v3.5.1

I must reopen Spark (v2.58 and 2.6 Beta) for the correct users to show. Will goto v3.5.2 to see if it helps.

Figured out my problem. Posix Mode for LDAP Groups had to be on. We’re defining groups in LDAP with the uid only, not the full dn. For some reason, openfire is able to see the groups and give everyone the user lists on login, but when presence change notices come up to the server, the function that tries to lookup group members to notify chokes because it’s looking for a DN, which returns an error, thus no-one gets notified.

I turned posix mode on and had everyone logout/in and it’s working great.