[PostGIS] #5661: Garden crash on ST_DFullyWithin
PostGIS
trac at osgeo.org
Mon Jan 29 19:33:14 PST 2024
#5661: Garden crash on ST_DFullyWithin
----------------------+---------------------------
Reporter: robe | Owner: pramsey
Type: defect | Status: new
Priority: blocker | Milestone: PostGIS 3.5.0
Component: postgis | Version: master
Resolution: | Keywords:
----------------------+---------------------------
Description changed by robe:
Old description:
> {{{
> SELECT
> ST_DFullyWithin('0102000020E610000005000000000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F'::geometry,
> ST_GeomFromText('POINT(-11.1111111 40)',4326),100);
> }}}
>
> my backtrace looks like this.
>
> {{{
> #0 0x0000000064d25eb2 in
> geos::operation::buffer::OffsetSegmentGenerator::createCircle(geos::geom::Coordinate
> const&, double) ()
> from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
> #1 0x0000000064d2041f in
> geos::operation::buffer::OffsetCurveBuilder::getLineCurve(geos::geom::CoordinateSequence
> const*, double, std::vector<geos::geom::CoordinateSequence*,
> std::allocator<geos::geom::CoordinateSequence*> >&) ()
> from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
> #2 0x0000000064d15a98 in
> geos::operation::buffer::BufferCurveSetBuilder::addLineString(geos::geom::LineString
> const*) ()
> from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
> #3 0x0000000064d15c6d in
> geos::operation::buffer::BufferCurveSetBuilder::add(geos::geom::Geometry
> const&) ()
> from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
> #4 0x0000000064d15db1 in
> geos::operation::buffer::BufferCurveSetBuilder::getCurves() () from
> C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
> #5 0x0000000064d11d0d in
> geos::operation::buffer::BufferBuilder::buffer(geos::geom::Geometry
> const*, double) ()
> from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
> #6 0x0000000064d16c29 in
> geos::operation::buffer::BufferOp::bufferOriginalPrecision() ()
> from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
> #7 0x0000000064d17365 in
> geos::operation::buffer::BufferOp::getResultGeometry(double) ()
> from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
> #8 0x0000000064d17709 in
> geos::operation::buffer::BufferOp::bufferOp(geos::geom::Geometry const*,
> double, int, int) ()
> from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
> #9 0x0000000064c80fd5 in geos::geom::Geometry::buffer(double, int) const
> ()
> from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
> #10 0x00000000053e817b in GEOSBuffer_r ()
> from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos_c.dll
> #11 0x000000006c55a393 in LWGEOM_dfullywithin (fcinfo=0x84dd448)
> at lwgeom_geos.c:3556
> #12 0x0000000000615f2e in ExecInterpExpr (state=0x84dd368,
> econtext=0x84dd5c8, isnull=<optimized out>) at execExprInterp.c:758
> #13 0x000000000071a651 in ExecEvalExprSwitchContext (isNull=0x52deb8c,
> econtext=<optimized out>, state=0x84dd368)
> at ../../../../src/include/executor/executor.h:355
> #14 evaluate_expr (expr=<optimized out>,
> result_type=result_type at entry=16,
> result_typmod=result_typmod at entry=-1,
> result_collation=result_collation at entry=0) at clauses.c:4902
> #15 0x000000000071c138 in evaluate_function (context=0x52df030,
> func_tuple=0x84720a8, funcvariadic=false, args=0x84c7000,
> input_collid=0,
> result_collid=0, result_typmod=-1, result_type=16, funcid=122240)
> at clauses.c:4409
> #16 simplify_function (funcid=122240, result_type=16, result_typmod=-1,
> result_collid=result_collid at entry=0,
> input_collid=input_collid at entry=0,
> args_p=args_p at entry=0x52ded70, funcvariadic=funcvariadic at entry=false,
> process_args=process_args at entry=true,
> allow_non_const=allow_non_const at entry=true,
> context=context at entry=0x52df030) at clauses.c:3997
> #17 0x000000000071a9c5 in eval_const_expressions_mutator (node=0x84c6888,
> context=0x52df030) at clauses.c:2503
> #18 0x0000000000692eb6 in expression_tree_mutator_impl (
> node=node at entry=0x84c68d8,
> mutator=mutator at entry=0x71a6f0 <eval_const_expressions_mutator>,
> context=context at entry=0x52df030) at nodeFuncs.c:3516
> #19 0x000000000071a945 in eval_const_expressions_mutator (node=0x84c68d8,
> context=0x52df030) at clauses.c:3616
> #20 0x0000000000693604 in expression_tree_mutator_impl (
> node=node at entry=0x84c6928,
> mutator=mutator at entry=0x71a6f0 <eval_const_expressions_mutator>,
> context=context at entry=0x52df030) at nodeFuncs.c:3383
> #21 0x000000000071a945 in eval_const_expressions_mutator (node=0x84c6928,
> context=context at entry=0x52df030) at clauses.c:3616
> #22 0x000000000071bfa4 in eval_const_expressions
> (root=root at entry=0x84c6a18,
> node=<optimized out>) at clauses.c:2183
> #23 0x00000000006fd52e in preprocess_expression
> (root=root at entry=0x84c6a18,
> expr=<optimized out>, kind=kind at entry=1) at planner.c:1144
> #24 0x0000000000706167 in subquery_planner (glob=glob at entry=0x7b541a0,
> parse=<optimized out>, parse at entry=0x7b542b0,
> parent_root=parent_root at entry=0x0,
> hasRecursion=hasRecursion at entry=false,
> tuple_fraction=tuple_fraction at entry=0) at planner.c:810
> #25 0x00000000007069cf in standard_planner (parse=0x7b542b0,
> query_string=<optimized out>, cursorOptions=2048,
> boundParams=<optimized out>) at planner.c:413
> #26 0x00000000007efe3a in pg_plan_query (querytree=0x7b542b0,
> query_string=0x7b52e38 "SELECT
> ST_DFullyWithin('0102000020E610000005", '0' <repeats 18 times>, "F07F",
> '0' <repeats 12 times>, "F07F", '0' <repeats 12 times>, "F07F", '0'
> <repeats 12 times>, "F07F", '0' <repeats 12 times>, "F07F", '0' <repeats
> 12 times>, "F07F", '0' <repeats 12 times>, "F07F", '0' <repeats 12
> times>, "F07F", '0' <repeats 12 times>, "F07F000000"...,
> cursorOptions=2048,
> boundParams=0x0) at postgres.c:904
> #27 0x00000000007eff41 in pg_plan_queries (querytrees=0x84c69c8,
> query_string=query_string at entry=0x7b52e38 "SELECT
> ST_DFullyWithin('0102000020E610000005", '0' <repeats 18 times>, "F07F",
> '0' <repeats 12 times>, "F07F", '0' <repeats 12 times>, "F07F", '0'
> <repeats 12 times>, "F07F", '0' <repeats 12 times>, "F07F", '0' <repeats
> 12 times>, "F07F", '0' <repeats 12 times>, "F07F", '0' <repeats 12
> times>, "F07F", '0' <repeats 12 times>, "F07F000000"...,
> cursorOptions=cursorOptions at entry=2048,
> boundParams=boundParams at entry=0x0)
> at postgres.c:996
> #28 0x00000000007f02c5 in exec_simple_query (
> query_string=0x7b52e38 "SELECT
> ST_DFullyWithin('0102000020E610000005", '0' <repeats 18 times>, "F07F",
> '0' <repeats 12 times>, "F07F", '0' <repeats 12 times>, "F07F", '0'
> <repeats 12 times>, "F07F", '0' <repeats 12 times>, "F07F", '0' <repeats
> 12 times>, "F07F", '0' <repeats 12 times>, "F07F", '0' <repeats 12
> times>, "F07F", '0' <repeats 12 times>, "F07F000000"...) at
> postgres.c:1193
> #29 0x00000000007f4f05 in PostgresMain (dbname=0x7ac8758
> "postgis_garden_35",
> username=0x62e8fb8 "postgres") at postgres.c:4637
> #30 0x00000000007523f2 in BackendRun (port=0x52df7c0, port=0x52df7c0)
> at postmaster.c:4464
> #31 SubPostmasterMain (argc=argc at entry=3, argv=argv at entry=0x62e6f90)
> at postmaster.c:4960
> #32 0x00000000009b3944 in main (argc=3, argv=0x62e6f90) at main.c:190
>
> }}}
>
> I know my geos is old, have to figure out why I'm compiling with this
> old version, but berrie64 is complaining about the same thing and is
> running with GEOS 3.13 (master), so assume the problem exists regardless
> of geos version
New description:
{{{
SELECT
ST_DFullyWithin('0102000020E610000005000000000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F'::geometry
,
ST_GeomFromText('POINT(-11.1111111 40)',4326),100);
}}}
my backtrace looks like this.
{{{
#0 0x0000000064d25eb2 in
geos::operation::buffer::OffsetSegmentGenerator::createCircle(geos::geom::Coordinate
const&, double) ()
from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
#1 0x0000000064d2041f in
geos::operation::buffer::OffsetCurveBuilder::getLineCurve(geos::geom::CoordinateSequence
const*, double, std::vector<geos::geom::CoordinateSequence*,
std::allocator<geos::geom::CoordinateSequence*> >&) ()
from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
#2 0x0000000064d15a98 in
geos::operation::buffer::BufferCurveSetBuilder::addLineString(geos::geom::LineString
const*) ()
from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
#3 0x0000000064d15c6d in
geos::operation::buffer::BufferCurveSetBuilder::add(geos::geom::Geometry
const&) ()
from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
#4 0x0000000064d15db1 in
geos::operation::buffer::BufferCurveSetBuilder::getCurves() () from
C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
#5 0x0000000064d11d0d in
geos::operation::buffer::BufferBuilder::buffer(geos::geom::Geometry
const*, double) ()
from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
#6 0x0000000064d16c29 in
geos::operation::buffer::BufferOp::bufferOriginalPrecision() ()
from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
#7 0x0000000064d17365 in
geos::operation::buffer::BufferOp::getResultGeometry(double) ()
from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
#8 0x0000000064d17709 in
geos::operation::buffer::BufferOp::bufferOp(geos::geom::Geometry const*,
double, int, int) ()
from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
#9 0x0000000064c80fd5 in geos::geom::Geometry::buffer(double, int) const
()
from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos.dll
#10 0x00000000053e817b in GEOSBuffer_r ()
from C:\ming64gcc81\projects\geos\rel-3.12.1w64gcc81\bin\libgeos_c.dll
#11 0x000000006c55a393 in LWGEOM_dfullywithin (fcinfo=0x84dd448)
at lwgeom_geos.c:3556
#12 0x0000000000615f2e in ExecInterpExpr (state=0x84dd368,
econtext=0x84dd5c8, isnull=<optimized out>) at execExprInterp.c:758
#13 0x000000000071a651 in ExecEvalExprSwitchContext (isNull=0x52deb8c,
econtext=<optimized out>, state=0x84dd368)
at ../../../../src/include/executor/executor.h:355
#14 evaluate_expr (expr=<optimized out>, result_type=result_type at entry=16,
result_typmod=result_typmod at entry=-1,
result_collation=result_collation at entry=0) at clauses.c:4902
#15 0x000000000071c138 in evaluate_function (context=0x52df030,
func_tuple=0x84720a8, funcvariadic=false, args=0x84c7000,
input_collid=0,
result_collid=0, result_typmod=-1, result_type=16, funcid=122240)
at clauses.c:4409
#16 simplify_function (funcid=122240, result_type=16, result_typmod=-1,
result_collid=result_collid at entry=0,
input_collid=input_collid at entry=0,
args_p=args_p at entry=0x52ded70, funcvariadic=funcvariadic at entry=false,
process_args=process_args at entry=true,
allow_non_const=allow_non_const at entry=true,
context=context at entry=0x52df030) at clauses.c:3997
#17 0x000000000071a9c5 in eval_const_expressions_mutator (node=0x84c6888,
context=0x52df030) at clauses.c:2503
#18 0x0000000000692eb6 in expression_tree_mutator_impl (
node=node at entry=0x84c68d8,
mutator=mutator at entry=0x71a6f0 <eval_const_expressions_mutator>,
context=context at entry=0x52df030) at nodeFuncs.c:3516
#19 0x000000000071a945 in eval_const_expressions_mutator (node=0x84c68d8,
context=0x52df030) at clauses.c:3616
#20 0x0000000000693604 in expression_tree_mutator_impl (
node=node at entry=0x84c6928,
mutator=mutator at entry=0x71a6f0 <eval_const_expressions_mutator>,
context=context at entry=0x52df030) at nodeFuncs.c:3383
#21 0x000000000071a945 in eval_const_expressions_mutator (node=0x84c6928,
context=context at entry=0x52df030) at clauses.c:3616
#22 0x000000000071bfa4 in eval_const_expressions
(root=root at entry=0x84c6a18,
node=<optimized out>) at clauses.c:2183
#23 0x00000000006fd52e in preprocess_expression
(root=root at entry=0x84c6a18,
expr=<optimized out>, kind=kind at entry=1) at planner.c:1144
#24 0x0000000000706167 in subquery_planner (glob=glob at entry=0x7b541a0,
parse=<optimized out>, parse at entry=0x7b542b0,
parent_root=parent_root at entry=0x0,
hasRecursion=hasRecursion at entry=false,
tuple_fraction=tuple_fraction at entry=0) at planner.c:810
#25 0x00000000007069cf in standard_planner (parse=0x7b542b0,
query_string=<optimized out>, cursorOptions=2048,
boundParams=<optimized out>) at planner.c:413
#26 0x00000000007efe3a in pg_plan_query (querytree=0x7b542b0,
query_string=0x7b52e38 "SELECT ST_DFullyWithin('0102000020E610000005",
'0' <repeats 18 times>, "F07F", '0' <repeats 12 times>, "F07F", '0'
<repeats 12 times>, "F07F", '0' <repeats 12 times>, "F07F", '0' <repeats
12 times>, "F07F", '0' <repeats 12 times>, "F07F", '0' <repeats 12 times>,
"F07F", '0' <repeats 12 times>, "F07F", '0' <repeats 12 times>,
"F07F000000"..., cursorOptions=2048,
boundParams=0x0) at postgres.c:904
#27 0x00000000007eff41 in pg_plan_queries (querytrees=0x84c69c8,
query_string=query_string at entry=0x7b52e38 "SELECT
ST_DFullyWithin('0102000020E610000005", '0' <repeats 18 times>, "F07F",
'0' <repeats 12 times>, "F07F", '0' <repeats 12 times>, "F07F", '0'
<repeats 12 times>, "F07F", '0' <repeats 12 times>, "F07F", '0' <repeats
12 times>, "F07F", '0' <repeats 12 times>, "F07F", '0' <repeats 12 times>,
"F07F", '0' <repeats 12 times>, "F07F000000"...,
cursorOptions=cursorOptions at entry=2048,
boundParams=boundParams at entry=0x0)
at postgres.c:996
#28 0x00000000007f02c5 in exec_simple_query (
query_string=0x7b52e38 "SELECT ST_DFullyWithin('0102000020E610000005",
'0' <repeats 18 times>, "F07F", '0' <repeats 12 times>, "F07F", '0'
<repeats 12 times>, "F07F", '0' <repeats 12 times>, "F07F", '0' <repeats
12 times>, "F07F", '0' <repeats 12 times>, "F07F", '0' <repeats 12 times>,
"F07F", '0' <repeats 12 times>, "F07F", '0' <repeats 12 times>,
"F07F000000"...) at postgres.c:1193
#29 0x00000000007f4f05 in PostgresMain (dbname=0x7ac8758
"postgis_garden_35",
username=0x62e8fb8 "postgres") at postgres.c:4637
#30 0x00000000007523f2 in BackendRun (port=0x52df7c0, port=0x52df7c0)
at postmaster.c:4464
#31 SubPostmasterMain (argc=argc at entry=3, argv=argv at entry=0x62e6f90)
at postmaster.c:4960
#32 0x00000000009b3944 in main (argc=3, argv=0x62e6f90) at main.c:190
}}}
I know my geos is old, have to figure out why I'm compiling with this old
version, but berrie64 is complaining about the same thing and is running
with GEOS 3.13 (master), so assume the problem exists regardless of geos
version
--
--
Ticket URL: <https://trac.osgeo.org/postgis/ticket/5661#comment:1>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.
More information about the postgis-tickets
mailing list