Opened 3 years ago

Closed 3 years ago

#4864 closed defect (fixed)

addedge test failure

Reported by: pramsey Owned by: strk
Priority: high Milestone: PostGIS 3.2.0
Component: topology Version: master
Keywords: Cc:

Description

This is against master postgis and master geos.

 POSTGIS="3.2.0dev 3.1.0rc1-104-g29e1db134" PGSQL="130" GEOS="3.10.0dev-CAPI-1.15.0" PROJ="8.0.0" LIBXML="2.9.4" LIBJSON="0.15" LIBPROTOBUF="1.3.3" WAGYU="0.5.0 (Internal)"

The regression seems to be an ordering thing

--- ./regress/addedge_expected	2019-11-28 14:49:43.000000000 -0800
+++ /tmp/pgis_reg/test_1_out	2021-03-01 13:49:19.000000000 -0800
@@ -17,8 +17,8 @@
 e6|6
 #770-1|7
 #770-2|8
-ERROR:  Edge intersects (not on endpoints) with existing edge 7 at or near point POINT(8 10)
-ERROR:  Edge intersects (not on endpoints) with existing edge 7 at or near point POINT(8 10)
+ERROR:  Edge intersects (not on endpoints) with existing edge 7 at or near point POINT(10 12)
+ERROR:  Edge intersects (not on endpoints) with existing edge 7 at or near point POINT(10 12)
 ERROR:  Edge intersects (not on endpoints) with existing edge 7 at or near point POINT(10 12)
 #770-1*|7
 1|0|0|-1|1|LINESTRING(0 0,8 0)

I find the topology tests completely opaque, so I am opening here.

Change History (8)

comment:1 by strk, 3 years ago

We should probably hide the detail of the error, which would mean changing the tests to catch the error and "massage" it before printing. This is assuming we have a double edge/edge intersection, with both old and new points intersecting, and GEOS versions behaving differently regarding to which one is output first (order…)

comment:2 by robe, 3 years ago

Component: postgistopology

Yap same issue on debbie:

13:59:16 -----------------------------------------------------------------------------
13:59:16 --- ./topology/test/regress/addedge_expected	2020-12-16 21:48:07.643162886 +0000
13:59:16 +++ /var/lib/jenkins/workspace/postgis/tmp/3_2_pg14w64/test_145_out	2021-03-02 18:59:16.058094181 +0000
13:59:16 @@ -17,8 +17,8 @@
13:59:16  e6|6
13:59:16  #770-1|7
13:59:16  #770-2|8
13:59:16 -ERROR:  Edge intersects (not on endpoints) with existing edge 7 at or near point POINT(8 10)
13:59:16 -ERROR:  Edge intersects (not on endpoints) with existing edge 7 at or near point POINT(8 10)
13:59:16 +ERROR:  Edge intersects (not on endpoints) with existing edge 7 at or near point POINT(10 12)
13:59:16 +ERROR:  Edge intersects (not on endpoints) with existing edge 7 at or near point POINT(10 12)
13:59:16  ERROR:  Edge intersects (not on endpoints) with existing edge 7 at or near point POINT(10 12)
13:59:16  #770-1*|7
13:59:16  1|0|0|-1|1|LINESTRING(0 0,8 0)
13:59:16 -----------------------------------------------------------------------------

comment:3 by strk, 3 years ago

I can't currently build GEOS master so cannot reproduce locally. See https://trac.osgeo.org/geos/ticket/1103 (and the workaround to that bug exposes another build failure so it's not going to be an quick fix for me)

comment:4 by strk, 3 years ago

It looks like ST_PointOnSurface(geom) in GEOS changed behavior when the input is MULTIPOINT(10 12, 8 10)

Version 0, edited 3 years ago by strk (next)

comment:5 by Sandro Santilli <strk@…>, 3 years ago

Resolution: fixed
Status: assignedclosed

In 289bb48/git:

Do not rely on ST_PointOnSurface ( MULTIPOINT )

The operation is not defined in that case, and different GEOS
version can return different values.

Closes #4864

comment:6 by robe, 3 years ago

Resolution: fixed
Status: closedreopened

This needs to be backported to 3.1 and probably 3.0 as well.

Getting this error on 3.1 with GEOS 3.9.2dev

 ./topology/test/regress/addedge .. failed (diff expected obtained: /projects/postgis/tmp/3.1.1dev_pg13_geos3.9_gdal3.2.0w64/test_143_diff)
-----------------------------------------------------------------------------
--- ./topology/test/regress/addedge_expected    2021-03-09 22:31:24.954846700 -0500
+++ /projects/postgis/tmp/3.1.1dev_pg13_geos3.9_gdal3.2.0w64/test_143_out       2021-03-09 22:40:28.949824100 -0500
@@ -17,7 +17,7 @@
 e6|6
 #770-1|7
 #770-2|8
-ERROR:  Edge intersects (not on endpoints) with existing edge 7 at or near point POINT(8 10)
+ERROR:  Edge intersects (not on endpoints) with existing edge 7 at or near point POINT(10 12)
 ERROR:  Edge intersects (not on endpoints) with existing edge 7 at or near point POINT(8 10)
 ERROR:  Edge intersects (not on endpoints) with existing edge 7 at or near point POINT(10 12)
 #770-1*|7

comment:7 by robe, 3 years ago

mislabeled last commit In 792a90a7/git:

comment:8 by strk, 3 years ago

Resolution: fixed
Status: reopenedclosed

I'm assuming this was fixed by the referenced commit above, closing accordingly

Note: See TracTickets for help on using tickets.