A couple of problems with 3.2.0

Hey there, I am running into a couple of weird issues with 3.2.0 RC2, and was hoping someone could help out.

First of all, it appears that the conflict policy is not quite working correctly. If I have an account logged in as BenV@localhost/xiff, and then log in from another location, the first session gets disconnected correctly, but the second connection can not properly join a group chat room. What I see when I look at the admin console is weird when this occurs: It shows that the BenV account is offline, but if I join the group chat room with another client (and another username) it shows BenV still online in the chat room! I have xmpp.conflict.limit set to 0, and it does appear to be properly destroying the first user’'s session, but the user is not being removed from group chat for some reason.

The other problem is that I am seeing quite a few entries like this in the error logs, I wonder if they are not somehow related:

2007.02.02 09:40:57 org.jivesoftware.wildfire.spi.PresenceManagerImpl.userUnavailable(PresenceManage rImpl.java:264) Error storing offline presence of user: douglas

java.sql.SQLException: Duplicate entry ‘‘douglas’’ for key 1

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600)

at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.ja va:1125)

at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement. java:677)

at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:794)

at org.jivesoftware.wildfire.spi.PresenceManagerImpl.userUnavailable(PresenceManag erImpl.java:261)

at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:121)

at org.jivesoftware.wildfire.SessionManager$ClientSessionListener.onConnectionClos e(SessionManager.java:1492)

at org.jivesoftware.wildfire.nio.NIOConnection.notifyCloseListeners(NIOConnection. java:174)

at org.jivesoftware.wildfire.nio.NIOConnection.close(NIOConnection.java:140)

at org.jivesoftware.wildfire.nio.ConnectionHandler.sessionClosed(ConnectionHandler .java:84)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.sessionClosed(A bstractIoFilterChain.java:677)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextSessionClosed(Abst ractIoFilterChain.java:321)

at org.apache.mina.common.support.AbstractIoFilterChain.access$800(AbstractIoFilte rChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.sessionClosed( AbstractIoFilterChain.java:781)

at org.apache.mina.filter.codec.ProtocolCodecFilter.sessionClosed(ProtocolCodecFil ter.java:285)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextSessionClosed(Abst ractIoFilterChain.java:321)

at org.apache.mina.common.support.AbstractIoFilterChain.access$800(AbstractIoFilte rChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.sessionClosed( AbstractIoFilterChain.java:781)

at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :267)

at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:305)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java: 650)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)

at java.lang.Thread.run(Thread.java:595)

No thoughts on this? Is resource conflict management working for other people? This seems like a fairly large issue.

I’'m also getting the messages in the error log about “Error storing offline presence of user”.

Hey BenV,

You can safely ignore that error message. It is more a warn than anything else that won’'t break anything. Anyway, there is a Jira issue to get rid of that problem.

Thanks,

– Gato

This problem persists in 3.2.2, and also affects Postgresql backed Openfire instances. For future reference: the issue that Gato mentions seems to be JM-921.

These are the traces that I get:

2007.03.07 14:05:44 org.jivesoftware.wildfire.spi.PresenceManagerImpl.userUnavailable(PresenceManage rImpl.java:264) Error storing offline presence of user: erik

org.postgresql.util.PSQLException: ERROR: duplicate key violates unique constraint “jivepresence_pk”

at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl .java:1512)

at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java: 1297)

at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188)

at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java :430)

at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2State ment.java:346)

at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java :339)

at org.jivesoftware.wildfire.spi.PresenceManagerImpl.userUnavailable(PresenceManag erImpl.java:261)

at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:121)

at org.jivesoftware.wildfire.SessionManager$ClientSessionListener.onConnectionClos e(SessionManager.java:1493)

at org.jivesoftware.wildfire.nio.NIOConnection.notifyCloseListeners(NIOConnection. java:161)

at org.jivesoftware.wildfire.nio.NIOConnection.close(NIOConnection.java:140)

at org.jivesoftware.wildfire.nio.ConnectionHandler.sessionIdle(ConnectionHandler.j ava:96)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.sessionIdle(Abs tractIoFilterChain.java:689)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextSessionIdle(Abstra ctIoFilterChain.java:342)

at org.apache.mina.common.support.AbstractIoFilterChain.access$900(AbstractIoFilte rChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.sessionIdle(Ab stractIoFilterChain.java:787)

at org.apache.mina.common.IoFilterAdapter.sessionIdle(IoFilterAdapter.java:73)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextSessionIdle(Abstra ctIoFilterChain.java:342)

at org.apache.mina.common.support.AbstractIoFilterChain.access$900(AbstractIoFilte rChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.sessionIdle(Ab stractIoFilterChain.java:787)

at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :261)

at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:305)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java: 650)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)

at java.lang.Thread.run(Thread.java:595)

I am experiencing the same issue and I am using MySQL. Also I’‘ve noted that it isn’'t storing logout times.