mapscript crashes on getFeature

Benedikt Rothe umn-ms at HYDROTEC.DE
Fri Nov 18 03:59:03 EST 2005


Hallo Donovan

Some month ago I made a posting about  Mapserver/Java-crashes
in Java-Finalizers, which tries to explain a problem on
memory-managment in Mapserver/Javascript  ("Java VM Crashes using the 
Mapscript API"):

http://article.gmane.org/gmane.comp.gis.mapserver.user/11536
http://article.gmane.org/gmane.comp.gis.mapserver.user/11678

Additional hint: I found bugs of this kind by changing all existing 
Java-Mascript-finalizers which call "delete()" to:

  protected void finalize() {
    if(swigCPtr != 0 && swigCMemOwn) {
      System.out.println(this.getClass().getName() + "-finalize 
deallokiert");
    }
    delete();
  }

The stdout will have messages for all classes which are freed in a 
dangerous way.
As long as this kind of messages one should look for missing delete's.

I hope this helps
Benedikt Rothe

PS: By following this rules the Java-App became much more stable.
But I still face problems of this kind one some machines.

UMN MapServer Users List <MAPSERVER-USERS at LISTS.UMN.EDU> schrieb am 
15.11.2005 18:10:18:

> I've been working with mapscript and tomcat for several weeks, generally
> mapserver is working great but when i try to query a layer (tried a 
polygon
> shp file, polygon tab file and a point tab file) the jvm crashes as soon 
as
> getFeature is called.  QueryByPoint and getResults appear to work - i 
can
> iterate over the resultset and print shape indexes but getFeature always
> crashes with this message:
> 
> > *** glibc detected *** free(): invalid pointer: 0x093f6e30 ***
> > 15/11/2005 10:48:04 11023 jsvc.exec error: Service did not exit 
cleanly
> 
> Any ideas?  I'm really stuck...
> 
> Following is a snip of the code and some more detail:
> 
> layer.queryByPoint(map,point,mapscriptConstants.MS_MULTIPLE,-1);
> resultCacheObj results = layer.getResults();
> layer.open();
>     for (int i=0;i<results.getNumresults();i++) {
>         resultCacheMemberObj result = results.getResult(i);
>         shapeObj feature =
> layer.getFeature(result.getShapeindex(),result.getTileindex());
>     }
> f.realLayer.close();
> 
> I'm using mapserver 4.8.0 but also tried 4.6.0 - same results
> I compiled mapserver myself with these flags
> --with-gdal --with-ogr --with-postgis --with-proj --with-threads 
--with-png
> --with-geos --with-gd --enable-debug
> 
> gdal-1.2.6,  proj-4.4.9 and geos-2.1.1 were installed using RPMs from
> mappinghacks.com
> JDK 1.5.0_05
> Tomcat 5.0
> Fedora core 3
> 
> I tried loading the jvm in GDB but it don't have the skill to track down 
the
> source of the memory corruption.
> Searched the list, google and the documentation with no success...
> 
> Donovan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapserver-users/attachments/20051118/5e73fe76/attachment.html


More information about the mapserver-users mailing list