[Geoserver-devel] [jira] (GEOS-5019) Transformation in SLD causes memory leak

Michael Romero created GEOS-5019:
------------------------------------

             Summary: Transformation in SLD causes memory leak
                 Key: GEOS-5019
                 URL: https://jira.codehaus.org/browse/GEOS-5019
             Project: GeoServer
          Issue Type: Bug
          Components: WMS, WPS
    Affects Versions: 2.2.x
         Environment: Ubuntu 11.10 x64
java version "1.6.0_29"
            Reporter: Michael Romero
            Assignee: Andrea Aime
            Priority: Critical
             Fix For: 2.2.x
         Attachments: coverage.xml, hawaii_wnd_ucmp.tif, _raster.sld

When I display a particular GeoTiff with a RasterAsPointCollection Transformation in the SLD, the layer never displays and the JVM consumes as much memory as it's allowed. I tried giving the JVM 6GB and still had the problem. I created a GeoTiff coverage store and set the declared SRS to EPSG:4326 and set the SRS handling to force declared.

The issue has to do with the projection of the grid. If I create a user projection with the WKT from gdalinfo, set the declared SRS to this new one, and change the SRS handling to keep native I do not have this issue and the layer displays properly. I know my projection information is messed up but this situation still shouldn't cause this issue.

I can reproduce the error in the standalone Jetty version and running JBoss 5.1.0 GA. I am using a trunk snapshot (2.2.x).

Here is the stack trace I get once the JVM is out of memory:

17:21:33,202 ERROR [rendering] GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
  at com.vividsolutions.jts.geom.Geometry.clone(Geometry.java:1575)
  at com.vividsolutions.jts.geom.Point.clone(Point.java:203)
  at org.geotools.renderer.crs.WrappingProjectionHandler.postProcess(WrappingProjectionHandler.java:131)
  at org.geotools.renderer.lite.StreamingRenderer$RenderableFeature.getTransformedShape(StreamingRenderer.java:3092)
  at org.geotools.renderer.lite.StreamingRenderer$RenderableFeature.getShape(StreamingRenderer.java:3044)
  at org.geotools.renderer.lite.StreamingRenderer.processSymbolizers(StreamingRenderer.java:2561)
  at org.geotools.renderer.lite.StreamingRenderer.process(StreamingRenderer.java:2473)
  at org.geotools.renderer.lite.StreamingRenderer.drawPlain(StreamingRenderer.java:2329)
  at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1982)
  at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:804)
  at org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:494)
  at org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:254)
  at org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:126)
  at org.geoserver.wms.GetMap.executeInternal(GetMap.java:464)
  at org.geoserver.wms.GetMap.run(GetMap.java:207)
  at org.geoserver.wms.GetMap.run(GetMap.java:111)
  at org.geoserver.wms.DefaultWebMapService.getMap(DefaultWebMapService.java:353)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira