[postgis-tickets] [PostGIS] #4582: ST_MakeValid: endless uncancellable calculation

PostGIS trac at osgeo.org
Mon Nov 18 04:34:23 PST 2019


#4582: ST_MakeValid: endless uncancellable calculation
---------------------+---------------------------
 Reporter:  komzpa   |      Owner:  pramsey
     Type:  defect   |     Status:  new
 Priority:  medium   |  Milestone:  PostGIS 2.5.4
Component:  postgis  |    Version:  2.5.x
 Keywords:           |
---------------------+---------------------------
 PostGIS built for GEOS 3.7 with GEOS 3.8. Same on 3.7 and 2.5.

 Polygon is natural disaster extent.

 {{{│ POSTGIS="3.0.0 r17983" [EXTENSION] PGSQL="120"
 GEOS="3.8.0-CAPI-1.13.1 " SFCGAL="1.3.7" PROJ="Rel. 5.2.0, September 15th,
 2018" GDAL="GDAL 2.4.2, released 2019/06/28" LIBXML="2.9.4"
 LIBJSON="0.13.1" LIBPROTOBUF="1.3.1" WAGYU="0.4.3 (Internal)" RASTER │}}}

 {{{
 0x00007f436c66b1f6 in
 geos::geom::GeometryCollection::getCoordinateDimension() const () from
 /usr/lib/x86_64-linux-gnu/libgeos-3.8.0.so
 (gdb) bt full
 #0  0x00007f436c66b1f6 in
 geos::geom::GeometryCollection::getCoordinateDimension() const () from
 /usr/lib/x86_64-linux-gnu/libgeos-3.8.0.so
 No symbol table info available.
 #1  0x00007f436c6dffc0 in
 geos::operation::overlay::OverlayOp::labelIncompleteNode(geos::geomgraph::Node*,
 int) () from /usr/lib/x86_64-linux-gnu/libgeos-3.8.0.so
 No symbol table info available.
 #2  0x00007f436c6e0165 in
 geos::operation::overlay::OverlayOp::labelIncompleteNodes() () from
 /usr/lib/x86_64-linux-gnu/libgeos-3.8.0.so
 No symbol table info available.
 #3  0x00007f436c6e13a2 in
 geos::operation::overlay::OverlayOp::computeOverlay(geos::operation::overlay::OverlayOp::OpCode)
 () from /usr/lib/x86_64-linux-gnu/libgeos-3.8.0.so
 No symbol table info available.
 #4  0x00007f436c6e16c9 in
 geos::operation::overlay::OverlayOp::getResultGeometry(geos::operation::overlay::OverlayOp::OpCode)
 () from /usr/lib/x86_64-linux-gnu/libgeos-3.8.0.so
 No symbol table info available.
 #5  0x00007f436c6e1b4c in
 geos::operation::overlay::OverlayOp::overlayOp(geos::geom::Geometry
 const*, geos::geom::Geometry const*,
 geos::operation::overlay::OverlayOp::OpCode) () from /usr/lib/x86_64
 -linux-gnu/libgeos-3.8.0.so
 No symbol table info available.
 #6  0x00007f436c66a0de in std::unique_ptr<geos::geom::Geometry,
 std::default_delete<geos::geom::Geometry> >
 geos::geom::BinaryOp<geos::operation::overlay::overlayOp>(geos::geom::Geometry
 const*, geos::geom::Geometry const*, geos::operation::overlay::overlayOp)
 () from /usr/lib/x86_64-linux-gnu/libgeos-3.8.0.so
 No symbol table info available.
 #7  0x00007f436c667b23 in
 geos::geom::Geometry::difference(geos::geom::Geometry const*) const ()
 from /usr/lib/x86_64-linux-gnu/libgeos-3.8.0.so
 No symbol table info available.
 #8  0x00007f436c812819 in GEOSDifference_r () from /usr/lib/x86_64-linux-
 gnu/libgeos_c.so.1
 No symbol table info available.
 #9  0x00007f436c930e0c in LWGEOM_GEOS_makeValidPolygon (gin=<optimized
 out>) at lwgeom_geos_clean.c:390
         pi = 0x55bdaf6bcb80
         po = 0x55bdaff114c0
         geos_cut_edges = 0x55bdb05e4fd0
         collapse_points = <optimized out>
         nvgeoms = 0
         gout = <optimized out>
         geos_bound = 0x55bdaefc60a0
         geos_area = <optimized out>
         vgeoms = {0x55bdaece0cd0, 0x55bdaece2ce0, 0x55bdae95b990}
         gout = <optimized out>
         geos_bound = <optimized out>
         geos_cut_edges = <optimized out>
         geos_area = <optimized out>
         collapse_points = <optimized out>
         vgeoms = <optimized out>
         nvgeoms = <optimized out>
         __PRETTY_FUNCTION__ = "LWGEOM_GEOS_makeValidPolygon"
         pi = <optimized out>
         po = <optimized out>
         new_area = <optimized out>
         new_area_bound = <optimized out>
         symdif = <optimized out>
         new_cut_edges = <optimized out>
 #10 LWGEOM_GEOS_makeValid (gin=<optimized out>) at lwgeom_geos_clean.c:787
         gout = <optimized out>
         ret_char = <optimized out>
         gout = <optimized out>
         ret_char = <optimized out>
         typname = <optimized out>
 #11 LWGEOM_GEOS_makeValid (gin=<optimized out>) at lwgeom_geos_clean.c:706
         gout = <optimized out>
         ret_char = <optimized out>
         typname = <optimized out>
 #12 0x00007f436c9316a6 in lwgeom_make_valid (lwgeom_in=0x55bdae95b990) at
 lwgeom_geos_clean.c:898
         is3d = 0
         geosgeom = 0x55bdaf6a1eb0
         geosout = <optimized out>
         lwgeom_out = <optimized out>
         __PRETTY_FUNCTION__ = "lwgeom_make_valid"
 #13 0x00007f436c881755 in ST_MakeValid (fcinfo=0x55bdae524520) at
 lwgeom_geos_clean.c:68
         in = 0x55bdaf282bc8
         out = <optimized out>
         lwgeom_in = <optimized out>
         lwgeom_out = <optimized out>
 #14 0x000055bdadcba0b5 in ExecInterpExpr (state=0x55bdae524440,
 econtext=0x55bdae524980, isnull=<optimized out>) at
 ./build/../src/backend/executor/execExprInterp.c:649
         fcinfo = 0x55bdae524520
         args = 0x55bdae524540
         argno = <optimized out>
         d = <optimized out>
         op = <optimized out>
         resultslot = 0x0
         innerslot = <optimized out>
         outerslot = <optimized out>
         scanslot = 0x0
         dispatch_table = {0x55bdadcb90b4 <ExecInterpExpr+196>,
 0x55bdadcb97f0 <ExecInterpExpr+2048>, 0x55bdadcb97c8
 <ExecInterpExpr+2008>, 0x55bdadcb97a0 <ExecInterpExpr+1968>,
 0x55bdadcb9768 <ExecInterpExpr+1912>, 0x55bdadcb9720
 <ExecInterpExpr+1840>, 0x55bdadcb96f0 <ExecInterpExpr+1792>,
           0x55bdadcb96e0 <ExecInterpExpr+1776>, 0x55bdadcb9590
 <ExecInterpExpr+1440>, 0x55bdadcb98b0 <ExecInterpExpr+2240>,
 0x55bdadcb9890 <ExecInterpExpr+2208>, 0x55bdadcb9750
 <ExecInterpExpr+1888>, 0x55bdadcb9560 <ExecInterpExpr+1392>,
 0x55bdadcb9528 <ExecInterpExpr+1336>, 0x55bdadcb9820
 <ExecInterpExpr+2096>,
           0x55bdadcb9850 <ExecInterpExpr+2144>, 0x55bdadcb96b8
 <ExecInterpExpr+1736>, 0x55bdadcb9680 <ExecInterpExpr+1680>,
 0x55bdadcb9638 <ExecInterpExpr+1608>, 0x55bdadcb9618
 <ExecInterpExpr+1576>, 0x55bdadcb95f8 <ExecInterpExpr+1544>,
 0x55bdadcb9040 <ExecInterpExpr+80>, 0x55bdadcb904b <ExecInterpExpr+91>,
           0x55bdadcb95b0 <ExecInterpExpr+1472>, 0x55bdadcb9070
 <ExecInterpExpr+128>, 0x55bdadcb907b <ExecInterpExpr+139>, 0x55bdadcb9ad0
 <ExecInterpExpr+2784>, 0x55bdadcb9ac0 <ExecInterpExpr+2768>,
 0x55bdadcb9a90 <ExecInterpExpr+2720>, 0x55bdadcb9a88
 <ExecInterpExpr+2712>, 0x55bdadcb9a70 <ExecInterpExpr+2688>,
           0x55bdadcb9a58 <ExecInterpExpr+2664>, 0x55bdadcb9a20
 <ExecInterpExpr+2608>, 0x55bdadcb9a00 <ExecInterpExpr+2576>,
 0x55bdadcb99d0 <ExecInterpExpr+2528>, 0x55bdadcb99c0
 <ExecInterpExpr+2512>, 0x55bdadcb99a0 <ExecInterpExpr+2480>,
 0x55bdadcb9948 <ExecInterpExpr+2392>, 0x55bdadcb9978
 <ExecInterpExpr+2440>,
           0x55bdadcb9920 <ExecInterpExpr+2352>, 0x55bdadcb98f0
 <ExecInterpExpr+2304>, 0x55bdadcb9fe0 <ExecInterpExpr+4080>,
 0x55bdadcb98d0 <ExecInterpExpr+2272>, 0x55bdadcb9fc0
 <ExecInterpExpr+4048>, 0x55bdadcba000 <ExecInterpExpr+4112>,
 0x55bdadcb9f98 <ExecInterpExpr+4008>, 0x55bdadcb9eb0
 <ExecInterpExpr+3776>,
           0x55bdadcb9e70 <ExecInterpExpr+3712>, 0x55bdadcb9e00
 <ExecInterpExpr+3600>, 0x55bdadcb9f30 <ExecInterpExpr+3904>,
 0x55bdadcb9e50 <ExecInterpExpr+3680>, 0x55bdadcba1f0
 <ExecInterpExpr+4608>, 0x55bdadcb9de0 <ExecInterpExpr+3568>,
 0x55bdadcb9dc8 <ExecInterpExpr+3544>, 0x55bdadcb9da0
 <ExecInterpExpr+3504>,
           0x55bdadcb9d80 <ExecInterpExpr+3472>, 0x55bdadcb9cd0
 <ExecInterpExpr+3296>, 0x55bdadcb9d30 <ExecInterpExpr+3392>,
 0x55bdadcb9cb0 <ExecInterpExpr+3264>, 0x55bdadcb9c90
 <ExecInterpExpr+3232>, 0x55bdadcb9c70 <ExecInterpExpr+3200>,
 0x55bdadcb9c50 <ExecInterpExpr+3168>, 0x55bdadcb9c30
 <ExecInterpExpr+3136>,
           0x55bdadcb9c10 <ExecInterpExpr+3104>, 0x55bdadcb9bf0
 <ExecInterpExpr+3072>, 0x55bdadcb9d10 <ExecInterpExpr+3360>,
 0x55bdadcb9f00 <ExecInterpExpr+3856>, 0x55bdadcb9b90
 <ExecInterpExpr+2976>, 0x55bdadcb9150 <ExecInterpExpr+352>, 0x55bdadcb9bd0
 <ExecInterpExpr+3040>, 0x55bdadcb9bb0 <ExecInterpExpr+3008>,
           0x55bdadcb9b70 <ExecInterpExpr+2944>, 0x55bdadcb9b48
 <ExecInterpExpr+2904>, 0x55bdadcb9338 <ExecInterpExpr+840>, 0x55bdadcb9b10
 <ExecInterpExpr+2848>, 0x55bdadcb9318 <ExecInterpExpr+808>, 0x55bdadcb9350
 <ExecInterpExpr+864>, 0x55bdadcb92f0 <ExecInterpExpr+768>, 0x55bdadcb90e0
 <ExecInterpExpr+240>,
           0x55bdadcb9260 <ExecInterpExpr+624>, 0x55bdadcb92b0
 <ExecInterpExpr+704>, 0x55bdadcb9200 <ExecInterpExpr+528>, 0x55bdadcb91c0
 <ExecInterpExpr+464>, 0x55bdadcb9478 <ExecInterpExpr+1160>, 0x55bdadcb9390
 <ExecInterpExpr+928>, 0x55bdadcb9370 <ExecInterpExpr+896>, 0x55bdadcb91a0
 <ExecInterpExpr+432>,
           0x55bdadcb90b0 <ExecInterpExpr+192>}
 }}}

-- 
Ticket URL: <https://trac.osgeo.org/postgis/ticket/4582>
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