GDAL failure in call from java mapscript

Howard Butler hobu.inc at GMAIL.COM
Thu Aug 30 14:18:12 PDT 2007


Ben,

One suspicion I have is that you are running into this bug if the JVM  
limits its stack sizes <http://trac.osgeo.org/gdal/ticket/1736>.  Do  
you happen to know what the default JVM stack size?

Howard

On Aug 30, 2007, at 3:53 PM, Ben Tuttle wrote:

> Hi all-
> We are doing some work with java mapscript and are running into some
> problems. This has worked fine for the most part.  However, in one of
> our test cases we've come across what appears to be a bug, that in our
> case takes down the entire webserver.  Any info on what might be
> causing our problem would be greatly appreciated.
>
> Here are the details:
> Windows XP, Mapserver 4.10, gdal1.4.1, Java 1.6, Tomcat 6.0
> MapServer version 4.10.2 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP
> OUTPUT=PDF OUTPUT=SWF OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=FREETYPE
> SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER
> SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER
> SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS INPUT=JPEG
> INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE DEBUG=MSDEBUG
>
> The bug arose when calling making a WMS request to Mapserver through
> tomcat.  The following URLs succeed:
>
> https://wahlstrom-670/Dispatcher/wms.do?map=/boulder_data/ 
> bldr.map&REQUEST=GetMap&LAYERS=zoning_08_05,openspace09_05&TRANSPARENT 
> =true&srs=EPSG:4326&bbox=-106,39.5,-105,40.5&format=image/ 
> png&VERSION=1.1.1&styles=&SERVICE=WMS
>
> https://wahlstrom-670/Dispatcher/wms.do?map=/boulder_data/ 
> bldr.map&REQUEST=GetMap&LAYERS=zoning_08_05,openspace09_05&TRANSPARENT 
> =true&srs=EPSG:4326&bbox=-106,39.5,-105,40.5&format=image/ 
> gif&VERSION=1.1.1&styles=&SERVICE=WMS
>
>
>  This one however fails catastrophically, taking down the webserver  
> and the JVM
>
> https://wahlstrom-670/Dispatcher/wms.do?map=/boulder_data/ 
> bldr.map&REQUEST=GetMap&LAYERS=zoning_08_05,openspace09_05&TRANSPARENT 
> =true&srs=EPSG:4326&bbox=-106,39.5,-105,40.5&format=image/ 
> tiff&VERSION=1.1.1&styles=&SERVICE=WMS
>
>
> Note that the only difference is that the format QS parameter has been
> changed from "image/png" to "image/tiff".
>
>
>
> To further debug this problem we wrote a simple java app to call  
> mapscript :
>
>
>
> import java.io.*;
>
> import edu.umn.gis.mapscript.*;
>
>
>
> public class MapScriptTest {
>
>
>
>   public static void main(String[] args)  {
>
>       try {
>
>             OWSRequest req = new OWSRequest();
>
>             req.setParameter( "SERVICE", "WMS");
>
>             req.setParameter( "REQUEST", "GetMap");
>
>             req.setParameter( "LAYERS", "US state boundaries");
>
>             req.setParameter( "format", "image/tiff");
>
>             req.setParameter( "version", "1.1.1");
>
>
>
>             mapObj map = new mapObj("USA.map");
>
>
>
>             mapscript.msIO_installStdoutToBuffer();
>
>
>
>             int owsResult = map.OWSDispatch( req );
>
>             mapscript.msIO_stripStdoutBufferContentType();
>
>
>
>             byte[] resultBytes = mapscript.msIO_getStdoutBufferBytes 
> ();
>
>
>
>           FileOutputStream fou = new FileOutputStream(new File 
> ("map.tiff"));
>
>           fou.write(resultBytes);
>
>           fou.flush();
>
>           fou.close();
>
>
>
>       } catch( Exception e ) {
>
>           e.printStackTrace();
>
>       }
>
>   }
>
> }
>
>
>
> Running this program on our system will generate a seg fault in
> gdal14.dll.  Java reports the following:
>
>
>
> #
>
> # An unexpected error has been detected by Java Runtime Environment:
>
> #
>
> #  EXCEPTION_STACK_OVERFLOW (0xc00000fd) at pc=0x0328dcb5,  
> pid=1180, tid=3208
>
> #
>
> # Java VM: Java HotSpot(TM) Client VM (1.6.0_02-b06 mixed mode,  
> sharing)
>
> # Problematic frame:
>
> # C  [gdal14.dll+0x24dcb5]
>
> #
>
> # If you would like to submit a bug report, please visit:
>
> #   http://java.sun.com/webapps/bugreport/crash.jsp
>
> #
>
> .
>
> .
>
> .
>
>
>
> We can repro this on both prebuilt binaries and ones I build ourself.
>
>
>
> There are some files for a small re-pro program at
> http://www.waterstoneinc.com/7e70820538e2ea58949752422edbdaf6/:
>
> ·         MapScriptTest.java – Simple driver java program
>
> ·         HelloWorld.map – Simple example map
>
> ·         Mapscript.dll – The mapscript DLL I'm using. Feel free to  
> use your own
>
> ·         buildAndRun.cmd – a cmd file to compile the java code and
> run it with four sets of sample parameters. The last of which will
> cause the seg fault.
>
>
>
> Note: you will likely need to edit buildAndRun.cmd to make sure you
> are adding all the referenced mapscript DLLs to your path.



More information about the MapServer-users mailing list