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)
|