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 <[email protected]> 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

Reply via email to