Spark 2.6.3 Severe Error with Openfire 3.8.2 and Openfire 3.9.1. (3.7.1 works fine)

Hi there,

I installed a fresh copy of openfire 3.8.2 and 3.9.1 and tried to use Spark 2.6.3 to connect to it. At the first connection attempt, the client showed the following error in the logs and you are able to login. On the second connection attempt, the error doesn’t come up and your are “logged” on the server. The first login attempt would take around 10 second while the second attempt will take 1 sec. I was able to reproduse this by restarting the server. The first connection attemp will always take a long time with the error while the second attempt will take little time and with no error.

I also tried Pidgin 2.10.9 and was able to replicate the wait time but not the error. Which is understandable since the error is coming from smackx.

The server logs shows nothing in debug/error/warn files.

My Setup:

  • Windows Server 2008 R2 Enterprise
  • MSSQL 2008
  • Java 7 update 51

Clean install of 3.7.1 works with no errors and instance connection…

I also tried a different a database, postgre and same error and long wait time.

Tried it with 3.9.1 and the same problem.

I can recreate the database for every installs to make sure nothing is carried over.

Any ideas???

...
Feb 12, 2014 1:12:25 PM org.jivesoftware.spark.util.log.Log debug
INFO: SystemTray has been loaded. Internal plugin.
Feb 12, 2014 1:12:25 PM org.jivesoftware.spark.util.log.Log debug
INFO: UserIdle has been loaded. Internal plugin.
Feb 12, 2014 1:12:25 PM org.jivesoftware.spark.util.log.Log debug
INFO: Privacy Lists has been loaded. Internal plugin.
Feb 12, 2014 1:12:25 PM org.jivesoftware.spark.util.log.Log debug
INFO: FRAME_IMAGE not found.
Feb 12, 2014 1:12:43 PM org.jivesoftware.spark.util.log.Log error
SEVERE:
No response from the server.:
        at org.jivesoftware.smackx.ServiceDiscoveryManager.discoverItems(Service
DiscoveryManager.java:492)
        at org.jivesoftware.smackx.ServiceDiscoveryManager.discoverItems(Service
DiscoveryManager.java:461)
        at org.jivesoftware.spark.SessionManager.discoverItems(SessionManager.ja
va:94)
        at org.jivesoftware.spark.SessionManager.initializeSession(SessionManage
r.java:82)
        at org.jivesoftware.LoginDialog$LoginPanel.login(LoginDialog.java:842)
        at org.jivesoftware.LoginDialog$LoginPanel.access$1200(LoginDialog.java:
219)
        at org.jivesoftware.LoginDialog$LoginPanel$3.construct(LoginDialog.java:
667)
        at org.jivesoftware.spark.util.SwingWorker$2.run(SwingWorker.java:141)
        at java.lang.Thread.run(Thread.java:722) Feb 12, 2014 1:12:43 PM org.jivesoftware.spark.util.log.Log debug
INFO: FRAME_IMAGE not found.
Feb 12, 2014 1:12:43 PM org.jivesoftware.spark.util.log.Log debug
INFO: FRAME_IMAGE not found.
Feb 12, 2014 1:12:54 PM org.jivesoftware.spark.util.log.Log debug
INFO: Trying to initialize org.jivesoftware.sparkimpl.plugin.jabber.JabberBrowse
r@19c8497
Feb 12, 2014 1:12:54 PM org.jivesoftware.spark.util.log.Log debug
INFO: Took 0 ms. to load org.jivesoftware.sparkimpl.plugin.jabber.JabberBrowser@
19c8497
Feb 12, 2014 1:12:54 PM org.jivesoftware.spark.util.log.Log debug
...

error says “no response from server”, are you sure you have ports opened and what-not for your new installations? and/or that your computer’s firewall is not blocking the outbound connection?

Hi Jason,

Yes I think they are open. This is the same server that had Openfire 3.7.1 installed and working (no errors).

With Openfire 3.8.2—

The Server page is showing the following ports used by the server.

All addresses
5222
This port uses SSL to encrypt traffic over the network
Client to Server
The standard port for clients to connect to the server. Connections may or may not be encrypted. You can update the security settings for this port.
All addresses
-1

Admin Console
The port used for unsecured Admin Console access.
All addresses
9091
This port uses SSL to encrypt traffic over the network
Admin Console
The port used for secured Admin Console access.
All addresses
7777

File Transfer Proxy
The port used for the proxy service that allows file transfers to occur between two entities on the XMPP network.
All addresses
5229

Flash Cross Domain
Service that allows Flash clients connect to other hostnames and ports.

I can connect to the admin control page over the port 9091. So the only port left is 5222 which I am also connected to. I was able to telnet into 5222 with no problem on my desktop.

On the server I checked the port using netstat -o and got the following:

Active Connections

Proto Local Address Foreign Address State PID

TCP 10.36.149.121:1433 b095695:1973 ESTABLISHED 1348

TCP 10.36.149.121:3389 b095695:1903 ESTABLISHED 2504

** TCP 10.36.149.121:5222 b095695:4847 ESTABLISHED 3536**

** TCP 10.36.149.121:9091 b095695:4972 ESTABLISHED 3536**

TCP 10.36.149.121:9091 b095695:4973 CLOSE_WAIT 3536

TCP 10.36.149.121:9091 b095695:4974 CLOSE_WAIT 3536

TCP 10.36.149.121:9091 b095695:4977 CLOSE_WAIT 3536

TCP 10.36.149.121:9091 b095695:4978 ESTABLISHED 3536

TCP 10.36.149.121:9091 b095695:4979 ESTABLISHED 3536

TCP 10.36.149.121:9091 b095695:4980 ESTABLISHED 3536

TCP 10.36.149.121:9091 b095695:4981 CLOSE_WAIT 3536

TCP 10.36.149.121:9091 b095695:4982 CLOSE_WAIT 3536

TCP 10.36.149.121:9091 b095695:4984 CLOSE_WAIT 3536

TCP 10.36.149.121:9091 b095695:4985 CLOSE_WAIT 3536

I am connected to the server but whats with the error? I haven’t thoroughly tested everything but the error is a problem. I installed the monitor plugin just to see if it detects a user. With the monitor plugin running, the first connection attempt will show that one user is connected. The second connection attempt will connect to the server but the monitor plugin shows 0 users connected. The Spark client shows that it’s connected with both cases.

It seems like I might have found a part of the solution.

It’s hard to reproduse this problem because the timeout setting in the Spark client is stored on a user’s computer and not on the server.

Set the timeout to 30sec

Spark> Preferences> Login> Response timeout sec> 30

This will allow spark and openfire to finish “talking”. Or else it will be interrupted and the error occurs. The wait time is still there but at least it will load your contact list and everything else with no error. Still not sure why it takes so long.

This solution hide the problem. It seems like the time for a client to exchange handshakes with the server is longer in Openfire 3.8.2 and Openfire 3.9.1. Can the developers check it out? Just set the Response Timeout back to default (10sec) to reproduse the error on your machines.