Openfire Connectivity Issue

All,

When attempting to connect from one particular location I’m seeing the following errors on the server debug log:

2007.10.05 09:35:19

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.j ava:208)

at org.apache.mina.transport.socket.nio.SocketIoProcessor.process(SocketIoProcesso r.java:188)

at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$500(SocketIoProce ssor.java:44)

at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProce ssor.java:471)

at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:39)

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)

On the client, here’s what i’m seeing on the debug log:

SENT: <stream:stream to=“murdockslife.homedns.org” xmlns=“jabber:client” xmlns:stream=“http://etherx.jabber.org/streams” xml:lang=“en” version=“1.0” >

RECV:

Setting reconnect timer to: 17

Using specified Host/Port:

SENT: <stream:stream to=“murdockslife.homedns.org” xmlns=“jabber:client” xmlns:stream=“http://etherx.jabber.org/streams” xml:lang=“en” version=“1.0” >

RECV:

Attempted to reconnect too many times.

I’m able to telnet to the specified client port and SSL port on the server from the location where i’m having this problem with no issue, latency is around 80ms from source to target. I’m out of ideas. I started seeing odd connectivity issues when I went from a legacy wildfire version to openfire, and with this last upgrade to 3.3.3 i’m not able to connect at all.

I’m only having this issue at one location which would suggest a firewall issue, but i’m able to connect to the ports openfire is using via telnet. What am i missing?

Does anyone have any thoughts on something i could try from the server side (it’s a windows machine)?

Hey Murdock,

The java.io.IOException: An existing connection was forcibly closed by the remote host error means that the connection was abruptly closed by either the client or something between the client or the server. Have you tried with other clients? Have you tried disabling the firewall for a few minutes? Hard to know from here what’s going on.

Regards,

– Gato

I’ve tried fully dropping the firewall on the server side on both the intel box itself and the router firewall to see if it helps, I still had the same issue. Unfortunately I don’t have access to the firewall of the location I’m having the issue. I’ve attempted the following from a client perspective: i’ve utilized Exodus v.9 (the first client log above). I’ve just tried via Spark 2.54 and the log for it is below. This really does look like a firewall or a packet dropping issue, but if that’s the case why am I able to connect after 15 to 60 attempts (inconsistent)?

Oh, i’m also able to telnet to the ports i’m connecting on for SSL and standard client from this location with no issue.

java.net.SocketException: Software caused connection abort: recv failed

at java.net.SocketInputStream.socketRead0(Native Method)

at java.net.SocketInputStream.read(Unknown Source)

at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)

at sun.nio.cs.StreamDecoder.implRead(Unknown Source)

at sun.nio.cs.StreamDecoder.read(Unknown Source)

at java.io.InputStreamReader.read(Unknown Source)

at java.io.BufferedReader.read1(Unknown Source)

at java.io.BufferedReader.read(Unknown Source)

at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:2971)

at org.xmlpull.mxp1.MXParser.more(MXParser.java:3025)

at org.xmlpull.mxp1.MXParser.parseProlog(MXParser.java:1410)

at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1395)

at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)

at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:368)

at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44)

at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:76)

Connection failed. No response from server.:

at org.jivesoftware.smack.PacketReader.startup(PacketReader.java:164)

at org.jivesoftware.smack.XMPPConnection.initConnection(XMPPConnection.java:875)

at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection. java:834)

at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:1276)

at org.jivesoftware.LoginDialog$LoginPanel.login(LoginDialog.java:822)

at org.jivesoftware.LoginDialog$LoginPanel.access$400(LoginDialog.java:196)

at org.jivesoftware.LoginDialog$LoginPanel$1.construct(LoginDialog.java:594)

at org.jivesoftware.spark.util.SwingWorker$2.run(SwingWorker.java:129)

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

Now i’m getting partial connections and not full connections, ends up dropping after the first recv:

Using specified Host/Port:

SENT: <stream:stream to=“murdockslife.homedns.org” xmlns=“jabber:client” xmlns:stream="[http://etherx.jabber.org/streams]" xml:lang=“en” version=“1.0” >

RECV: <?xml version=‘1.0’ encoding=‘UTF-8’?><stream:stream xmlns:stream="[http://etherx.jabber.org/streams]" xmlns=“jabber:client” from=“murdockslife.homedns.org” id=“3970e1b6” xml:lang=“en” version=“1.0”>

RECV: <stream:features><starttls xmlns=“urn:ietf:params:xml:ns:xmpp-tls”><required/></starttls>&l t;mechanisms xmlns=“urn:ietf:params:xml:ns:xmpp-sasl”><mechanism>DIGEST-MD5</mec hanism><mechanism>PLAIN</mechanism><mechanism>ANONYMOUS< /mechanism><mechanism>CRAM-MD5</mechanism></mechanisms>< /stream:features>

SENT: <starttls xmlns=“urn:ietf:params:xml:ns:xmpp-tls”/>

RECV:

Setting reconnect timer to: 5