Opened 6 years ago

Closed 6 years ago

#4117 closed defect (fixed)

Regress: Failures when some tests are run in parallel mode

Reported by: Algunenano Owned by: Algunenano
Priority: low Milestone: PostGIS 2.5.0
Component: postgis Version: master
Keywords: Cc:

Description

Running PG11 with the costs tweaked to favor parallel plans I get an error due to the order or the geometries in ST_Collect (which is PARALLEL SAFE):

-GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(2 2,3 3))|0700020100020202000204040202
-GEOMETRYCOLLECTION(MULTIPOINT(1 1,2 2),POINT(78 -78),POLYGON((1 1,1 2,2 2,2 1,1 1)))|0700030400020202020201009c019b010300010502020002020000010100
+GEOMETRYCOLLECTION(LINESTRING(2 2,3 3),POINT(1 1))|0700020200020404020201000202
+GEOMETRYCOLLECTION(POLYGON((1 1,1 2,2 2,2 1,1 1)),POINT(78 -78),MULTIPOINT(1 1,2 2))|070003030001050202000202000001010001009c019b0104000202020202

The plan:

template_postgis=# explain analyze select st_astext(st_collect(g::geometry)), encode(ST_AsTWKB(ST_Collect(g::geometry),0),'hex') from
(
select 'MULTIPOINT((1 1),(2 2))'::text g
union all
select 'POINT(78 -78)'::text g
union all
select 'POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))'::text g
) foo;
                                                QUERY PLAN                                                
----------------------------------------------------------------------------------------------------------
 Aggregate  (cost=18.60..771.60 rows=1 width=64) (actual time=13.720..13.720 rows=1 loops=1)
   ->  Gather  (cost=0.10..4.60 rows=3 width=32) (actual time=0.392..13.573 rows=3 loops=1)
         Workers Planned: 2
         Workers Launched: 2
         ->  Parallel Append  (cost=0.00..4.50 rows=1 width=32) (actual time=0.002..0.003 rows=1 loops=3)
               ->  Result  (cost=0.00..1.00 rows=1 width=32) (actual time=0.000..0.000 rows=1 loops=1)
               ->  Result  (cost=0.00..1.00 rows=1 width=32) (actual time=0.001..0.001 rows=1 loops=1)
               ->  Result  (cost=0.00..1.00 rows=1 width=32) (actual time=0.003..0.003 rows=1 loops=1)
 Planning Time: 0.157 ms
 Execution Time: 14.668 ms
(10 rows)

I'll try to force the order to avoid unpredictability.

Change History (2)

comment:1 by Algunenano, 6 years ago

Summary: TWKB regress: Failures when some tests are run in parallelRegress: Failures when some tests are run in parallel mode

Some other broken tests:

  • rt_gdalwarp_expected:
     1|0|0|500|500|2|-2|0|0|0|1|250000|63750000|255|0|255|255
    -2|0|0|500|100|2|-10|0|0|0|1|50000|12750000|255|0|255|255
    -3|0|0|250|800|4|-1.25|0|0|0|1|200000|51000000|255|0|255|255
     4|0|0|500|500|2|-2|0|0|0|1|250000|63750000|255|0|255|255
    +3|0|0|250|800|4|-1.25|0|0|0|1|200000|51000000|255|0|255|255
    +2|0|0|500|100|2|-10|0|0|0|1|50000|12750000|255|0|255|255
    
  • rt_setvalues_geomval:
    -1|{2,3}|(1,"{{99,99,99,99,99},{99,99,99,99,NULL},{99,99,99,99,NULL},{99,99,99,99,NULL},{NULL,NULL,NULL,NULL,NULL}}")
    +1|{3,2}|(1,"{{99,99,99,99,99},{99,99,99,99,NULL},{99,99,99,99,NULL},{99,99,99,99,NULL},{NULL,NULL,NULL,NULL,NULL}}")
    
  • st_remedgenewface:
    -ERROR:  TopoGeom 2 in layer 1 (features.land_parcels.feature) cannot be represented healing faces 5 and 4
    +ERROR:  TopoGeom 3 in layer 1 (features.land_parcels.feature) cannot be represented healing faces 5 and 4
    
  • st_remedgemodface:
    -ERROR:  TopoGeom 2 in layer 1 (features.land_parcels.feature) cannot be represented healing faces 5 and 4
    +ERROR:  TopoGeom 3 in layer 1 (features.land_parcels.feature) cannot be represented healing faces 5 and 4
    

comment:2 by Raul Marin, 6 years ago

Resolution: fixed
Status: assignedclosed

In 16637:

Adapt regress tests for parallel plans

Closes #4117
Closes https://github.com/postgis/postgis/pull/266

Note: See TracTickets for help on using tickets.