System > Memory Utilization
Under the current memory stats are various charts with the heading "Memory usage history". The requests to populate these charts are returning 500 errors. These charts did work, this behaviour is new.
Recent changes to our setup:
1. Update to OpenJDK Runtime Environment 1.8.0_144-b01 OpenJDK 64-Bit Server
2. Update to Apache Tomcat/8.5.20
Probe version 3.0.0.RC2
DEBUG log output:
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.security.web.FilterChainProxy] /chart.png?p=memory_usage&xz=750&yz=350&sp=Total at position 1 of 5 in additional filter chain; firing Filter: 'SecurityContextPersistenceFilter'
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.s.w.c.HttpSessionSecurityContextRepository] Obtained a valid SecurityContext from SPRING_SECURITY_CONTEXT: 'org.springframework.security.core.context.SecurityContextImpl@4a53cd41: Authent$
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.security.web.FilterChainProxy] /chart.png?p=memory_usage&xz=750&yz=350&sp=Total at position 2 of 5 in additional filter chain; firing Filter: 'J2eePreAuthenticatedProcessingFilter'
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.s.w.a.p.j.J2eePreAuthenticatedProcessingFilter] Checking secure context token: org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken@4a53cd41: Princi$
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.security.web.FilterChainProxy] /chart.png?p=memory_usage&xz=750&yz=350&sp=Total at position 3 of 5 in additional filter chain; firing Filter: 'LogoutFilter'
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.s.w.u.matcher.AntPathRequestMatcher] Checking match of request : '/chart.png'; against '/logout'
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.security.web.FilterChainProxy] /chart.png?p=memory_usage&xz=750&yz=350&sp=Total at position 4 of 5 in additional filter chain; firing Filter: 'ExceptionTranslationFilter'
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.security.web.FilterChainProxy] /chart.png?p=memory_usage&xz=750&yz=350&sp=Total at position 5 of 5 in additional filter chain; firing Filter: 'FilterSecurityInterceptor'
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.s.w.u.matcher.AntPathRequestMatcher] Checking match of request : '/chart.png'; against '/adm/**'
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.s.w.u.matcher.AntPathRequestMatcher] Checking match of request : '/chart.png'; against '/adm/restartvm.ajax'
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.s.w.u.matcher.AntPathRequestMatcher] Checking match of request : '/chart.png'; against '/sql/**'
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.s.w.u.matcher.AntPathRequestMatcher] Checking match of request : '/chart.png'; against '/app/**'
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.s.w.u.matcher.AntPathRequestMatcher] Request '/chart.png' matched by universal pattern '/**'
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.s.w.a.i.FilterSecurityInterceptor] Secure object: FilterInvocation: URL: /chart.png?p=memory_usage&xz=750&yz=350&sp=Total; Attributes: [ROLE_PROBEUSER, ROLE_POWERUSER, ROLE_POWERUSERPLUS,$
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.s.w.a.i.FilterSecurityInterceptor] Previously Authenticated: org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken@4a53cd41: Principal: org.springfra$
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.s.access.vote.AffirmativeBased] Voter: org.springframework.security.access.vote.RoleVoter@554334fa, returned: 1
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.s.w.a.i.FilterSecurityInterceptor] Authorization successful
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.s.w.a.i.FilterSecurityInterceptor] RunAsManager did not change Authentication object
23:36:24.835 DEBUG {http-nio-8080-exec-132} [o.s.security.web.FilterChainProxy] /chart.png?p=memory_usage&xz=750&yz=350&sp=Total reached end of additional filter chain; proceeding with original chain
23:36:24.836 DEBUG {http-nio-8080-exec-132} [psiprobe.ProbeServlet] DispatcherServlet with name 'probe' processing GET request for [/probe/chart.png]
23:36:24.836 DEBUG {http-nio-8080-exec-132} [o.s.w.s.m.m.a.RequestMappingHandlerMapping] Looking up handler method for path /chart.png
23:36:24.836 DEBUG {http-nio-8080-exec-132} [o.s.w.s.m.m.a.RequestMappingHandlerMapping] Returning handler method [public org.springframework.web.servlet.ModelAndView psiprobe.controllers.RenderChartController.handleRequest(javax.servle$
23:36:24.836 DEBUG {http-nio-8080-exec-132} [psiprobe.ProbeServlet] Last-Modified value for [/probe/chart.png] is: -1
23:36:24.837 DEBUG {http-nio-8080-exec-132} [o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver] Resolving exception from handler [public org.springframework.web.servlet.ModelAndView psiprobe.controllers.RenderChartController.handleRequest$
23:36:24.837 DEBUG {http-nio-8080-exec-132} [o.s.w.s.m.a.ResponseStatusExceptionResolver] Resolving exception from handler [public org.springframework.web.servlet.ModelAndView psiprobe.controllers.RenderChartController.handleRequest(jav$
23:36:24.837 DEBUG {http-nio-8080-exec-132} [o.s.w.s.m.s.DefaultHandlerExceptionResolver] Resolving exception from handler [public org.springframework.web.servlet.ModelAndView psiprobe.controllers.RenderChartController.handleRequest(jav$
23:36:24.837 DEBUG {http-nio-8080-exec-132} [psiprobe.ProbeServlet] Could not complete request
java.lang.ArrayIndexOutOfBoundsException: 0
at sun.font.CompositeStrike.getStrikeForSlot(CompositeStrike.java:75)
at sun.font.CompositeStrike.getFontMetrics(CompositeStrike.java:93)
at sun.font.FontDesignMetrics.initMatrixAndMetrics(FontDesignMetrics.java:359)
at sun.font.FontDesignMetrics.<init>(FontDesignMetrics.java:350)
at sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:302)
at sun.java2d.SunGraphics2D.getFontMetrics(SunGraphics2D.java:863)
at org.jfree.text.TextFragment.calculateDimensions(TextFragment.java:230)
at org.jfree.text.TextLine.calculateDimensions(TextLine.java:194)
at org.jfree.text.TextBlock.calculateDimensions(TextBlock.java:171)
at org.jfree.chart.block.LabelBlock.arrange(LabelBlock.java:313)
at org.jfree.chart.block.BorderArrangement.arrangeNN(BorderArrangement.java:215)
at org.jfree.chart.block.BorderArrangement.arrange(BorderArrangement.java:141)
at org.jfree.chart.block.BlockContainer.arrange(BlockContainer.java:178)
at org.jfree.chart.block.CenterArrangement.arrangeNN(CenterArrangement.java:286)
at org.jfree.chart.block.CenterArrangement.arrange(CenterArrangement.java:100)
at org.jfree.chart.block.BlockContainer.arrange(BlockContainer.java:178)
at org.jfree.chart.block.FlowArrangement.arrangeNN(FlowArrangement.java:367)
at org.jfree.chart.block.FlowArrangement.arrangeRR(FlowArrangement.java:285)
at org.jfree.chart.block.FlowArrangement.arrange(FlowArrangement.java:160)
at org.jfree.chart.block.BlockContainer.arrange(BlockContainer.java:178)
at org.jfree.chart.title.LegendTitle.arrange(LegendTitle.java:540)
at org.jfree.chart.JFreeChart.drawTitle(JFreeChart.java:1320)
at org.jfree.chart.JFreeChart.draw(JFreeChart.java:1214)
at org.jfree.chart.JFreeChart.createBufferedImage(JFreeChart.java:1399)
at org.jfree.chart.JFreeChart.createBufferedImage(JFreeChart.java:1379)
at org.jfree.chart.JFreeChart.createBufferedImage(JFreeChart.java:1364)
at psiprobe.controllers.RenderChartController.handleRequestInternal(RenderChartController.java:203)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:174)
at psiprobe.controllers.RenderChartController.handleRequest(RenderChartController.java:90)
at sun.reflect.GeneratedMethodAccessor884.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
at psiprobe.ProbeServlet.doDispatch(ProbeServlet.java:85)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter.doFilter(AbstractPreAuthenticatedProcessingFilter.java:121)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at psiprobe.Tomcat85AgentValve.invoke(Tomcat85AgentValve.java:40)
at psiprobe.Tomcat85AgentValve.invoke(Tomcat85AgentValve.java:40)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:677)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1457)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)