[postgis-users] Query crashes Postgres?
Regina Obe
lr at pcorp.us
Wed Jan 27 01:10:39 PST 2021
Would help if you can provide versions of things
SELECT postgis_full_version(), version();
To confirm you are running latest micro of everything.
> -----Original Message-----
> From: postgis-users [mailto:postgis-users-bounces at lists.osgeo.org] On
> Behalf Of Luca Bertoncello
> Sent: Wednesday, January 27, 2021 2:32 AM
> To: postgis-users at lists.osgeo.org
> Subject: [postgis-users] Query crashes Postgres?
>
> Hi list!
>
> After about one months I got all Europe's data from OSM imported.
> Now I needed to create some help tables, so I fired these queries:
>
> CREATE TABLE city_admin_boundaries AS
> SELECT
> NEXTVAL('city_admin_boundaries_seq') AS id,
> planet_osm_polygon.way,
> planet_osm_polygon.admin_level,
> planet_osm_point.name,
> planet_osm_point.place,
> CASE
> WHEN (planet_osm_point.tags->'population' ~ '^[0-9]{1,8}$') THEN
> (planet_osm_point.tags->'population')::INTEGER ELSE 0
> END as population,
> (ST_Area(ST_Transform(planet_osm_polygon.way, 4326)::geography) /
> 1000000) AS km2
> FROM planet_osm_polygon
> JOIN (
> SELECT name, MAX(admin_level) AS al
> FROM planet_osm_polygon
> WHERE boundary = 'administrative' AND admin_level IN ('4', '6', '8') AND
> osm_id < 0 GROUP BY name
> ) size USING(name)
> JOIN planet_osm_point USING (name)
> WHERE planet_osm_polygon.boundary = 'administrative' AND
> planet_osm_polygon.admin_level = size.al AND (
> (
> planet_osm_polygon.admin_level IN ('6', '8') AND
> planet_osm_point.place IN ('city', 'town')
> ) OR
> (
> planet_osm_polygon.admin_level = '4' AND
> planet_osm_point.place = 'city'
> )
> ) AND
> planet_osm_polygon.osm_id < 0;
>
> CREATE TABLE city_boundaries AS
> SELECT NEXTVAL('city_boundaries_seq') AS id,
>
> ST_CollectionExtract(unnest(ST_ClusterWithin(planet_osm_polygon.way,
> 200)), 3)::geometry(MultiPolygon, 3857) as way
> FROM planet_osm_polygon, city_admin_boundaries
> WHERE landuse IN ('residential', 'retail', 'retail;residential', 'commercial',
> 'school', 'university', 'industrial',
> 'asphalt', 'cemetery', 'civic', 'civic_admin', 'concrete_surface',
> 'construction', 'education',
> 'educational', 'institutional', 'village') AND
> ST_Within(planet_osm_polygon.way, city_admin_boundaries.way)
> AND
> (
> (city_admin_boundaries.admin_level = '4' AND km2 >= 100) OR
> (
> population > 18000 AND
> (
> (city_admin_boundaries.admin_level = '6' AND km2 >=
> 50) OR
> (city_admin_boundaries.admin_level = '8' AND km2 >=
> 25)
> )
> ) OR
> (
> population > 10000 AND city_admin_boundaries.admin_level = '8'
> AND km2 >= 100
> )
> );
> ALTER TABLE city_boundaries OWNER TO _renderd;
>
> DELETE FROM city_boundaries WHERE ST_Area(ST_Buffer(way, -50)) < 50;
>
> UPDATE city_boundaries SET way =
> ST_Makevalid(ST_Multi(ST_Buffer(ST_Buffer(way, 300, 'join=miter'), -300,
> 'join=miter')));
>
> The table were created successfully (13828 rows the first, 108385 the
> seconds). The "DELETE" worked successfully, too, but on the UPDATE the
> process crashes...
>
> In PostgresSQL log I find:
>
> 2021-01-27 07:06:02.165 CET [582] LOG: Serverprozess (PID 10391) wurde von
> Signal 9 beendet: Get tet
> 2021-01-27 07:06:02.165 CET [582] DETAIL: Der fehlgeschlagene Prozess f hrte
> aus: UPDATE city_boundaries SET way =
> ST_Makevalid(ST_Multi(ST_Buffer(ST_Buffer(way, 300, 'join=miter'), -300,
> 'join=miter')));
> 2021-01-27 07:06:02.178 CET [582] LOG: aktive Serverprozesse werden
> abgebrochen
> 2021-01-27 07:06:02.179 CET [10238] postgres at gis WARNUNG: Verbindung
> wird abgebrochen wegen Absturz eines anderen Serverprozesses
> 2021-01-27 07:06:02.179 CET [10238] postgres at gis DETAIL: Der Postmaster
> hat diesen Serverprozess angewiesen, die aktuelle Transaktion zur ckzurollen
> und die Sitzung zu beenden, weil ein anderer Serverprozess abnormal
> beendet wurde und m glicherweise das Shared Memory verf lscht hat.
> 2021-01-27 07:06:02.179 CET [10238] postgres at gis TIPP: In einem Moment
> sollten Sie wieder mit der Datenbank verbinden und Ihren Befehl
> wiederholen k nnen.
> 2021-01-27 07:06:02.180 CET [10234] WARNUNG: Verbindung wird
> abgebrochen wegen Absturz eines anderen Serverprozesses
> 2021-01-27 07:06:02.180 CET [10234] DETAIL: Der Postmaster hat diesen
> Serverprozess angewiesen, die aktuelle Transaktion zur ckzurollen und die
> Sitzung zu beenden, weil ein anderer Serverprozess abnormal beendet
> wurde und m glicherweise das Shared Memory verf lscht hat.
> 2021-01-27 07:06:02.180 CET [10234] TIPP: In einem Moment sollten Sie
> wieder mit der Datenbank verbinden und Ihren Befehl wiederholen k nnen.
> 2021-01-27 07:06:02.997 CET [582] LOG: alle Serverprozesse beendet;
> initialisiere neu
> 2021-01-27 07:06:03.208 CET [10410] LOG: Datenbanksystem wurde
> unterbrochen; letzte bekannte Aktion am 2021-01-27 07:01:27 CET
> 2021-01-27 07:06:03.208 CET [10411] postgres at gis FATAL: das
> Datenbanksystem ist im Wiederherstellungsmodus
> 2021-01-27 07:06:03.786 CET [10410] LOG: Datenbanksystem wurde nicht
> richtig heruntergefahren; automatische Wiederherstellung l uft
> 2021-01-27 07:06:03.937 CET [10410] LOG: Redo beginnt bei 11F/22E1D520
> 2021-01-27 07:06:04.317 CET [10410] LOG: ung ltige Datensatzl nge bei
> 11F/24124828: 24 erwartet, 0 erhalten
> 2021-01-27 07:06:04.317 CET [10410] LOG: Redo fertig bei 11F/241247F0
> 2021-01-27 07:06:05.597 CET [582] LOG: Datenbanksystem ist bereit, um
> Verbindungen anzunehmen
>
> Of course, I didn't killed the query...
> I think, the problem could be "ung ltige Datensatzl nge bei
> 11F/24124828: 24 erwartet, 0 erhalten" (invalid data length...).
>
> The same query fired on a test server with just data from Saxony,
> Brandenburg and Czeck Republic worked fine.
> Could someone help me to solve the problem?
>
> Thanks
> Luca Bertoncello
> (lucabert at lucabert.de)
> _______________________________________________
> postgis-users mailing list
> postgis-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/postgis-users
More information about the postgis-users
mailing list