[PostGIS] #5900: rt_elevation_functions fails on ppc64el

PostGIS trac at osgeo.org
Sun May 18 00:12:34 PDT 2025


#5900: rt_elevation_functions fails on ppc64el
----------------------------+---------------------------
 Reporter:  Bas Couwenberg  |      Owner:  robe
     Type:  defect          |     Status:  new
 Priority:  medium          |  Milestone:  PostGIS 3.5.4
Component:  raster          |    Version:  3.5.x
 Keywords:                  |
----------------------------+---------------------------
 The Debian package build for 3.5.3 fails on ppc64el:
 {{{
  /build/reproducible-
 path/postgis-3.5.3+dfsg/raster/test/regress/rt_elevation_functions ..Died
 at ./regress/run_test.pl line 979.
  failed (psql exited with an error: /tmp/pgis_reg/test_315_out)
 -----------------------------------------------------------------------------
 psql:rt_elevation_functions.sql:273: server closed the connection
 unexpectedly
         This probably means the server terminated abnormally
         before or while processing the request.
 psql:rt_elevation_functions.sql:273: error: connection to server was lost
 -----------------------------------------------------------------------------
 make[2]: *** [regress/runtest.mk:24: check-regress] Error 2
 make[2]: Leaving directory '/build/reproducible-path/postgis-3.5.3+dfsg'
 *** /tmp/pg_virtualenv.iM6Rnu/log/postgresql-17-regress.log (last 100
 lines) ***
 2025-05-18 06:19:45.874 UTC [18417] sbuild at postgis_reg-3.5 WARNING:
 Raster is NULL. Returning NULL
 2025-05-18 06:19:46.852 UTC [18455] sbuild at postgis_reg-3.5 ERROR:  SRIDS
 of geometry: 4326 and raster: 0 are not the same
 2025-05-18 06:19:46.852 UTC [18455] sbuild at postgis_reg-3.5 HINT:  Verify
 using ST_SRID function
 2025-05-18 06:19:46.852 UTC [18455] sbuild at postgis_reg-3.5 CONTEXT:
 PL/pgSQL function st_intersection(geometry,raster,integer) line 7 at RAISE
         SQL function "st_intersection" statement 1
 2025-05-18 06:19:46.852 UTC [18455] sbuild at postgis_reg-3.5 STATEMENT:
 SELECT '#4719' AS ticker,  r1.rid, ST_Intersection(
                         r1.rast, ST_Buffer(ST_SetSRID(ST_Point(1,2),
 4326),0.5)
                 )
                 FROM raster_intersection AS r1
                 WHERE r1.rid = 10;
 2025-05-18 06:19:48.097 UTC [18493] sbuild at postgis_reg-3.5 ERROR:
 RASTER_nMapAlgebra: Function provided must return a double precision,
 float, int or smallint
 2025-05-18 06:19:48.097 UTC [18493] sbuild at postgis_reg-3.5 STATEMENT:
 SELECT
                 rid,
                 ST_Value(
                         ST_MapAlgebra(
                                 ARRAY[ROW(rast, 1)]::rastbandarg[],
                                 'raster_nmapalgebra_test_bad_return(double
 precision[], int[], text[])'::regprocedure
                         ),
                         1, 1, 1
                 ) = 255
         FROM raster_nmapalgebra_in
         WHERE rid IN (2);
 2025-05-18 06:19:48.528 UTC [18512] sbuild at postgis_reg-3.5 ERROR:
 RASTER_nMapAlgebraExpr: Invalid pixel type: 4BUId
 2025-05-18 06:19:48.528 UTC [18512] sbuild at postgis_reg-3.5 STATEMENT:
 SELECT 'T8', ST_Value(rast, 1, 1), ST_Value(ST_MapAlgebra(rast, 1,
 '4BUId', '[rast] + 20', 2), 1, 1) FROM ST_TestRaster(0, 0, 100) rast;
 2025-05-18 06:19:48.539 UTC [18512] sbuild at postgis_reg-3.5 ERROR:
 division by zero
 2025-05-18 06:19:48.539 UTC [18512] sbuild at postgis_reg-3.5 CONTEXT:  SQL
 statement "SELECT ($1/0)::double precision"
 2025-05-18 06:19:48.539 UTC [18512] sbuild at postgis_reg-3.5 STATEMENT:
 SELECT ST_Value(rast, 1, 1),
             ST_Value(ST_MapAlgebra(rast, 1, NULL, '[rast]/0'), 1, 1)
         FROM ST_TestRaster(0, 0, 10) rast;
 2025-05-18 06:19:48.540 UTC [18512] sbuild at postgis_reg-3.5 ERROR:
 rtpg_nmapalgebraexpr_callback: rast2 argument specified in single-raster
 invocation
 2025-05-18 06:19:48.540 UTC [18512] sbuild at postgis_reg-3.5 STATEMENT:
 SELECT ST_Value(rast, 1, 1),
             ST_Value(ST_MapAlgebra(rast, 1, NULL, '[rast2.val]+1'), 1, 1)
         FROM ST_TestRaster(0, 0, 10) rast;
 2025-05-18 06:19:49.004 UTC [18531] sbuild at postgis_reg-3.5 ERROR:
 RASTER_nMapAlgebra: Mask dimensions must be odd
 2025-05-18 06:19:49.004 UTC [18531] sbuild at postgis_reg-3.5 STATEMENT:
 select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[],
 int[], text[])'::regprocedure,ARRAY[[1,1],[1,1],[1,1]]::double
 precision[],false) from raster_nmapalgebra_mask_in;
 2025-05-18 06:19:49.004 UTC [18531] sbuild at postgis_reg-3.5 ERROR:
 RASTER_nMapAlgebra: Mask dimensions must be odd
 2025-05-18 06:19:49.004 UTC [18531] sbuild at postgis_reg-3.5 STATEMENT:
 select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[],
 int[], text[])'::regprocedure,ARRAY[[1,1,1],[1,1,1]]::double
 precision[],false) from raster_nmapalgebra_mask_in;
 2025-05-18 06:19:49.005 UTC [18531] sbuild at postgis_reg-3.5 ERROR:
 RASTER_nMapAlgebra: Mask dimensions must be odd
 2025-05-18 06:19:49.005 UTC [18531] sbuild at postgis_reg-3.5 STATEMENT:
 select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[],
 int[],
 text[])'::regprocedure,ARRAY[[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]]::double
 precision[],false) from raster_nmapalgebra_mask_in;
 2025-05-18 06:19:49.087 UTC [18531] sbuild at postgis_reg-3.5 ERROR:
 RASTER_nMapAlgebra: Mask Must be a 2D array
 2025-05-18 06:19:49.087 UTC [18531] sbuild at postgis_reg-3.5 STATEMENT:
 select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[],
 int[], text[])'::regprocedure,ARRAY[NULL]::double precision[],false) from
 raster_nmapalgebra_mask_in;
 2025-05-18 06:19:49.091 UTC [18531] sbuild at postgis_reg-3.5 ERROR:
 RASTER_nMapAlgebra: Mask Must be a 2D array
 2025-05-18 06:19:49.091 UTC [18531] sbuild at postgis_reg-3.5 STATEMENT:
 select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[],
 int[], text[])'::regprocedure,ARRAY[1]::double precision[],false) from
 raster_nmapalgebra_mask_in;
 2025-05-18 06:19:49.124 UTC [18531] sbuild at postgis_reg-3.5 ERROR:
 RASTER_nMapAlgebra: Mask dimensions must be odd
 2025-05-18 06:19:49.124 UTC [18531] sbuild at postgis_reg-3.5 STATEMENT:
 select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[],
 int[], text[])'::regprocedure,ARRAY[[1,1],[1,1],[1,1]]::double
 precision[],true) from raster_nmapalgebra_mask_in;
 2025-05-18 06:19:49.124 UTC [18531] sbuild at postgis_reg-3.5 ERROR:
 RASTER_nMapAlgebra: Mask dimensions must be odd
 2025-05-18 06:19:49.124 UTC [18531] sbuild at postgis_reg-3.5 STATEMENT:
 select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[],
 int[], text[])'::regprocedure,ARRAY[[1,1,1],[1,1,1]]::double
 precision[],true) from raster_nmapalgebra_mask_in;
 2025-05-18 06:19:49.132 UTC [18531] sbuild at postgis_reg-3.5 ERROR:
 RASTER_nMapAlgebra: Mask Must be a 2D array
 2025-05-18 06:19:49.132 UTC [18531] sbuild at postgis_reg-3.5 STATEMENT:
 select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[],
 int[], text[])'::regprocedure,ARRAY[NULL]::double precision[],true) from
 raster_nmapalgebra_mask_in;
 2025-05-18 06:19:49.134 UTC [18531] sbuild at postgis_reg-3.5 ERROR:
 RASTER_nMapAlgebra: Mask Must be a 2D array
 2025-05-18 06:19:49.134 UTC [18531] sbuild at postgis_reg-3.5 STATEMENT:
 select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[],
 int[], text[])'::regprocedure,ARRAY[1]::double precision[],true) from
 raster_nmapalgebra_mask_in;
 2025-05-18 06:19:49.165 UTC [18531] sbuild at postgis_reg-3.5 ERROR:
 RASTER_nMapAlgebra: Mask dimensions must be odd
 2025-05-18 06:19:49.165 UTC [18531] sbuild at postgis_reg-3.5 STATEMENT:
 select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[],
 int[], text[])'::regprocedure,ARRAY[[.5,.5],[.5,.5],[.5,.5]]::double
 precision[],true) from raster_nmapalgebra_mask_in;
 2025-05-18 06:19:49.168 UTC [18531] sbuild at postgis_reg-3.5 ERROR:
 RASTER_nMapAlgebra: Mask dimensions must be odd
 2025-05-18 06:19:49.168 UTC [18531] sbuild at postgis_reg-3.5 STATEMENT:
 select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[],
 int[], text[])'::regprocedure,ARRAY[[.5,.5,.5],[.5,.5,.5]]::double
 precision[],true) from raster_nmapalgebra_mask_in;
 2025-05-18 06:19:49.171 UTC [18531] sbuild at postgis_reg-3.5 ERROR:
 RASTER_nMapAlgebra: Mask Must be a 2D array
 2025-05-18 06:19:49.171 UTC [18531] sbuild at postgis_reg-3.5 STATEMENT:
 select st_mapalgebra(rast,1,'raster_nmapalgebra_test(double precision[],
 int[], text[])'::regprocedure,ARRAY[.5]::double precision[],true) from
 raster_nmapalgebra_mask_in;
 2025-05-18 06:19:52.486 UTC [11832] LOG:  server process (PID 18612) was
 terminated by signal 11: Segmentation fault
 2025-05-18 06:19:52.486 UTC [11832] DETAIL:  Failed process was running:
 /* with coverage */
         DO $$
         BEGIN
         -- this ONLY works for PostgreSQL version 9.1 or higher
         IF array_to_string(regexp_matches(split_part(version(), ' ', 2),
 E'([0-9]+)\.([0-9]+)'), '')::int > 90 THEN

                 INSERT INTO raster_elevation_out (
                         SELECT
                                 t1.rid,
                                 'slope',
                                 ST_Slope(ST_Union(t2.rast), 1, t1.rast) AS
 rast
                         FROM raster_elevation t1
                         CROSS JOIN raster_elevation t2
                         WHERE t1.rid != 0
                                 AND t2.rid != 0
                                 AND ST_Intersects(t1.rast, t2.rast)
                         GROUP BY t1.rid, t1.rast
                         ORDER BY t1.rid
                 ) UNION ALL (
                         SELECT
                                 t1.rid,
                                 'aspect',
                                 ST_Aspect(ST_Union(t2.rast), 1, t1.rast)
 AS rast
                         FROM raster_elevation t1
                         CROSS JOIN raster_elevation t2
                         WHERE t1.rid != 0
                                 AND t2.rid != 0
                                 AND ST_Intersects(t1.rast, t2.rast)
                         GROUP BY t1.rid, t1.rast
                         ORDER BY t1.rid
                 ) UNION ALL (
                         SELECT
                                 t1.rid,
                                 'hillshade',
                                 ST_Hillshade(ST_Union(t2.rast), 1,
 t1.rast) AS rast
                         FROM raster_elevation t1
                         CROSS JOIN raster_elevation t2
                         WHERE t1.rid != 0
                                 AND t2.rid != 0
                                 AND ST_Intersects(t1.rast, t2.ras
 2025-05-18 06:19:52.486 UTC [11832] LOG:  terminating any other active
 server processes
 2025-05-18 06:19:52.489 UTC [11832] LOG:  all server processes terminated;
 reinitializing
 Dropping cluster 17/regress ...
 }}}
 Full buildlogs:
 [https://buildd.debian.org/status/fetch.php?pkg=postgis&arch=ppc64el&ver=3.5.3%2Bdfsg-1%7Eexp1&stamp=1747544729&raw=0
 build1]
 [https://buildd.debian.org/status/fetch.php?pkg=postgis&arch=ppc64el&ver=3.5.3%2Bdfsg-1%7Eexp1&stamp=1747549194&raw=0
 build2]
-- 
Ticket URL: <https://trac.osgeo.org/postgis/ticket/5900>
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