powered by Jive Software

OpenFire silently drops ALL messages

My OpenFire servers seems to be silently dropping messages. When I talk to another person via Pidgin, the messages show up on my end, but not on theirs. In group conversation, messages don’t show up at all.

Users can still connect to the server, start conversations with others users, etc… all fine. It’s just the messages that are being dropped.

Any ideas?

EDIT: There is nothing in the error, warn, info or debug logs to suggest a problem either.

UPDATE: Setting the offline messages to Bounce has no effect even when talking to someone who is offline. Status changes (such as a user going offline) also don’t seem to be sent to other clients.

SOLUTION: I was using OpenJDK (which is the default on OpenSUSE) instead of the official virtual machine from Sun. OpenJDK does not support one of the socket protocols which OpenFire requires to operate correctly (and you won’t get the error messages unless you run the server from a command line; they are not recorded in the error log for some reason).

I don’t know what could be the exact problem, just wonder what Offline messages policy you have (http://server:9090/offline-messages.jsp).

It’s set to Store -> Store or Bounce. Regardless, this is occurring between two Online users and in group chats.

I’ve been testing and I’ve found the following things:

  • Setting the offline messages to Bounce has no effect even when talking to someone who is offline.
  • Status changes (such as a user going offline) also don’t seem to be sent to other clients.

Hope this help in determining the problem.

Message Bounce must be supported on the client side, so maybe it’s just Pidgin not showing anything. E.g. Spark shows a message that contact won’t be able to receive offline messages every time you start a chat with offline user. Exodus just shows 404 error (doesn’t have support for bouncing, but at least shows error).

Sorry, but i can’t figure out what is happening in your case. Maybe it’s some network problems, or maybe server is out of resources and then start to behave unpredictably. What about server’s memory status? Also, can you try with other client, e.g. Spark?

Spark doesn’t even seem to want to login, not with a user account nor the default admin account. It just says “Invalid username or password”. The debugging window shows that my server isn’t sending any information, at all, even with the firewall turned off and OpenFire restarted just to make sure. The host and port for the connection are definitely correct, but OpenFire just doesn’t seem to be responding to the incoming connection.

For Pidgin I specified a BOSH url so that could possibly be why Pidgin was able to connect and show user statuses.

I just checked and the error log appears to have this in it:

2010.05.15 02:35:56 [org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSes sion(LocalOutgoingServerSession.java:258)] Error trying to connect to remote server: eu.jabber.org(DNS lookup: eu.jabber.org:5269)
java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java: 176)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:542)
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSess ion(LocalOutgoingServerSession.java:253)
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain (LocalOutgoingServerSession.java:185)
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPa cket(OutgoingSessionPromise.java:239)
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(Ou tgoingSessionPromise.java:216)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)

Hope that helps.

SOLUTION: I was using OpenJDK (which is the default on OpenSUSE) instead of the official virtual machine from Sun. OpenJDK does not support one of the socket protocols which OpenFire requires to operate correctly (and you won’t get the error messages unless you run the server from a command line; they are not recorded in the error log for some reason).

im running Sun-java6 and i am still having this issue.

randomly my users are not receiving messages. this can be for just 1 minute, or for up to 15 minutes.

i havnt seen any messages in my logs.

i originally thought this to be a memory issue, but now my server is barely using any of the 512MB allocated to it.

im open to suggestions.