Opened 9 years ago
Closed 9 years ago
#3122 closed defect (fixed)
Topology totopgeom crashes on PostgreSQL 9.5
Reported by: | robe | Owned by: | strk |
---|---|---|---|
Priority: | blocker | Milestone: | PostGIS PostgreSQL |
Component: | topology | Version: | master |
Keywords: | pg9.5 | Cc: |
Description
Just had debbie rebuild latest snapshot of 9.5 and regress on 2.2, and get this:
http://debbie.postgis.net:8080/view/PostGIS/job/PostGIS_Regress_PGDEV_Weekly/149/console
The first crash is in totopogeom. I suspect the others might be just cause postgres didn't restart in time.
regress/totopogeom .. failed (diff expected obtained: /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_2_pg9.5w64/test_36_diff) ----------------------------------------------------------------------------- --- regress/totopogeom_expected 2014-04-26 22:51:51.000000000 -0700 +++ /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_2_pg9.5w64/test_36_out 2015-05-19 10:12:46.000000000 -0700 @@ -21,27 +21,7 @@ POINT(0 0)|t LINESTRING(0 10,10 10)|t POLYGON((0 20,10 20,5 30,0 20),(2 22,8 22,5 28,2 22))|t -MULTIPOINT(0 -10,5 -10)|t -MULTILINESTRING((-1 10,-10 10),(-10 8,-2 9))|t -MULTIPOLYGON(((100 20,110 20,105 30,100 20),(102 22,108 22,105 28,102 22)),((80 20,90 20,90 60,80 20)))|t -GEOMETRYCOLLECTION(POINT(-100 -100),LINESTRING(-100 -90,-90 -90),POLYGON((-100 -80,-90 -80,-95 -70,-100 -80),(-98 -78,-92 -78,-95 -72,-98 -78)),MULTIPOINT(-100 -110,-95 -110),LINESTRING EMPTY,MULTILINESTRING((-101 -90,-110 -90),(-110 -92,-102 -91)),MULTIPOLYGON(((0 -80,10 -80,5 -70,0 -80),(2 -78,8 -78,5 -72,2 -78)),((-20 -80,-10 -80,-10 -40,-20 -80))))|GEOMETRYCOLLECTION(MULTIPOLYGON(((-100 -80,-95 -70,-90 -80,-100 -80),(-98 -78,-92 -78,-95 -72,-98 -78)),((0 -80,5 -70,10 -80,0 -80),(2 -78,8 -78,5 -72,2 -78)),((-20 -80,-10 -40,-10 -80,-20 -80))),MULTILINESTRING((-110 -92,-102 -91),(-101 -90,-110 -90),(-100 -90,-90 -90)),MULTIPOINT(-100 -110,-100 -100,-95 -110)) -MULTIPOINT EMPTY -MULTIPOINT EMPTY -MULTILINESTRING EMPTY -MULTILINESTRING EMPTY -MULTIPOLYGON EMPTY -MULTIPOLYGON EMPTY -GEOMETRYCOLLECTION EMPTY -tolerance_1|0.5 -tolerance_topo_1|0.5 -tolerance_0|0 -custom_search_path|0 -#1790.1|0|0 -#1790.2|0|0 -#1790.3|0|0 -#1968.1|0 -#1968.2|0 -tgup1.1|5|100|1 -tgup1.2|5|200|2 -tgup1.3|5|200|4 -Topology 'tt' dropped +server closed the connection unexpectedly + This probably means the server terminated abnormally + before or while processing the request. +connection to server was lost ----------------------------------------------------------------------------- regress/droptopology .. failed (diff expected obtained: /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_2_pg9.5w64/test_37_diff) ----------------------------------------------------------------------------- --- regress/droptopology_expected 2014-04-26 22:51:51.000000000 -0700 +++ /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_2_pg9.5w64/test_37_out 2015-05-19 10:12:46.000000000 -0700 @@ -1,6 +1 @@ -t -t -t -t -Topology 't1' dropped -Topology 't2' dropped +psql: FATAL: the database system is in recovery mode ----------------------------------------------------------------------------- regress/droptopogeometrycolumn .. failed (diff expected obtained: /var/lib/jenkins/workspace/postgis/regress_pgdev/tmp/2_2_pg9.5w64/test_38_diff)
Change History (4)
comment:1 by , 9 years ago
Keywords: | pg9.5 added |
---|
comment:2 by , 9 years ago
comment:3 by , 9 years ago
Just reran debbie, and Tom's fix noted here
> Since May 9th our Debian build bot has been crashing on one of our PostGIS > regression tests. > I tried the same exercise on my Mingw-w64 GCC 4.8.3 (with latest PostgreSQL > 9.5 - (dated 5/22) and also have crashing in same spot. > I isoloated the offending query in PostGIS to this: > with inp as ( select 'MULTIPOINT((0 -10),(5 -10))' ::geometry as g) > select St_AsText(g), ST_Equals(totopogeom(g, 'tt', 1)::geometry, g) from > inp; > Which produces a gdb backtrace: > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 4252.0x3cf4] > array_contain_compare (array1=array1(at)entry=0xdd94200, > array2=array2(at)entry=0xde69db8, collation=<optimized out>, > matchall=matchall(at)entry=1 '\001', fn_extra=0xdeac920) at arrayfuncs.c:4116 > 4116 if (isnull2) Hm. Just guessing from the location of the crash, but I'll bet I overlooked the case of an expanded array with no nulls, ie should be - bool isnull2 = nulls2[j]; + bool isnull2 = nulls2 ? nulls2[j] : false; I'll commit that in a few minutes, please confirm whether it fixes this for you. regards, tom lane
Fixed the issue.
comment:4 by , 9 years ago
Milestone: | PostGIS 2.2.0 → PostGIS PostgreSQL |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
Crashes on my development mingw64 machine too running latest PostgreSQL. Interstingly pramsey is getting no crashing on his mac.
I isolated the issue to multigeometries. The crashing starts at
Backtrace looks like this: