Problems with S2S = Openfire crashes

Hi Openfire Developers,

We are planning to use Openfire under austere conditions. For the deployment we need multiple federated Openfire 3.6.4 servers over wireless networks. We want to find out whether Openfire can be used over low bandwidth e.g. wireless data links. We get massive logs entries and think that the problems are related to known issues that are already in Tasker Tracker or are bugs / memory leaks that were reported in other threads. Some examples are given below:

error.log

2010.03.07 21:01:35

[org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSess

ion(LocalOutgoingServerSession.java:258)

] Error trying to connect to remote server: domain(DNS lookup:

domain:5269)

java.net.UnknownHostException: domain

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at

org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSessi

on(LocalOutgoingServerSession.java:253)

at

org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain(

LocalOutgoingServerSession.java:185)

at

org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPac

ket(OutgoingSessionPromise.java:239)

at

org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(Out

goingSessionPromise.java:216)

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)

2010.03.07 21:01:37

[org.jivesoftware.openfire.session.LocalOutgoingServerSession

debug.log

2010.03.08 13:57:57 ConnectionHandler:

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.ja

va:218)

at

org.apache.mina.transport.socket.nio.SocketIoProcessor.process(SocketIoProcessor

.java:198)

at

org.apache.mina.transport.socket.nio.SocketIoProcessor.access$400(SocketIoProces

sor.java:45)

at

org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProces

sor.java:485)

at

org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)

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)

2010.03.08 13:58:02 Waiting to get complete char: (z((( Q 9 8 5 ( (

( ( 3 2 / (( (( ( ( (( ( ( ( ( @ ( ( ( (( ( ((

((c((e(l(((P((U#(b1((:(((((/((|(

2010.03.08 13:58:07 030156 (01/24/00) - Connection #19 tested: OK

2010.03.08 13:58:07 030157 (01/24/00) - Connection #19 tested: OK

2010.03.08 13:59:25 030219 (02/24/00) - Connection #14 tested: OK

2010.03.08 13:59:25 030220 (02/24/00) - Connection #12 tested: OK

2010.03.08 13:59:25 030221 (02/24/00) - Connection #12 tested: OK

2010.03.08 13:59:25 030221 (02/24/00) - Connection #11 tested: OK

2010.03.08 13:59:25 030222 (02/24/00) - Connection #11 tested: OK

2010.03.08 13:59:25 Closing statement b19a55 (belonging to connection 14)

automatically

2010.03.08 13:59:25 Closing statement 13e25d0 (belonging to connection 14)

automatically

2010.03.08 13:59:25 030222 (01/24/00) - Connection #14 tested: OK

2010.03.08 13:59:27 030222 (01/24/00) - Connection #15 tested: OK

2010.03.08 13:59:27 030223 (01/24/00) - #15 registered a statement as closed

which wasn’t known to be open. This could happen if you close a statement twice.

2010.03.08 13:59:27 030223 (01/24/00) - Connection #15 tested: OK

warn.log

2010.03.08 13:38:35 Closing session due to exception: (SOCKET, R:

/v.w.y.z:2038, L: /v.w.x.y:5222, S: 0.0.0.0/0.0.0.0:5222)

org.apache.mina.filter.codec.ProtocolDecoderException: java.lang.Exception:

Disallowed character (Hexdump: 80 7A 01 03 01 00 51 00 00 00 20 00 00 39 00 00

38 00 00 35 00 00 16 00 00 13 00 00 0A 07 00 C0 00 00 33 00 00 32 00 00 2F 00 00

07 05 00 80 03 00 80 00 00 05 00 00 04 01 00 80 00 00 15 00 00 12 00 00 09 06 00

40 00 00 14 00 00 11 00 00 08 00 00 06 04 00 80 00 00 03 02 00 80 7D 8F 88 74 90

5D 6F 63 E6 DF 81 35 E9 C3 68 26 00 5F BD 3A 1D 13 84 77 09 8C 6A 48 57 D9 4F

E3)

at

org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFi

lter.java:170)

at

org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Abs

tractIoFilterChain.java:299)

at

org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilte

rChain.java:53)

at

org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived

(AbstractIoFilterChain.java:648)

at

org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:

at

org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Executo

rFilter.java:283)

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

Source)

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

at

org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)

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

Caused by: java.lang.Exception: Disallowed character

at

org.jivesoftware.openfire.nio.XMLLightweightParser.read(XMLLightweightParser.jav

a:211)

at

org.jivesoftware.openfire.nio.XMPPDecoder.doDecode(XMPPDecoder.java:32)

at

org.apache.mina.filter.codec.CumulativeProtocolDecoder.decode(CumulativeProtocol

Decoder.java:133)

at

org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFi

lter.java:163)

… 9 more

Here are my questions:

1.) Since MINA throws most of the exceptions are there plans to replace it with netty ?

2.) The following known issues have already been fixed in OF 3.7.0 beta. When will it be released?

  • OF-341: Openfire shouldn’t close idle client connections unconditionally.

  • OF-345: MINA’s SessionCreated or SessionOpened?

  • OF-79: NullPointerException if no DNS SRV records can be found for a particular domain

  • OF-78: Update Tinder to 1.2.1

  • OF-76: Limit the size of queues

  • OF-75: Packets sent to non-connected components are processed by OutgoingSessionPromise

  • OF-72: Openfire can’t detect broken clients’ connections

  • OF-70: Unresponsive clients cause Openfire to run out of memory

  • OF-46: Upgrading Openfire to use Jetty 7 Continuations

  • OF-41: Fix exception on MUC-room-affiliations

3.) The following issues maybe related but will not be fixed anytime soon:

  • OF-122: Massive errors in rooms permissions and options

  • OF-91: Client session will be terminate when receiving invalid surrogate characters

  • OF-238: Improve performance when loading huge number of rooms history

  • OF-356: Newlines in the stream tag are not handled properly

  • OF-115: fix “the s2s out of order issue” (MUC messages in wrong)

  • OF274: improve DNS cache

  • OF-306: review and fix outgoing connection

  • OF-134: Update Jetty to latest version

  • OF-114: Clearing cache can lock up MUC

  • OF-110: Huge list of offline messages may consume all server memory

    How can we support?

Q2 has been answered by Daryl in an another thread. Thanks.

Q3: Would you accept patches? Is it possible to donate and sponsor Openfire development?

A bit late with the answer, but yes, we accept the patches and greatly appreciate them Donating is not an option as we are all volunteers here doing what we can do in our spare time and servers are sponsored by Jive already.

Oh, and about 3.7.0 ETA. I’m afraid there is none currently. Everyone is too busy with their main jobs and personal stuff.