Openfire Server Freezing Requiring Reboot

Hi,

Can someone please help us with the following issue?

Our Openfire server is repeatedly freezing after some time of normal operation. When this happens, the service becomes unresponsive and stops handling connections. The only way to restore normal operation is to reboot the server.

This behavior has been occurring frequently and is impacting service availability. We would appreciate your assistance in identifying the cause of the freezes and recommending a permanent solution.

Exception:

java.lang.IllegalStateException: Failed at attempt to obtain an ID, aborting…
  at org.jivesoftware.database.SequenceManager.getNextBlock(SequenceManager.java:239)
  at org.jivesoftware.database.SequenceManager.nextUniqueID(SequenceManager.java:171)
  at org.jivesoftware.database.SequenceManager.nextID(SequenceManager.java:95)
  at org.jivesoftware.openfire.security.DefaultSecurityAuditProvider.logEvent(DefaultSecurityAuditProvider.java:68)
  at org.jivesoftware.openfire.security.SecurityAuditManager.logEvent(SecurityAuditManager.java:110)
  at org.jivesoftware.admin.LoginLimitManager.recordFailedAttempt(LoginLimitManager.java:166)
  at org.jivesoftware.openfire.admin.login_jsp._jspService(login_jsp.java:292)
  at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:64)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
  at org.eclipse.jetty.ee8.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1160)
  at org.eclipse.jetty.ee8.servlet.ServletHolder.handle(ServletHolder.java:649)
  at org.eclipse.jetty.ee8.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1374)
  at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:72)
  at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
  at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
  at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:73)
  at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
  at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
  at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:38)
  at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
  at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
  at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:170)
  at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
  at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
  at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:290)
  at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:177)
  at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
  at org.jivesoftware.admin.ContentSecurityPolicyFilter.doFilter(ContentSecurityPolicyFilter.java:53)
  at org.eclipse.jetty.ee8.servlet.FilterHolder.doFilter(FilterHolder.java:171)
  at org.eclipse.jetty.ee8.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1348)
  at org.eclipse.jetty.ee8.servlet.ServletHandler.doHandle(ServletHandler.java:454)
  at org.eclipse.jetty.ee8.nested.ScopedHandler.handle(ScopedHandler.java:119)
  at org.eclipse.jetty.ee8.security.SecurityHandler.handle(SecurityHandler.java:497)
  at org.eclipse.jetty.ee8.nested.HandlerWrapper.handle(HandlerWrapper.java:108)
  at org.eclipse.jetty.ee8.nested.ScopedHandler.nextHandle(ScopedHandler.java:183)
  at org.eclipse.jetty.ee8.nested.SessionHandler.doHandle(SessionHandler.java:519)
  at org.eclipse.jetty.ee8.nested.ScopedHandler.nextHandle(ScopedHandler.java:181)
  at org.eclipse.jetty.ee8.nested.ContextHandler.doHandle(ContextHandler.java:885)
  at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:152)
  at org.eclipse.jetty.ee8.servlet.ServletHandler.doScope(ServletHandler.java:423)
  at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)
  at org.eclipse.jetty.ee8.nested.SessionHandler.doScope(SessionHandler.java:503)
  at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)
  at org.eclipse.jetty.ee8.nested.ContextHandler.doScope(ContextHandler.java:830)
  at org.eclipse.jetty.ee8.nested.ScopedHandler.handle(ScopedHandler.java:117)
  at org.eclipse.jetty.ee8.nested.ContextHandler.handle(ContextHandler.java:1443)
  at org.eclipse.jetty.ee8.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1290)
  at org.eclipse.jetty.ee8.nested.HttpChannel.dispatch(HttpChannel.java:617)
  at org.eclipse.jetty.ee8.nested.HttpChannel.handle(HttpChannel.java:460)
  at org.eclipse.jetty.ee8.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:2512)
  at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1071)
  at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:151)
  at org.eclipse.jetty.server.Handler$Sequence.handle(Handler.java:805)
  at org.eclipse.jetty.server.Server.handle(Server.java:182)
  at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:677)
  at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:416)
  at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)
  at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)
  at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
  at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:480)
  at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:443)
  at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293)
  at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:201)
  at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:311)
  at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:981)
  at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1211)
  at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1166)
  at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.sql.SQLException: ConnectionManager.getConnection() failed to obtain a connection after 11 attempts. The exception from the last attempt is as follows: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
  at org.jivesoftware.database.DbConnectionManager.getConnection(DbConnectionManager.java:204)
  at org.jivesoftware.database.SequenceManager.getNextBlock(SequenceManager.java:201)
... 67 more

Hi! Sorry that you’re running into this! The cause of this error is that Openfire can not (no longer?) create a connection to the database that it is configured to use. From the logs, it is not clear why this happens. If I had to guess, I would think this is caused by a networking issue. I hope this helps!