After running geoserver about 8 days Geoserver becomes unresponsive. And does not come back until I restart Tomcat. When I check memory usage, looks like it uses ~19.6GB of 20GB tomcat max memory. And the heap dump shows %97 of the memory consists of double[]. The dump can be downloaded from here: https://www.dropbox.com/s/vx81zxsjyugmuun/geoserver_problem.tar.gz.zip?dl=0 I am using Geoserver for serving tiles from existing stores as well as dynamically creating new layers from database tables or geotiff files via geoserver-manager. Though I am not sure what operations trigger the increase in memory usage. The last logs written to catalina.out reports following errors: org.geoserver.GeoserverInitStartupListener$1 errorOccurred INFO: Problem occurs when computing a tile by the owner. java.lang.RuntimeException: Cannot construct DataBuffer. at com.sun.media.jai.util.DataBufferUtils.constructDataBuffer(DataBufferUtils.java:132) at com.sun.media.jai.util.DataBufferUtils.createDataBufferDouble(DataBufferUtils.java:293) at javax.media.jai.ComponentSampleModelJAI.createDataBuffer(ComponentSampleModelJAI.java:274) at org.geoserver.jai.ConcurrentTileFactory.createTile(ConcurrentTileFactory.java:258) at javax.media.jai.PlanarImage.createWritableRaster(PlanarImage.java:1982) at javax.media.jai.PlanarImage.getData(PlanarImage.java:2160) at javax.media.jai.PlanarImage.getData(PlanarImage.java:2016) at it.geosolutions.jaiext.classifier.RasterClassifierOpImage.computeRect(RasterClassifierOpImage.java:106) at javax.media.jai.OpImage.computeTile(OpImage.java:1221) at javax.media.jai.PointOpImage.computeTile(PointOpImage.java:728) at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904) at javax.media.jai.OpImage.getTile(OpImage.java:1129) at javax.media.jai.PlanarImage.getData(PlanarImage.java:2085) at javax.media.jai.PlanarImage.getExtendedData(PlanarImage.java:2440) at com.sun.media.jai.opimage.MosaicOpImage.computeTile(MosaicOpImage.java:432) at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904) at javax.media.jai.OpImage.getTile(OpImage.java:1129) at javax.media.jai.PlanarImage.getData(PlanarImage.java:2085) at javax.media.jai.PlanarImage.getExtendedData(PlanarImage.java:2440) at com.sun.media.jai.opimage.MosaicOpImage.computeTile(MosaicOpImage.java:432) at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904) at javax.media.jai.OpImage.getTile(OpImage.java:1129) at javax.media.jai.PlanarImage.copyData(PlanarImage.java:2343) at javax.media.jai.RenderedOp.copyData(RenderedOp.java:2299) at org.geoserver.gwc.layer.GeoServerMetaTile.createTile(GeoServerMetaTile.java:192) at org.geoserver.gwc.layer.GeoServerMetaTile.writeTileToStream(GeoServerMetaTile.java:98) at org.geowebcache.layer.TileLayer.saveTiles(TileLayer.java:655) at org.geoserver.gwc.layer.GeoServerTileLayer.getMetatilingReponse(GeoServerTileLayer.java:572) at org.geoserver.gwc.layer.GeoServerTileLayer.getTile(GeoServerTileLayer.java:518) at org.geoserver.gwc.GWC.dispatch(GWC.java:662) at org.geoserver.gwc.wms.CachingWebMapService.invoke(CachingWebMapService.java:84) at org.geoserver.gwc.wms.CachingWebMapService.invoke(CachingWebMapService.java:55) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.geoserver.ows.util.RequestObjectLogger.invoke(RequestObjectLogger.java:55) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at com.sun.proxy.$Proxy57.getMap(Unknown Source) at sun.reflect.GeneratedMethodAccessor239.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.geoserver.ows.Dispatcher.execute(Dispatcher.java:845) at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:275) at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) |