Opened 13 years ago
Closed 13 years ago
#3627 closed defect (fixed)
Internal error with Oracle Spatial multi point geometries
Reported by: | tessarom | Owned by: | aboudreault |
---|---|---|---|
Priority: | normal | Milestone: | 5.6.5 release |
Component: | Input - Native Oracle Spatial Support | Version: | unspecified |
Severity: | major | Keywords: | multipoint |
Cc: |
Description
It seems that mapserver does not handle correctly multipoint geometries in native Oracle Spatial: it raises a memory corruption error when adding a multipoint geometry to the internal structures used for rendering. Verified on mapserver 5.6.3 on Windows 2003 server, Red Hat Linux 5.5 32 bit, Gentoo Linux 64 bit, and on mapserver 5.6.5 on Gentoo Linux 64 bit.
Compiled with debugging info on Linux, this is a tipical backtrace:
#0 0x00007ffff0ffc1d5 in raise () from /lib/libc.so.6 #1 0x00007ffff0ffd600 in abort () from /lib/libc.so.6 #2 0x00007ffff10373f7 in ?? () from /lib/libc.so.6 #3 0x00007ffff103c986 in ?? () from /lib/libc.so.6 #4 0x00007ffff103fa61 in ?? () from /lib/libc.so.6 #5 0x00007ffff1041820 in malloc () from /lib/libc.so.6 #6 0x0000000000458615 in msAddLine (p=0x7fffffffd070, new_line=0x7fffffffcdb0) at mapprimitive.c:303 #7 0x00000000004799b1 in osPointCluster (hand=0x9a42b0, shape=0x7fffffffd070, obj=0xa958b0, start=0, end=6, points=..., interpretation=2, data3d=1, data4d=0) at maporaclespatial.c:1344 #8 0x000000000047a86e in osGetOrdinates (dthand=0x99c170, hand=0x9a42b0, shape=0x7fffffffd070, obj=0xa958b0, ind=0xa95508) at maporaclespatial.c:1663 #9 0x000000000047c43b in msOracleSpatialLayerNextShape (layer=0x80f580, shape=0x7fffffffd070) at maporaclespatial.c:2181 #10 0x000000000046e2cd in msLayerNextShape (layer=0x80f580, shape=0x7fffffffd070) at maplayer.c:145 #11 0x000000000048283a in msDrawVectorLayer (map=0x806700, layer=0x80f580, image=0x820070) at mapdraw.c:964 #12 0x0000000000481867 in msDrawLayer (map=0x806700, layer=0x80f580, image=0x820070) at mapdraw.c:809 #13 0x00000000004805c9 in msDrawMap (map=0x806700, querymap=0) at mapdraw.c:455 #14 0x0000000000416c8b in main (argc=3, argv=0x7fffffffd8c8) at mapserv.c:1415
Change History (3)
comment:1 by , 13 years ago
comment:2 by , 13 years ago
Example of geometry that causes the fault (SRID=3004):
MDSYS.SDO_GEOMETRY(3005,null,null, MDSYS.SDO_ELEM_INFO_ARRAY(1,1,3), MDSYS.SDO_ORDINATE_ARRAY(2380403,5108034,0, 2380176,5107312,0, 2380039,5107571,0))
The database is Oracle 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production.
comment:3 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
I committed the fix in branch-5-6. The fix had already been committed in trunk during another ticket. Committed in r10802.
A more easy to read backtrace (mapserver 5.6.5 on Gentoo Linux 64 bit):