mapserv segfaults trying to get thequery results of a native oracle spati

Nicol Hermann mapserver at GEOWORLD.DE
Mon May 2 05:40:19 EDT 2005


Hi Bart,

thanks again for your mail.
I changed the data statement one more time but unfortunately without
luck.

<short gdb output>

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 8480)]
msOracleSpatialLayerGetShape (layer=0x8285d60, shape=0x82ff510,
record=0) at maporaclespatial.c:2003
2003        msOracleSpatialDataHandler *dthand =
(msOracleSpatialDataHandler *)layerinfo->oradatahandlers;

</short gdb output>

Yes i think Fernando needs to step in.

Thanks again for your help
Nicol


Am Montag, den 02.05.2005, 11:23 +0200 schrieb Bart van den Eijnden:
> Hi Nicol,
>
> I have had similar crashes on Windows which were solved magically by compiling with Visual Studio 7 instead of 6. But for Fernando a similar situation on Linux worked fine.
>
> Can you try the following data statement as a last resort:
>
> DATA "GEOMETRIE from (SELECT ID, GEOMETRIE FROM FLURST) USING UNIQUE ID SRID 82027"
>
> That used to work for me on Windows even with Visual Studio 6, but then you miss a lot of attribute info ofcourse.
>
> Probably Fernando needs to step in and help, but in Brazil it is still quite early I guess :-)
>
> Best regards,
> Bart
>
> Bart van den Eijnden
> Syncera-ITSolutions
> Postbus 270
> 2600 AG  DELFT
>
> tel.nr.: 015-7512436
> email: BEN at Syncera-ITSolutions.nl
>
> >>> Nicol Hermann <mapserver at geoworld.de> 05/02/05 11:17am >>>
> Hi Bart, Fernando, List
>
> thank you for your mail.
> I changed the DATA statement according to your advice.
> The statement is:
> DATA "GEOMETRIE from (SELECT * FROM FLURST) USING UNIQUE ID SRID 82027"
>
> Sadly this changes nothing. I further get a segfault.
> Attached the new gdb output:
>
> nicol at emil:~/public_html/mapserver/dev$ gdb php
> GNU gdb 6.3-debian
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you
> are
> welcome to change it and/or distribute copies of it under certain
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for
> details.
> This GDB was configured as "i386-linux"...Using host libthread_db
> library "/lib/libthread_db.so.1".
>
> (gdb) run nativ_oraclequelle_query.php
> Starting program: /usr/local/bin/php nativ_oraclequelle_query.php
> [Thread debugging using libthread_db enabled]
> [New Thread 16384 (LWP 8349)]
> Content-type: text/html
> X-Powered-By: PHP/4.3.8
>
> ms_map_obj Object
> (
>     [_handle_] => Resource id #1
>     [numlayers] => 1
>     [name] => Karte
>     [status] => 1
>     [debug] => 0
>     [width] => 300
>     [height] => 300
>     [maxsize] => 2048
>     [transparent] => 0
>     [interlace] => 0
>     [imagetype] =>
>     [imagequality] => 0
>     [extent] => ms_rect_obj Object
>         (
>             [_handle_] => Resource id #2
>             [minx] => 0
>             [miny] => 0
>             [maxx] => 0
>             [maxy] => 0
>         )
>
>     [cellsize] => 0
>     [units] => 0
>     [scale] => 0
>     [resolution] => 0
>     [shapepath] =>
>     [keysizex] => 0
>     [keysizey] => 0
>     [keyspacingx] => 0
>     [keyspacingy] => 0
>     [symbolsetfilename] =>
>     [fontsetfilename] =>
>     [mappath] =>
>     [imagecolor] => ms_color_obj Object
>         (
>             [_handle_] => Resource id #3
>             [red] => 0
>             [green] => 0
>             [blue] => 0
>         )
>
>     [web] => ms_web_obj Object
>         (
>             [_handle_] => Resource id #4
>             [log] =>
>             [imagepath] =>
>             [template] =>
>             [imageurl] =>
>             [header] =>
>             [footer] =>
>             [empty] =>
>             [error] =>
>             [mintemplate] =>
>             [maxtemplate] =>
>             [minscale] => 0
>             [maxscale] => 0
>             [queryformat] =>
>             [extent] => ms_rect_obj Object
>                 (
>                     [_handle_] => Resource id #5
>                     [minx] => 0
>                     [miny] => 0
>                     [maxx] => 0
>                     [maxy] => 0
>                 )
>
>         )
>
>     [reference] => ms_reference_obj Object
>         (
>             [_handle_] => Resource id #6
>             [image] =>
>             [width] => 0
>             [height] => 0
>             [status] => 0
>             [extent] => ms_rect_obj Object
>                 (
>                     [_handle_] => Resource id #7
>                     [minx] => 0
>                     [miny] => 0
>                     [maxx] => 0
>                     [maxy] => 0
>                 )
>
>             [color] => ms_color_obj Object
>                 (
>                     [_handle_] => Resource id #8
>                     [red] => 0
>                     [green] => 0
>                     [blue] => 0
>                 )
>
>             [outlinecolor] => ms_color_obj Object
>                 (
>                     [_handle_] => Resource id #9
>                     [red] => 0
>                     [green] => 0
>                     [blue] => 0
>                 )
>
>         )
>
>     [scalebar] => ms_scalebar_obj Object
>         (
>             [_handle_] => Resource id #10
>             [height] => 0
>             [width] => 0
>             [style] => 0
>             [intervals] => 0
>             [units] => 0
>             [status] => 0
>             [position] => 0
>             [transparent] => 0
>             [interlace] => 0
>             [postlabelcache] => 0
>             [label] => ms_label_obj Object
>                 (
>                     [_handle_] => Resource id #11
>                     [font] =>
>                     [encoding] =>
>                     [type] => 0
>                     [shadowsizex] => 0
>                     [shadowsizey] => 0
>                     [backgroundshadowsizex] => 0
>                     [backgroundshadowsizey] => 0
>                     [size] => 0
>                     [minsize] => 0
>                     [maxsize] => 0
>                     [position] => 0
>                     [offsetx] => 0
>                     [offsety] => 0
>                     [angle] => 0
>                     [autoangle] => 0
>                     [buffer] => 0
>                     [antialias] => 0
>                     [wrap] => 0
>                     [minfeaturesize] => 0
>                     [autominfeaturesize] => 0
>                     [mindistance] => 0
>                     [partials] => 0
>                     [force] => 0
>                     [color] => ms_color_obj Object
>                         (
>                             [_handle_] => Resource id #12
>                             [red] => 0
>                             [green] => 0
>                             [blue] => 0
>                         )
>
>                     [outlinecolor] => ms_color_obj Object
>                         (
>                             [_handle_] => Resource id #13
>                             [red] => 0
>                             [green] => 0
>                             [blue] => 0
>                         )
>
>                     [shadowcolor] => ms_color_obj Object
>                         (
>                             [_handle_] => Resource id #14
>                             [red] => 0
>                             [green] => 0
>                             [blue] => 0
>                         )
>
>                     [backgroundcolor] => ms_color_obj Object
>                         (
>                             [_handle_] => Resource id #15
>                             [red] => 0
>                             [green] => 0
>                             [blue] => 0
>                         )
>
>                     [backgroundshadowcolor] => ms_color_obj Object
>                         (
>                             [_handle_] => Resource id #16
>                             [red] => 0
>                             [green] => 0
>                             [blue] => 0
>                         )
>
>                 )
>
>             [imagecolor] => ms_color_obj Object
>                 (
>                     [_handle_] => Resource id #17
>                     [red] => 0
>                     [green] => 0
>                     [blue] => 0
>                 )
>
>             [color] => ms_color_obj Object
>                 (
>                     [_handle_] => Resource id #18
>                     [red] => 0
>                     [green] => 0
>                     [blue] => 0
>                 )
>
>             [backgroundcolor] => ms_color_obj Object
>                 (
>                     [_handle_] => Resource id #19
>                     [red] => 0
>                     [green] => 0
>                     [blue] => 0
>                 )
>
>             [outlinecolor] => ms_color_obj Object
>                 (
>                     [_handle_] => Resource id #20
>                     [red] => 0
>                     [green] => 0
>                     [blue] => 0
>                 )
>
>         )
>
>     [legend] => ms_legend_obj Object
>         (
>             [_handle_] => Resource id #21
>             [height] => 0
>             [width] => 0
>             [keysizex] => 0
>             [keysizey] => 0
>             [keyspacingx] => 0
>             [keyspacingy] => 0
>             [status] => 0
>             [position] => 0
>             [transparent] => 0
>             [interlace] => 0
>             [postlabelcache] => 0
>             [template] =>
>             [label] => ms_label_obj Object
>                 (
>                     [_handle_] => Resource id #22
>                     [font] =>
>                     [encoding] =>
>                     [type] => 0
>                     [shadowsizex] => 0
>                     [shadowsizey] => 0
>                     [backgroundshadowsizex] => 0
>                     [backgroundshadowsizey] => 0
>                     [size] => 0
>                     [minsize] => 0
>                     [maxsize] => 0
>                     [position] => 0
>                     [offsetx] => 0
>                     [offsety] => 0
>                     [angle] => 0
>                     [autoangle] => 0
>                     [buffer] => 0
>                     [antialias] => 0
>                     [wrap] => 0
>                     [minfeaturesize] => 0
>                     [autominfeaturesize] => 0
>                     [mindistance] => 0
>                     [partials] => 0
>                     [force] => 0
>                     [color] => ms_color_obj Object
>                         (
>                             [_handle_] => Resource id #23
>                             [red] => 0
>                             [green] => 0
>                             [blue] => 0
>                         )
>
>                     [outlinecolor] => ms_color_obj Object
>                         (
>                             [_handle_] => Resource id #24
>                             [red] => 0
>                             [green] => 0
>                             [blue] => 0
>                         )
>
>                     [shadowcolor] => ms_color_obj Object
>                         (
>                             [_handle_] => Resource id #25
>                             [red] => 0
>                             [green] => 0
>                             [blue] => 0
>                         )
>
>                     [backgroundcolor] => ms_color_obj Object
>                         (
>                             [_handle_] => Resource id #26
>                             [red] => 0
>                             [green] => 0
>                             [blue] => 0
>                         )
>
>                     [backgroundshadowcolor] => ms_color_obj Object
>                         (
>                             [_handle_] => Resource id #27
>                             [red] => 0
>                             [green] => 0
>                             [blue] => 0
>                         )
>
>                 )
>
>             [imagecolor] => ms_color_obj Object
>                 (
>                     [_handle_] => Resource id #28
>                     [red] => 0
>                     [green] => 0
>                     [blue] => 0
>                 )
>
>             [outlinecolor] => ms_color_obj Object
>                 (
>                     [_handle_] => Resource id #29
>                     [red] => 0
>                     [green] => 0
>                     [blue] => 0
>                 )
>
>         )
>
>     [latlon] => ms_projection_obj Object
>         (
>             [_handle_] => Resource id #30
>         )
>
>     [outputformat] =>
>     [labelcache] => ms_labelcache_obj Object
>         (
>             [_handle_] => Resource id #31
>         )
>
> )
> [Mon May  2 11:07:01 2005].683777 msOracleSpatialLayerOpen called with:
> GEOMETRIE from (SELECT * FROM FLURST) USING UNIQUE ID SRID 82027
> [Mon May  2 11:07:01 2005].846399 msOracleSpatialLayerOpen. Shared
> connection not available. Creating one.
> [Mon May  2 11:07:01 2005].846593
> msConnPoolRegister(Oracle,user/passwd at BOX.os,0x82bcd98)
> [Mon May  2 11:07:01 2005].853183 msOracleSpatialLayerFreeItemInfo was
> called.
> [Mon May  2 11:07:01 2005].882663 msOracleSpatialLayerWhichShapes was
> called.
> [Mon May  2 11:07:01 2005].888674 msOracleSpatialLayerWhichShapes. Using
> this Sql to retrieve the data: SELECT ID, GEOMETRIE FROM (SELECT * FROM
> FLURST) WHERE SDO_FILTER( GEOMETRIE, MDSYS.SDO_GEOMETRY(2003, 82027,
> NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(3384094.22,5499947.53,3427070.22,5542923.53) ),'querytype=window') = 'TRUE'
> [Mon May  2 11:07:23 2005].259709 msOracleSpatialLayerFreeItemInfo was
> called.
> [Mon May  2 11:07:23 2005].259903 msOracleSpatialLayerClose was called.
> Layer connection: user/passwd at BOX.os
> [Mon May  2 11:07:23 2005].259978 msOracleSpatialLayerClose. Cleaning
> layerinfo handlers.
> [Mon May  2 11:07:23 2005].260121 msOracleSpatialLayerClose. Cleaning
> Oracle handlers.
> [Mon May  2 11:07:23 2005].260214
> msConnPoolRelease(Oracle,user/passwd at BOX.os,0x82bcd98)
> [Mon May  2 11:07:23 2005].260293
> msConnPoolClose(user/passwd at BOX.os,0x82bcd98)
> <IMG SRC=/~nicol/mapserver/phpmapserver/tmp/111502482183491.gif>
> <p>Anzahl der Layer: 1 - Anzahl der Klassen dieses Layers: [Mon May  2
> 11:07:23 2005].372014 msOracleSpatialLayerOpen called with: GEOMETRIE
> from (SELECT * FROM FLURST) USING UNIQUE ID SRID 82027
> [Mon May  2 11:07:23 2005].449381 msOracleSpatialLayerOpen. Shared
> connection not available. Creating one.
> [Mon May  2 11:07:23 2005].449542
> msConnPoolRegister(Oracle,user/passwd at BOX.os,0x82f7f98)
> [Mon May  2 11:07:23 2005].455171 msOracleSpatialLayerFreeItemInfo was
> called.
> [Mon May  2 11:07:23 2005].513718 msOracleSpatialLayerGetItems was
> called.
> [Mon May  2 11:07:23 2005].514835 msOracleSpatialLayerInitItemInfo was
> called.
> [Mon May  2 11:07:23 2005].527714 msOracleSpatialLayerFreeItemInfo was
> called.
> [Mon May  2 11:07:23 2005].527815 msOracleSpatialLayerGetItems was
> called.
> [Mon May  2 11:07:23 2005].617739 msOracleSpatialLayerInitItemInfo was
> called.
> x: 0 - y: 0 [Mon May  2 11:07:23 2005].618040 msOracleSpatialLayerOpen
> called with: GEOMETRIE from (SELECT * FROM FLURST) USING UNIQUE ID SRID
> 82027
> [Mon May  2 11:07:23 2005].618059 msOracleSpatialLayerFreeItemInfo was
> called.
> [Mon May  2 11:07:23 2005].618075 msOracleSpatialLayerWhichShapes was
> called.
> [Mon May  2 11:07:23 2005].618136 msOracleSpatialLayerWhichShapes. Using
> this Sql to retrieve the data: SELECT ID, GEOMETRIE FROM (SELECT * FROM
> FLURST) WHERE SDO_FILTER( GEOMETRIE, MDSYS.SDO_GEOMETRY(2003, 82027,
> NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),MDSYS.SDO_ORDINATE_ARRAY(3405582.22,5521435.53,3405582.22,5521435.53) ),'querytype=window') = 'TRUE'
> [Mon May  2 11:07:23 2005].731214 msOracleSpatialLayerFreeItemInfo was
> called.
> [Mon May  2 11:07:23 2005].731264 msOracleSpatialLayerClose was called.
> Layer connection: user/passwd at BOX.os
> [Mon May  2 11:07:23 2005].731276 msOracleSpatialLayerClose. Cleaning
> layerinfo handlers.
> [Mon May  2 11:07:23 2005].731309 msOracleSpatialLayerClose. Cleaning
> Oracle handlers.
> [Mon May  2 11:07:23 2005].731321
> msConnPoolRelease(Oracle,user/passwd at BOX.os,0x82f7f98)
> [Mon May  2 11:07:23 2005].731337
> msConnPoolClose(user/passwd at BOX.os,0x82f7f98)
> Anzahl: 1 <br>0. ErgebnisstdClass Object
> (
>     [shapeindex] => 0
>     [tileindex] => -1
>     [classindex] => 0
> )
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 16384 (LWP 8349)]
> msOracleSpatialLayerGetShape (layer=0x8285d60, shape=0x82df3e0,
> record=0) at maporaclespatial.c:2003
> 2003        msOracleSpatialDataHandler *dthand =
> (msOracleSpatialDataHandler *)layerinfo->oradatahandlers;
>
>
> Am Montag, den 02.05.2005, 10:57 +0200 schrieb Bart van den Eijnden:
> > Hi Nicol,
> >
> > In order to use query functionality you need to define a different DATA statement, something like:
> >
> > DATA "GEOMETRIE from (SELECT * FROM FLURST) USING UNIQUE ID SRID 82027"
> >
> > where ID is the name of your unique column (primary key most of the time).
> >
> > Best regards,
> > Bart
> >
> > Bart van den Eijnden
> > Syncera-ITSolutions
> > Postbus 270
> > 2600 AG  DELFT
> >
> > tel.nr.: 015-7512436
> > email: BEN at Syncera-ITSolutions.nl
> >
> > >>> Nicol Hermann <mapserver at GEOWORLD.DE> 05/02/05 10:50am >>>
> > Hi Fernando,
> >
> > thank you very much for your e-mail.
> > I tried the latest CVS version ($Id: maporaclespatial.c,v 1.26
> > 2005/04/28 22:19:41 rodrigo Exp $) with the '--enable-point-z-m'
> > compiling flag but it did not change the situation.
> > Mapserver crashes when it try to access the search results with:
> >
> > $shpobj = $Layer->getShape($oRes->tileindex,$oRes->shapeindex);
> >
> > I also found, that nearly the hole map-object is empty when i add the
> > '--enable-point-z-m' compiling flag (see attached gdb output) and try to
> > access it with PHP Mapscript.
> >
> > $map = ms_newMapObj('oracle_test_gk3.map') or die('Error.');
> > var_dump($map);
> >
> > Removing this flag gives me the normal look.
> >
> > Here is my oracle layer definition.
> > Yes i define a template, and no i did not define any filter parameter:
> >
> > LAYER
> >      NAME Oracle
> >      STATUS DEFAULT
> >      TYPE POLYGON
> >      DEBUG ON
> >      CONNECTIONTYPE oraclespatial
> >      CONNECTION "user/passwd at BOX.os"
> >      DATA "GEOMETRIE from FLURST USING SRID 82027"
> >      PROJECTION
> >        "init=epsg:31467"
> >      END
> >      CLASS
> >         NAME gw
> >         TEMPLATE "dummy.html"
> >         STYLE
> >            COLOR 192 192 192
> >            OUTLINECOLOR 0 0 0
> >         END
> >      END
> >   END
> >
> >
> > Should i open a bug on this?
> > Many thanks
> > Nicol
> >
> >
> > gdb-Output:
> >
>
> <cut old gdb output>
>
> >
> >
> > Am Donnerstag, den 28.04.2005, 11:42 -0300 schrieb Fernando Simon:
> > > Hi Nicol,
> > >     This problem can be a bug in maporaclespatial.c in 4.4.2 version.
> > > In this version of Mapserver the maporaclespatial is a 1.16 version,
> > > a old version (now it is a 1.25). I fixed some problems with OCI
> > > handlers between 1.6 and 1.25, the last version 1.25 can work
> > > correctly for you.
> > >     But, it's a strange problem, how did you define oracle spatial
> > > layer? Did you define the template for the layer? Did you define any
> > > filter parameter for the layer?
> > >     Thanks.
> > >
> > > ps: for cvs version specify the --enable-point-z-m flag
> > >
> > > ------------------------------------------------------------------------
> > > Fernando Simon
> > > Mapserver and Oracle Spatial developer
> > > G10 - Laboratorio de Computacao Aplicada - Brazil
> > > http://g10.cttmar.univali.br - UNIVALI/CTTMAR
> > > ------------------------------------------------------------------------
> > >
> > > Citando Nicol Hermann <mapserver at GEOWORLD.DE>:
> > >
> > > > Dear list,
> > > >
> > > > I want to use the query function of the native Oracle Spatial
> > > > support
> > > > (INPUT=ORACLESPATIAL) from mapserver 4.4.2.
> > > > Displaying the image is no problem but when try to get the query
> > > > results
> > > > mapserver crashes with a segmentation fault.
> > > >
> > > > Here is what i try to do:
> > > >
> > > > for($j = 0;$j < $Layer->getNumResults(); $j++) {
> > > >   $oRes = $Layer->getResult($j);
> > > >   $shpobj = $Layer->getShape($oRes->tileindex,$oRes->shapeindex);
> > > > // <-
> > > > Line which causes the Segmentation fault
> > > >   $shpobj->free();
> > > > }
> > > >
> > > > Is this a bug or do i have to change something?
> > > > My system is:
> > > > Debian sarge, mapserver 4.4.2 (php Mapscript), oracle 10g
> > > >
> > > > Attached you find the output of gdb.
> >
> >
> > <cut old gdb output>
> >
> >
> > >
> > > -------------------------------------------------
> > >   Univali - Webmail - http://webmail.univali.br
> > >
> > >
>
>



More information about the mapserver-users mailing list