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