Details
-
Bug
-
Resolution: Timed out
-
Medium
-
None
-
1.4.3
-
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'