Weird Presence Issue - Need help understanding the log

Using: OpenFire 3.3.2, single domain, using AD users and groups,

Client(s): Adium, Spark

Symptoms:

  • User can log in, but can’t see anybody, and shows offline to everyone else

  • User cannot send or receive messages

  • Server shows user not logged in (in User/Groups tab), but has session established (in Sessions Tab).

  • The Error Log is posted below.

Actions Taken:

  • Cleared Cache

  • Re-Created User in Active Directory

  • Deleted user-related data in jiveRoster and jiveRosterGroups

  • Smashed brain through skull using a gold brick wrapped with a lemon wedge

Here’s The Log:

2007.08.24 11:14:17 org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHa ndler.java:140) Internal server error. Triggered by packet:

(Roster.java:98)

at org.jivesoftware.openfire.roster.RosterManager.getRoster(RosterManager.java:92)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.broadcastUpdate(Presenc eUpdateHandler.java:257)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:100)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:88)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:151)

at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:123)

at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:69)

at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:75)

at org.jivesoftware.openfire.net.StanzaHandler.processPresence(StanzaHandler.java: 306)

at org.jivesoftware.openfire.net.ClientStanzaHandler.processPresence(ClientStanzaH andler.java:85)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:231)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)

at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:132)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:703)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:62)

at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:200)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

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

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

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:613)

Caused by: org.jivesoftware.stringprep.IDNAException: String too long.

at org.jivesoftware.stringprep.IDNA.toASCII(IDNA.java:153)

at org.jivesoftware.stringprep.IDNA.toASCII(IDNA.java:53)

at org.xmpp.packet.JID.init(JID.java:355)

… 30 more

Other than this one particular user, OpenFire has been a smashing success here! Thanks in advance for your help.

java.lang.IllegalArgumentException: Illegal JID: shill@im.mygreatcompany.com.

That would seem like the relevant bit. Check the JID of the user to see if there are any illegal characters or other similar issues.

That was it! I had blown away the roster with:

DELETE FROM jiveRosterGroups WHERE rosterID in (SELECT rosterID from jiveRoster WHERE username = ‘jwhatshername’);

DELETE FROM jiveRoster WHERE username = ‘jwhatshername’;

But this missed the fact that during my sloppy import from jabberd 1.4’s xml spool files (regex is your friend, sometimes) some of the username entries had a trailing control character, and some the jid’s had a few trailing gremlins as well.

Traced it down to users who had been using Adium and jabber from our initial roll out, which given that most folks use iChat or Spark, boiled it down to about 3 users.

This was very helpful. Thanks for the quick response!