Uploaded image for project: 'FishEye'
  1. FishEye
  2. FE-332

Out of Memory errors when jira plugin accesses the remote api

    XMLWordPrintable

Details

    • Bug
    • Resolution: Timed out
    • Medium
    • None
    • 1.4.3
    • Integrations
    • None

    Description

      Situation
      ------------
      Currently the fisheye server process may use 1,5G of memory, which is enough during all normal operations.
      However, there are out of memory exceptions when the fisheye plugin in Jira is used to show bigger check-ins,
      e.g. many change-sets over a longer period of time.

      The fisheye server is still accessing and indexing all repositories, but the thread for searching and displaying things
      stops to work.
      This may be a configuration issue with the application server or something more complicated, but it is surely annoying,
      because normal users can effectively crash the fisheye server by a simple click on a jira issue.

      1. Exception
      -------------------------------------------------------------------------------------------------------------------------------------------------
      2008-03-31 10:21:47,692 ERROR [btpool0-288] org.mortbay.log sun.reflect.NativeMethodAccessorImpl-invoke0 - Error for /api/rest/revision
      java.lang.OutOfMemoryError: unable to create new native thread
      at java.lang.Thread.start0(Native Method)
      at java.lang.Thread.start(Thread.java:597)
      at com.sun.jndi.ldap.Connection.<init>(Connection.java:215)
      at com.sun.jndi.ldap.LdapClient.<init>(LdapClient.java:118)
      at com.sun.jndi.ldap.LdapClient.getInstance(LdapClient.java:1580)
      at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2616)
      at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:287)
      at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:175)
      at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:193)
      at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:136)
      at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:66)
      at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
      at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
      at javax.naming.InitialContext.init(InitialContext.java:223)
      at javax.naming.InitialContext.<init>(InitialContext.java:197)
      at javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:82)
      at com.cenqua.fisheye.user.ldap.LDAPAuth.makeContext(LDAPAuth.java:256)
      at com.cenqua.fisheye.user.ldap.LDAPAuth.recreateAuth(LDAPAuth.java:185)
      at com.cenqua.fisheye.user.UserManager.login(UserManager.java:358)
      at com.cenqua.fisheye.api.BaseApiHandler$HttpContext.checkAuth(BaseApiHandler.java:83)
      at com.cenqua.fisheye.api.ApiImplementation.getAuthTokenParam(ApiImplementation.java:136)
      at com.cenqua.fisheye.api.ApiImplementation.parseRevisionRequest(ApiImplementation.java:576)
      at com.cenqua.fisheye.api.ApiImplementation.doGetRevision(ApiImplementation.java:560)
      at com.cenqua.fisheye.api.ApiImplementation.handleCommand(ApiImplementation.java:185)
      at com.cenqua.fisheye.api.ApiImplementation.handle(ApiImplementation.java:177)
      at com.cenqua.fisheye.api.BaseApiServlet.doPost(BaseApiServlet.java:25)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1149)
      at com.cenqua.fisheye.web.filters.TotalityFilter.doFilter(TotalityFilter.java:123)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1141)
      at com.atlassian.fisheye.trustedapplications.FisheyeTrustedApplicationsFilter.doFilter(FisheyeTrustedApplicationsFilter.java:99)
      at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:183)
      at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1141)
      at com.cenqua.fisheye.web.util.GZIPFilter.doFilter(GZIPFilter.java:29)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1141)
      at com.cenqua.fisheye.web.filters.UpfrontFilter.doFilter(UpfrontFilter.java:33)
      at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1141)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
      at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
      at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
      at org.mortbay.jetty.Server.handle(Server.java:285)
      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
      at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:835)
      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:641)
      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:208)
      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
      at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:368)
      at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)

      2. Exception
      ----------------------------------------------------------------------------------------------------------------------------
      2008-03-31 10:21:47,780 ERROR [btpool0-288] org.mortbay.log sun.reflect.NativeMethodAccessorImpl-invoke0 - EXCEPTION
      javax.el.ELException: Problems calling function 'cru:repositories'
      at com.sun.el.parser.AstFunction.getValue(AstFunction.java:119)
      at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:195)
      at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:1008)
      at org.apache.jsp._500_jsp._jspx_meth_c_set_0(_500_jsp.java:624)
      at org.apache.jsp._500_jsp._jspx_meth_c_otherwise_0(_500_jsp.java:248)
      at org.apache.jsp._500_jsp._jspx_meth_c_choose_0(_500_jsp.java:136)
      at org.apache.jsp._500_jsp._jspService(_500_jsp.java:105)
      at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:80)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:367)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
      at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268)
      at org.mortbay.jetty.servlet.Dispatcher.error(Dispatcher.java:135)
      at org.mortbay.jetty.servlet.ErrorPageErrorHandler.handle(ErrorPageErrorHandler.java:101)
      at org.mortbay.jetty.Response.sendError(Response.java:265)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:451)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
      at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
      at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
      at org.mortbay.jetty.Server.handle(Server.java:285)
      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
      at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:835)
      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:641)
      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:208)
      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
      at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:368)
      at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
      Caused by: java.lang.OutOfMemoryError: unable to create new native thread
      at java.lang.Thread.start0(Native Method)
      at java.lang.Thread.start(Thread.java:597)
      at com.sun.jndi.ldap.Connection.<init>(Connection.java:215)
      at com.sun.jndi.ldap.LdapClient.<init>(LdapClient.java:118)
      at com.sun.jndi.ldap.LdapClient.getInstance(LdapClient.java:1580)
      at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2616)
      at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:287)
      at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:175)
      at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:193)
      at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:136)
      at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:66)
      at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
      at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
      at javax.naming.InitialContext.init(InitialContext.java:223)
      at javax.naming.InitialContext.<init>(InitialContext.java:197)
      at javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:82)
      at com.cenqua.fisheye.user.ldap.LDAPAuth.makeContext(LDAPAuth.java:256)
      at com.cenqua.fisheye.user.ldap.LDAPAuth.hasPermissionToAccess(LDAPAuth.java:357)
      at com.cenqua.fisheye.user.UserManager.hasPermissionToAccessImpl(UserManager.java:920)
      at com.cenqua.fisheye.user.UserManager.hasPermissionToAccess(UserManager.java:893)
      at com.cenqua.fisheye.web.util.RepositoryUtil.repositories(RepositoryUtil.java:35)
      at com.cenqua.fisheye.web.tags.ExpressionUtil.repositories(ExpressionUtil.java:255)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at com.sun.el.parser.AstFunction.getValue(AstFunction.java:114)
      ... 34 more

      3. Exception
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------
      Basically the same as the first, but the problem is also caused by different queries:

      2008-03-31 10:23:15,507 ERROR [btpool0-290] org.mortbay.log sun.reflect.NativeMethodAccessorImpl-invoke0 - Error for /api/rest/query
      java.lang.OutOfMemoryError: unable to create new native thread

      Then you have the familiar

      2008-03-31 10:23:15,527 ERROR [btpool0-290] org.mortbay.log sun.reflect.NativeMethodAccessorImpl-invoke0 - EXCEPTION
      javax.el.ELException: Problems calling function 'cru:repositories'

      2008-03-31 10:23:15,535 ERROR [btpool0-288] org.mortbay.log sun.reflect.NativeMethodAccessorImpl-invoke0 - Error for /api/rest/login
      java.lang.OutOfMemoryError: unable to create new native thread

      2008-03-31 10:23:15,544 ERROR [btpool0-288] org.mortbay.log sun.reflect.NativeMethodAccessorImpl-invoke0 - EXCEPTION
      javax.el.ELException: Problems calling function 'cru:repositories'

      2008-03-31 10:23:15,594 ERROR [btpool0-290] org.mortbay.log sun.reflect.NativeMethodAccessorImpl-invoke0 - Error for /api/rest/query
      java.lang.OutOfMemoryError: unable to create new native thread

      2008-03-31 10:23:15,602 ERROR [btpool0-290] org.mortbay.log sun.reflect.NativeMethodAccessorImpl-invoke0 - EXCEPTION
      javax.el.ELException: Problems calling function 'cru:repositories'

      Attachments

        Activity

          People

            Unassigned Unassigned
            b4122247f5ce Alexander Much
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: