[postgis-users] Postgis 1.5 core dumps on GEOSIntersects with side location conflict

Nicolas Ribot nicolas.ribot at gmail.com
Fri Sep 21 08:35:27 PDT 2012


Hi,

On this 1.5 version, query is raising an error but does not crash the server:
 PostgreSQL 9.1.5 on x86_64-apple-darwin11.4.0, compiled by
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc.
build 5658) (LLVM build 2336.9.00), 64-bit
POSTGIS="1.5.3" GEOS="3.3.5-CAPI-1.7.5" PROJ="Rel. 4.8.0, 6 March
2012" LIBXML="2.7.3" USE_STATS

Using the geography data type, which I think is preferred in your
case, the query works:

SELECT ST_intersects(
   st_geogfromtext('POLYGON((31.904296875 67.32421875,14.58984375
67.32421875,12.744140625 65.830078125,33.75 66.09375,31.904296875
67.236328125,31.81640625 67.32421875,31.904296875 67.32421875))'),
   st_geogfromtext('POLYGON((31.904296875 67.32421875,14.58984375
67.32421875,12.744140625 65.830078125,33.75 66.09375,31.904296875
67.236328125,31.81640625 67.32421875,31.904296875 67.32421875))')
);

Nicolas


On 20 September 2012 18:29, Adam <work.asr at gmail.com> wrote:
> Thx I was wondering how we could "fix" existing geometries.
> ST_SimplifyPreserveTopology did a nice job on the one I mentioned in the
> email.
> Still would like Postgis1.5 not to core dump on this condition though...
>
>
> On Thu, Sep 20, 2012 at 11:04 AM, Dave Potts <dave.potts at pinan.co.uk> wrote:
>>
>> I have used the jts library and have the same type of issue
>>
>> In jts you would
>>
>> 1.  Try to use a buffer of 0.
>> 2.  Try calling one of the simplify geom operations.
>>
>> Dave.
>> Adam wrote:
>> > Running this query against Postgis 1.5 causes a core dump:
>> > SELECT ST_intersects(
>> >    geomfromtext('POLYGON((31.904296875 67.32421875,14.58984375
>> > 67.32421875,12.744140625 65.830078125,33.75 66.09375,31.904296875
>> > 67.236328125,31.81640625 67.32421875,31.904296875 67.32421875))', 4326),
>> >    geomfromtext('POLYGON((31.904296875 67.32421875,14.58984375
>> > 67.32421875,12.744140625 65.830078125,33.75 66.09375,31.904296875
>> > 67.236328125,31.81640625 67.32421875,31.904296875 67.32421875))', 4326)
>> > );
>> >
>> > Running against Postgis 2.0 gives the following error (much preferred to
>> > get an error than a core dump!):
>> > ERROR:  GEOSIntersects: TopologyException: side location conflict at
>> > 31.81640625 67.32421875
>> > CONTEXT:  SQL function "st_intersects" statement 1
>> >
>> > Both are using geos version: '3.3.5-CAPI-1.7.5'.
>> >
>> > Unfortunately upgrading to Postgis 2 is not an option for us.
>> > Our platform is Solaris 10 x86 using 64 bit builds.
>> >
>> >>From dbx the core file shows:
>> >   [1] 0x1b408d(0x1, 0x1, 0x474e5543432b2b00, 0xbe0170,
>> > 0xfffffd7fffdf8880,
>> > 0x1b408d), at 0x1b408d
>> >   [2] _Unwind_RaiseException_Body(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at
>> > 0xfffffd7ffec416bc
>> >   [3] _SUNW_Unwind_RaiseException(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at
>> > 0xfffffd7ffec418a9
>> >   [4] __cxa_throw(obj = (nil), tinfo = (nil), dest = (nil)), line 75 in
>> > "eh_throw.cc"
>> >   [5] geos::geomgraph::EdgeEndStar::propagateSideLabels(this =
>> > 0xfffffd7ffe6e2a00, geomIndex = 0), line 69 in "new_allocator.h"
>> >   [6]
>> >
>> > _ZN4geos9geomgraph11EdgeEndStar16computeLabellingEPSt6vectorIPNS0_13GeometryGraphESaIS4_EE(this
>> > = 0x91bc10, geomGraph = 0xfffffd7fffdf8e18), line 88 in
>> > "EdgeEndStar.cpp"
>> >   [7] geos::operation::relate::RelateComputer::labelNodeEdges(this =
>> > 0xfffffd7fffdf8e30), line 327 in "RelateComputer.cpp"
>> >   [8] geos::operation::relate::RelateComputer::computeIM(this =
>> > 0xfffffd7fffdf8e30), line 131 in "RelateComputer.cpp"
>> >   [9] geos::operation::relate::RelateOp::relate(a = (nil), b = (nil)),
>> > line
>> > 43 in "RelateOp.cpp"
>> >   [10] geos::geom::Geometry::intersects(this = 0x91b598, g = 0x91b638),
>> > line 191 in "memory"
>> >   [11] GEOSIntersects_r(extHandle = 0x91d100, g1 = (nil), g2 = (nil)),
>> > line
>> > 351 in "geos_ts_c.cpp"
>> >   [12] GEOSIntersects(g1 = (nil), g2 = (nil)), line 139 in "geos_c.cpp"
>> >   [13] intersects(fcinfo = 0xfffffd7fffdf9110), line 2322 in
>> > "lwgeom_geos.c"
>> >   [14] ExecMakeFunctionResult(fcache = 0xfffffd7fffdf90d0, econtext =
>> > 0xbd5740, isNull = 0xbd6c28 "", isDone = (nil)), at 0x5a9d88
>> >   [15] ExecEvalAnd(andExpr = (nil), econtext = 0xbd5740, isNull =
>> > 0xbd6c28
>> > "", isDone = (nil)), at 0x5aaf23
>> >   [16] ExecProject(projInfo = 0xbd6c40, isDone = 0xfffffd7fffdf95bc), at
>> > 0x5ae659
>> >   [17] ExecResult(node = 0xbd5630), at 0x5ba7d0
>> >   [18] ExecProcNode(node = 0xbd5630), at 0x5a77ec
>> >   [19] standard_ExecutorRun(queryDesc = 0xbcd2e8, direction =
>> > ForwardScanDirection, count = 1), at 0x5a550c
>> >   [20] fmgr_sql(fcinfo = 0xfffffd7fffdf9880), at 0x5b1529
>> > _______________________________________________
>> > postgis-users mailing list
>> > postgis-users at postgis.refractions.net
>> > http://postgis.refractions.net/mailman/listinfo/postgis-users
>> >
>>
>>
>> --
>>
>>
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users at postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
>
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>



More information about the postgis-users mailing list