Openfire 3.5.0 - s2s issues

Since we are using Openfire 3.5.0, we experiencing some server-to-server issues, which are not limited to Google.

The server can not establish a connection to several small servers. We can not exactly reproduce the problem, but it has something to do with the following:

  • If the remote server first opens a connection and sends some data (presence, message, …), the connection can be established.

  • If the local server first opens the remote connection, packets don’t reach their target. As soon as the remote server sends something, everything works normal.

Its possible this is a problem for all s2s connections, but because larger servers always send some data, the problem does not appear.

debug.log of an subscribe request from us****@test-jabber.dyndns.org to th****@koios.de:

2008.04.19 15:52:53 LocalOutgoingServerSession: OS - Trying to connect to koios.de:5269(DNS lookup: koios.de:5269)
2008.04.19 15:52:53 LocalOutgoingServerSession: OS - Plain connection to koios.de:5269 successful
2008.04.19 15:52:53 LocalOutgoingServerSession: OS - Going to try connecting using server dialback with: koios.de
2008.04.19 15:52:53 ServerDialback: OS - Trying to connect to koios.de:5269(DNS lookup: koios.de:5269)
2008.04.19 15:52:53 ServerDialback: OS - Connection to koios.de:5269 successful
2008.04.19 15:52:53 ServerDialback: OS - Sent dialback key to host: koios.de id: 0511e888fc45ba1029617bd6dc98daaea02d6780 from domain: test-jabber.dyndns.org
2008.04.19 15:52:53 Connect Socket[http://addr=/85.10.211.145,port=48112,localport=5269|http://addr=/85.10.211.145,port=48112,localport=5269]
2008.04.19 15:52:53 ServerDialback: RS - Received dialback key from host: koios.de to: test-jabber.dyndns.org
2008.04.19 15:53:13 ServerDialback: OS - Time out waiting for answer in validation from: koios.de id: 0511e888fc45ba1029617bd6dc98daaea02d6780 for domain: test-jabber.dyndns.org
2008.04.19 15:53:13 OutgoingServerSocketReader: Finishing Outgoing Server Reader. No session to close.
java.net.SocketException: Socket closed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at org.jivesoftware.openfire.net.ServerTrafficCounter$InputStreamWrapper.read(ServerTrafficCounter.java:209)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:2992)
at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046)
at org.jivesoftware.openfire.net.MXParser.nextImpl(MXParser.java:75)
at org.xmlpull.mxp1.MXParser.nextToken(MXParser.java:1100)
at org.dom4j.io.XMPPPacketReader.parseDocument(XMPPPacketReader.java:317)
at org.jivesoftware.openfire.server.OutgoingServerSocketReader$1.run(OutgoingServerSocketReader.java:92)
2008.04.19 15:53:13 LocalOutgoingServerSession: OS - Trying to connect to de:5269(DNS lookup: de:5269)
2008.04.19 15:53:13 OutgoingSessionPromise: Error sending packet to remote server:
<presence to="th****@koios.de" type="subscribe" from="us****@test-jabber.dyndns.org"/>
java.lang.Exception: Failed to create connection to remote server
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPacket(OutgoingSessionPromise.java:226)
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(OutgoingSessionPromise.java:193)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
2008.04.19 15:53:13 ServerDialback: RS - Trying to connect to Authoritative Server: koios.de:5269(DNS lookup: koios.de:5269)
2008.04.19 15:53:13 ServerDialback: RS - Connection to AS: koios.de:5269 successful
2008.04.19 15:53:13 ServerDialback: RS - Asking AS to verify dialback key for id813b7629
2008.04.19 15:53:13 ServerDialback: RS - Key was VERIFIED by the Authoritative Server for: koios.de
2008.04.19 15:53:13 ServerDialback: RS - Closing connection to Authoritative Server: koios.de
2008.04.19 15:53:13 ServerDialback: RS - Sending key verification result to OS: koios.de
2008.04.19 15:53:13 ServerDialback: AS - Verifying key for host: koios.de id: 0511e888fc45ba1029617bd6dc98daaea02d6780
2008.04.19 15:53:13 ServerDialback: AS - Key was: VALID for host: koios.de id: 0511e888fc45ba1029617bd6dc98daaea02d6780
2008.04.19 15:55:43 Logging off koios.de on org.jivesoftware.openfire.net.SocketConnection@a85bc2 socket: Socket[http://addr=/85.10.211.145,port=48112,localport=5269|http://addr=/85.10.211.145,port=48112,localport=5269] session: org.jivesoftware.openfire.session.LocalIncomingServerSession@a75518 status: -1 address: koios.de id: 813b7629

I confirm.

I have exactly the same problem.

The problem don’t exist on OpenFire 3.5.0 RC1

Same here. It’s a really stupid bug - The half contact list of mein roaster is offline “Remote server not found”.

The other servers a ejabberd, jabberd, google etc. - so I think it is a openfire problem.

Does anybody know if JM-1289 was already fixed in RC1 ?

( “Fixed DoS attack that could bring the server down.” )

Thats the reason why I didn’t a downgrade to 3.4.5.

There’s like 8 million threads about this at this point, but as I posted in some others, the s2s problems have been located and resolved. The fix will be in 3.5.1, which is targeted for release on Thursday.