Opened 11 months ago

Closed 6 months 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 Changed 11 months ago by strk

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 Changed 11 months ago by robe

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 Changed 11 months ago by strk

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 Changed 11 months ago by strk

It looks like this query changes output with new GEOS:

SELECT ST_AsText(ST_PointOnSurface('MULTIPOINT(8 10, 10 12)'));

Old GEOS returned POINT(8 10) while newer one returns POINT(10 12)

Last edited 11 months ago by strk (previous) (diff)

comment:5 Changed 11 months ago by Sandro Santilli <strk@…>

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 Changed 11 months ago by robe

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 Changed 11 months ago by robe

mislabeled last commit In 792a90a7/git:

comment:8 Changed 6 months ago by strk

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.