#4724 closed defect (fixed)
[raster] crash on null input to st_summarystatsagg()
Reported by: | Robins | Owned by: | robe |
---|---|---|---|
Priority: | medium | Milestone: | PostGIS 3.0.4 |
Component: | raster | Version: | 3.0.x |
Keywords: | st_summarystatsagg null | Cc: |
Description
Brief When st_summarystatsagg() is called with NULLs it crashes the server.
Repro
select public.st_summarystatsagg(NULL::raster, NULL::int4, NULL::bool) over (order by q) from generate_series(1,2) as e(q);
SQL Output
db=> SELECT postgis_full_version(); postgis_full_version --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------ POSTGIS="3.0.0 r17983" [EXTENSION] PGSQL="120" GEOS="3.8.0-CAPI-1.13.1 " PROJ="Rel. 5.2.0, September 15th, 2018" GDAL="GDAL 2.4.4, released 2020/01/08" LIBXML="2.9.1" LIBJSON="0.13.1" LIBP ROTOBUF="1.3.2" WAGYU="0.4.3 (Internal)" RASTER (1 row) db=> select version(); version --------------------------------------------------------------------------------------------------------- PostgreSQL 12.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11), 64-bit (1 row) db=> \dx List of installed extensions Name | Version | Schema | Description ----------------+---------+------------+--------------------------------------------------------------------- plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language postgis | 3.0.0 | public | PostGIS geometry, geography, and raster spatial types and functions postgis_raster | 3.0.0 | public | PostGIS raster types and functions (3 rows) db=> select public.st_summarystatsagg(NULL::raster, NULL::int4, NULL::bool) over (order by q) from generate_series(1,2) as e(q); server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. The connection to the server was lost. Attempting reset: Failed. !?>
Change History (11)
comment:1 by , 4 years ago
Owner: | changed from | to
---|
comment:2 by , 4 years ago
Milestone: | PostGIS 3.1.0 → PostGIS 3.0.4 |
---|
comment:3 by , 3 years ago
2 other Tickets, with similar (WINDOW PARTITION) crashes... may be they're related.
comment:4 by , 3 years ago
backtrace:
Backtrace stopped: previous frame inner to this frame (corrupt stack?) (gdb) cont Continuing. [Thread 11716.0x495c exited with code 0] Thread 1 received signal SIGSEGV, Segmentation fault. [Switching to Thread 11716.0x5b98] 0x000000006e3a7372 in RASTER_summaryStats_finalfn (fcinfo=0x520e9a0) at rtpg_statistics.c:854 854 if (state->stats->count > 0) {
comment:6 by , 3 years ago
I think I'm going to revert my change. I thought it fixed the issue but looks like simply putting an OVER(random()) on some of the other test queries still crashes the backend.
So I think this requires a bit more thought. A lot of the raster have the same function when a window clause is applied and I need to test window aggs in our garden teststo see which others are affected.
comment:10 by , 3 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
Going to push this to 3.0.4 to move out of 3.1.0 way and also since I think it is an issue in 3.0.4 too so should be fixed there as well.