Openfire continually crashes

I recently upgrade to the latest version of open fire 3.6.4. Since this upgrade my openfire server has had increased problems. Almost once a week the openfire server will be running but IMs will not be delivered and users logging in will get authentication errors despite the correct credentials. When I restart the service the issue is resolved. When the issue occurs the openfire process is running but the cpu and memory utilization is normal. This is the error I see in the error.log:

[org.jivesoftware.openfire.ldap.LdapGroupProvider.processGroup(LdapGroupProvider .java:365)]

javax.naming.CommunicationException: connection closed [Root exception is java.io.IOException: connection closed]; remaining name ‘’

at com.sun.jndi.ldap.LdapCtx.doSearch(LdapCtx.java:1961)

at com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1806)

at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1731)

at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java: 368)

at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirC ontext.java:338)

at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirC ontext.java:321)

at javax.naming.directory.InitialDirContext.search(InitialDirContext.java:248)

at org.jivesoftware.openfire.ldap.LdapGroupProvider.processGroup(LdapGroupProvider .java:351)

at org.jivesoftware.openfire.ldap.LdapGroupProvider.getGroup(LdapGroupProvider.jav a:95)

at org.jivesoftware.openfire.group.GroupManager.getGroup(GroupManager.java:278)

at org.jivesoftware.openfire.group.GroupManager.getGroup(GroupManager.java:257)

at org.jivesoftware.openfire.group.GroupCollection$UserIterator.getNextElement(Gro upCollection.java:103)

at org.jivesoftware.openfire.group.GroupCollection$UserIterator.hasNext(GroupColle ction.java:66)

at org.jivesoftware.openfire.roster.RosterManager.hasMutualVisibility(RosterManage r.java:879)

at org.jivesoftware.openfire.roster.Roster.(Roster.java:146)

at org.jivesoftware.openfire.roster.RosterManager.getRoster(RosterManager.java:86)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.broadcastUpdate(Presenc eUpdateHandler.java:282)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:124)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:112)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:176)

at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:134)

at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:70)

at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:76)

at org.jivesoftware.openfire.net.StanzaHandler.processPresence(StanzaHandler.java: 337)

at org.jivesoftware.openfire.net.ClientStanzaHandler.processPresence(ClientStanzaH andler.java:85)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:254)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:176)

at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:133)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:570)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:299)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:53)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:648)

at org.apache.mina.common.IoFilterAdapter.messageReceived(IoFilterAdapter.java:80)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:299)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:53)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:648)

at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:58)

at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:185)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:299)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:53)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:648)

at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :239)

at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:283)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java: 650)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)

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

at java.lang.Thread.run(Thread.java:595)

Caused by: java.io.IOException: connection closed

at com.sun.jndi.ldap.LdapClient.ensureOpen(LdapClient.java:1558)

at com.sun.jndi.ldap.LdapClient.search(LdapClient.java:504)

at com.sun.jndi.ldap.LdapCtx.doSearch(LdapCtx.java:1944)

… 46 more

Please let me know if anyone has any ideas or if you need more information.

Regards,

Brendan Henry