Overv / openstreetmap-tile-server

Docker file for a minimal effort OpenStreetMap tile server
Apache License 2.0
1.2k stars 482 forks source link

Postgis Plugin: ERROR: could not resize shared memory segment "/PostgreSQL.2682777122" to 50438144 bytes: No space left on device #407

Closed ghevge closed 8 months ago

ghevge commented 8 months ago

I've set up a new openstreetmap-tile-server server running on a container. My docker compose file looks like below.

The server starts ok, but when I try to fetch tiles from it, I get errors like:

tile-service | (process:154): ERROR : 15:53:43.300: failed to render TILE default 6 16-23 16-23 tile-service | tile-service | (process:154): ERROR : 15:53:43.300: reason: Postgis Plugin: ERROR: could not resize shared memory segment "/PostgreSQL.2682777122" to 50438144 bytes: No space left on device

The postgres database volume still has about 600GB available. Do I have to define another volume for the rendered images? If yes where that volume should be mapped within the container?

Thanks

docker-compose.yaml:

version: "3.8"

services:
  tile-service:
    image: overv/openstreetmap-tile-server
    container_name: tile-service
    deploy:
      resources:
        limits:
          cpus: 15
          memory: 110G
    environment:
      - THREADS=29
      - FLAT_NODES=enabled
      - UPDATES=enabled
    volumes:
      - /data/database/:/data/database/
    networks:
      mw-network:
        aliases:
          - tile-service
    ports:
      - "8080:80"
    command: "run"

networks:
  mw-network:
    external:
      name: mw-network

errors:

tile-service    | [2024-01-08 15:53:01] 5255 start import from seq-nr , replag is
tile-service    |
tile-service    | ** (process:154): ERROR **: 15:53:43.300: failed to render TILE default 6 16-23 16-23
tile-service    |
tile-service    | ** (process:154): ERROR **: 15:53:43.300:   reason: Postgis Plugin: ERROR:  could not resize shared memory segment "/PostgreSQL.2682777122" to 50438144 bytes: No space left on device
tile-service    | in executeQuery Full sql was: 'SELECT ST_AsBinary("way") AS geom,"feature","way_pixels" FROM (SELECT
tile-service    |     way, way_pixels,
tile-service    |     COALESCE(wetland, landuse, "natural") AS feature
tile-service    |   FROM (SELECT
tile-service    |       way,
tile-service    |       ('landuse_' || (CASE WHEN landuse IN ('forest', 'farmland', 'residential', 'commercial', 'retail', 'industrial',
tile-service    |                                             'meadow', 'grass', 'village_green', 'vineyard', 'orchard') THEN landuse END)) AS landuse,
tile-service    |       ('natural_' || (CASE WHEN "natural" IN ('wood', 'sand', 'scree', 'shingle', 'bare_rock', 'heath', 'grassland', 'scrub') THEN "natural" END)) AS "natural",
tile-service    |       ('wetland_' || (CASE WHEN "natural" IN ('wetland', 'mud') THEN (CASE WHEN "natural" IN ('mud') THEN "natural" ELSE tags->'wetland' END) END)) AS wetland,
tile-service    |       way_area/NULLIF(POW(8.73566e+06*0.001*0.28,2),0) AS way_pixels,
tile-service    |       way_area
tile-service    |     FROM planet_osm_polygon
tile-service    |     WHERE (landuse IN ('forest', 'farmland', 'residential', 'commercial', 'retail', 'industrial', 'meadow', 'grass', 'village_green', 'vineyard', 'orchard')
tile-service    |       OR "natural" IN ('wood', 'wetland', 'mud', 'sand', 'scree', 'shingle', 'bare_rock', 'heath', 'grassland', 'scrub'))
tile-service    |       AND way_area > 0.01*2445.98::real*2445.98::real
tile-service    |       AND building IS NULL
tile-service    |   ) AS features
tile-service    |   ORDER BY way_area DESC, feature
tile-service    | ) AS landcover_low_zoom WHERE "way" && ST_SetSRID('BOX3D(-10331840.23925625 4696291.017843749,-4696291.017843749 10331840.23925625)'::box3d, 3857)'
tile-service    |
tile-service    |
tile-service    | ** (process:154): ERROR **: 15:53:53.727: failed to render TILE default 8 72-79 88-95
tile-service    |
tile-service    | ** (process:154): ERROR **: 15:53:53.728:   reason: Postgis Plugin: ERROR:  could not resize shared memory segment "/PostgreSQL.2144173044" to 25223168 bytes: No space left on device
tile-service    | in executeQuery Full sql was: 'SELECT ST_AsBinary("way") AS geom,"feature","way_pixels" FROM (SELECT
tile-service    |     way, way_pixels,
tile-service    |     COALESCE(wetland, landuse, "natural") AS feature
tile-service    |   FROM (SELECT
tile-service    |       way,
tile-service    |       ('landuse_' || (CASE WHEN landuse IN ('forest', 'farmland', 'residential', 'commercial', 'retail', 'industrial',
tile-service    |                                             'meadow', 'grass', 'village_green', 'vineyard', 'orchard') THEN landuse END)) AS landuse,
tile-service    |       ('natural_' || (CASE WHEN "natural" IN ('wood', 'sand', 'scree', 'shingle', 'bare_rock', 'heath', 'grassland', 'scrub') THEN "natural" END)) AS "natural",
tile-service    |       ('wetland_' || (CASE WHEN "natural" IN ('wetland', 'mud') THEN (CASE WHEN "natural" IN ('mud') THEN "natural" ELSE tags->'wetland' END) END)) AS wetland,
tile-service    |       way_area/NULLIF(POW(2.18392e+06*0.001*0.28,2),0) AS way_pixels,
tile-service    |       way_area
tile-service    |     FROM planet_osm_polygon
tile-service    |     WHERE (landuse IN ('forest', 'farmland', 'residential', 'commercial', 'retail', 'industrial', 'meadow', 'grass', 'village_green', 'vineyard', 'orchard')
tile-service    |       OR "natural" IN ('wood', 'wetland', 'mud', 'sand', 'scree', 'shingle', 'bare_rock', 'heath', 'grassland', 'scrub'))
tile-service    |       AND way_area > 0.01*611.496::real*611.496::real
tile-service    |       AND building IS NULL
tile-service    |   ) AS features
tile-service    |   ORDER BY way_area DESC, feature
tile-service    | ) AS landcover_low_zoom WHERE "way" && ST_SetSRID('BOX3D(-8844681.416939063 4931105.568735938,-7435794.111585938 6339992.874089061)'::box3d, 3857)'
tile-service    |
tile-service    |
tile-service    | ** (process:154): ERROR **: 15:53:54.018: failed to render TILE default 8 72-79 88-95
tile-service    |
tile-service    | ** (process:154): ERROR **: 15:53:54.019:   reason: Postgis Plugin: ERROR:  could not resize shared memory segment "/PostgreSQL.2430867618" to 25223168 bytes: No space left on device
tile-service    | in executeQuery Full sql was: 'SELECT ST_AsBinary("way") AS geom,"feature","way_pixels" FROM (SELECT
tile-service    |     way, way_pixels,
tile-service    |     COALESCE(wetland, landuse, "natural") AS feature
tile-service    |   FROM (SELECT
tile-service    |       way,
tile-service    |       ('landuse_' || (CASE WHEN landuse IN ('forest', 'farmland', 'residential', 'commercial', 'retail', 'industrial',
tile-service    |                                             'meadow', 'grass', 'village_green', 'vineyard', 'orchard') THEN landuse END)) AS landuse,
tile-service    |       ('natural_' || (CASE WHEN "natural" IN ('wood', 'sand', 'scree', 'shingle', 'bare_rock', 'heath', 'grassland', 'scrub') THEN "natural" END)) AS "natural",
tile-service    |       ('wetland_' || (CASE WHEN "natural" IN ('wetland', 'mud') THEN (CASE WHEN "natural" IN ('mud') THEN "natural" ELSE tags->'wetland' END) END)) AS wetland,
tile-service    |       way_area/NULLIF(POW(2.18392e+06*0.001*0.28,2),0) AS way_pixels,
tile-service    |       way_area
tile-service    |     FROM planet_osm_polygon
tile-service    |     WHERE (landuse IN ('forest', 'farmland', 'residential', 'commercial', 'retail', 'industrial', 'meadow', 'grass', 'village_green', 'vineyard', 'orchard')
tile-service    |       OR "natural" IN ('wood', 'wetland', 'mud', 'sand', 'scree', 'shingle', 'bare_rock', 'heath', 'grassland', 'scrub'))
tile-service    |       AND way_area > 0.01*611.496::real*611.496::real
tile-service    |       AND building IS NULL
tile-service    |   ) AS features
tile-service    |   ORDER BY way_area DESC, feature
tile-service    | ) AS landcover_low_zoom WHERE "way" && ST_SetSRID('BOX3D(-8844681.416939063 4931105.568735938,-7435794.111585938 6339992.874089061)'::box3d, 3857)'
tile-service    |
tile-service    |
tile-service    | ** (process:154): ERROR **: 15:53:54.220: failed to render TILE default 8 72-79 88-95
tile-service    |
tile-service    | ** (process:154): ERROR **: 15:53:54.221:   reason: Postgis Plugin: ERROR:  could not resize shared memory segment "/PostgreSQL.3140335238" to 25223168 bytes: No space left on device
tile-service    | in executeQuery Full sql was: 'SELECT ST_AsBinary("way") AS geom,"feature","way_pixels" FROM (SELECT
tile-service    |     way, way_pixels,
tile-service    |     COALESCE(wetland, landuse, "natural") AS feature
tile-service    |   FROM (SELECT
tile-service    |       way,
tile-service    |       ('landuse_' || (CASE WHEN landuse IN ('forest', 'farmland', 'residential', 'commercial', 'retail', 'industrial',
tile-service    |                                             'meadow', 'grass', 'village_green', 'vineyard', 'orchard') THEN landuse END)) AS landuse,
tile-service    |       ('natural_' || (CASE WHEN "natural" IN ('wood', 'sand', 'scree', 'shingle', 'bare_rock', 'heath', 'grassland', 'scrub') THEN "natural" END)) AS "natural",
tile-service    |       ('wetland_' || (CASE WHEN "natural" IN ('wetland', 'mud') THEN (CASE WHEN "natural" IN ('mud') THEN "natural" ELSE tags->'wetland' END) END)) AS wetland,
tile-service    |       way_area/NULLIF(POW(2.18392e+06*0.001*0.28,2),0) AS way_pixels,
tile-service    |       way_area
tile-service    |     FROM planet_osm_polygon
tile-service    |     WHERE (landuse IN ('forest', 'farmland', 'residential', 'commercial', 'retail', 'industrial', 'meadow', 'grass', 'village_green', 'vineyard', 'orchard')
tile-service    |       OR "natural" IN ('wood', 'wetland', 'mud', 'sand', 'scree', 'shingle', 'bare_rock', 'heath', 'grassland', 'scrub'))
tile-service    |       AND way_area > 0.01*611.496::real*611.496::real
tile-service    |       AND building IS NULL
tile-service    |   ) AS features
tile-service    |   ORDER BY way_area DESC, feature
tile-service    | ) AS landcover_low_zoom WHERE "way" && ST_SetSRID('BOX3D(-8844681.416939063 4931105.568735938,-7435794.111585938 6339992.874089061)'::box3d, 3857)'
tile-service    |
tile-service    |
tile-service    | ** (process:154): ERROR **: 15:53:54.487: failed to render TILE default 8 72-79 88-95
tile-service    |
tile-service    | ** (process:154): ERROR **: 15:53:54.488:   reason: Postgis Plugin: ERROR:  could not resize shared memory segment "/PostgreSQL.3306665220" to 25223168 bytes: No space left on device
tile-service    | in executeQuery Full sql was: 'SELECT ST_AsBinary("way") AS geom,"feature","way_pixels" FROM (SELECT
tile-service    |     way, way_pixels,
tile-service    |     COALESCE(wetland, landuse, "natural") AS feature
tile-service    |   FROM (SELECT
tile-service    |       way,
tile-service    |       ('landuse_' || (CASE WHEN landuse IN ('forest', 'farmland', 'residential', 'commercial', 'retail', 'industrial',
tile-service    |                                             'meadow', 'grass', 'village_green', 'vineyard', 'orchard') THEN landuse END)) AS landuse,
tile-service    |       ('natural_' || (CASE WHEN "natural" IN ('wood', 'sand', 'scree', 'shingle', 'bare_rock', 'heath', 'grassland', 'scrub') THEN "natural" END)) AS "natural",
tile-service    |       ('wetland_' || (CASE WHEN "natural" IN ('wetland', 'mud') THEN (CASE WHEN "natural" IN ('mud') THEN "natural" ELSE tags->'wetland' END) END)) AS wetland,
tile-service    |       way_area/NULLIF(POW(2.18392e+06*0.001*0.28,2),0) AS way_pixels,
tile-service    |       way_area
tile-service    |     FROM planet_osm_polygon
tile-service    |     WHERE (landuse IN ('forest', 'farmland', 'residential', 'commercial', 'retail', 'industrial', 'meadow', 'grass', 'village_green', 'vineyard', 'orchard')
tile-service    |       OR "natural" IN ('wood', 'wetland', 'mud', 'sand', 'scree', 'shingle', 'bare_rock', 'heath', 'grassland', 'scrub'))
tile-service    |       AND way_area > 0.01*611.496::real*611.496::real
tile-service    |       AND building IS NULL
tile-service    |   ) AS features
tile-service    |   ORDER BY way_area DESC, feature
tile-service    | ) AS landcover_low_zoom WHERE "way" && ST_SetSRID('BOX3D(-8844681.416939063 4931105.568735938,-7435794.111585938 6339992.874089061)'::box3d, 3857)'
tile-service    |
tile-service    |
tile-service    | ** (process:154): ERROR **: 15:53:54.734: failed to render TILE default 8 72-79 88-95
tile-service    |
tile-service    | ** (process:154): ERROR **: 15:53:54.734:   reason: Postgis Plugin: ERROR:  could not resize shared memory segment "/PostgreSQL.3366731756" to 25223168 bytes: No space left on device
tile-service    | in executeQuery Full sql was: 'SELECT ST_AsBinary("way") AS geom,"feature","way_pixels" FROM (SELECT
tile-service    |     way, way_pixels,
tile-service    |     COALESCE(wetland, landuse, "natural") AS feature
tile-service    |   FROM (SELECT
tile-service    |       way,
tile-service    |       ('landuse_' || (CASE WHEN landuse IN ('forest', 'farmland', 'residential', 'commercial', 'retail', 'industrial',
tile-service    |                                             'meadow', 'grass', 'village_green', 'vineyard', 'orchard') THEN landuse END)) AS landuse,
tile-service    |       ('natural_' || (CASE WHEN "natural" IN ('wood', 'sand', 'scree', 'shingle', 'bare_rock', 'heath', 'grassland', 'scrub') THEN "natural" END)) AS "natural",
tile-service    |       ('wetland_' || (CASE WHEN "natural" IN ('wetland', 'mud') THEN (CASE WHEN "natural" IN ('mud') THEN "natural" ELSE tags->'wetland' END) END)) AS wetland,
tile-service    |       way_area/NULLIF(POW(2.18392e+06*0.001*0.28,2),0) AS way_pixels,
tile-service    |       way_area
tile-service    |     FROM planet_osm_polygon
tile-service    |     WHERE (landuse IN ('forest', 'farmland', 'residential', 'commercial', 'retail', 'industrial', 'meadow', 'grass', 'village_green', 'vineyard', 'orchard')
tile-service    |       OR "natural" IN ('wood', 'wetland', 'mud', 'sand', 'scree', 'shingle', 'bare_rock', 'heath', 'grassland', 'scrub'))
tile-service    |       AND way_area > 0.01*611.496::real*611.496::real
tile-service    |       AND building IS NULL
tile-service    |   ) AS features
tile-service    |   ORDER BY way_area DESC, feature
tile-service    | ) AS landcover_low_zoom WHERE "way" && ST_SetSRID('BOX3D(-8844681.416939063 4931105.568735938,-7435794.111585938 6339992.874089061)'::box3d, 3857)'
tile-service    |
tile-service    | [2024-01-08 15:54:01] 5296 start import from seq-nr , replag is
tile-service    | [2024-01-08 15:55:01] 5319 start import from seq-nr , replag is
tile-service    | [2024-01-08 15:56:01] 5346 start import from seq-nr , replag is
tile-service    |
tile-service    | ** (process:154): ERROR **: 15:56:42.654: failed to render TILE default 4 0-7 0-7
tile-service    |
tile-service    | ** (process:154): ERROR **: 15:56:42.655:   reason: Postgis Plugin: ERROR:  could not resize shared memory segment "/PostgreSQL.3816329672" to 25223168 bytes: No space left on device
tile-service    | in executeQuery Full sql was: 'SELECT ST_AsBinary("way") AS geom,"dir","name","population" FROM (SELECT
tile-service    |     way,
tile-service    |     name,
tile-service    |     CASE
tile-service    |       WHEN (tags->'population' ~ '^[0-9]{1,8}$') THEN (tags->'population')::INTEGER ELSE 0
tile-service    |     END as population,
tile-service    |     round(ascii(md5(osm_id::text)) / 55) AS dir -- base direction factor on geometry to be consistent across metatiles
tile-service    |   FROM planet_osm_point
tile-service    |   WHERE place IN ('city', 'town', 'village', 'hamlet')
tile-service    |     AND name IS NOT NULL
tile-service    |     AND tags @> 'capital=>yes'
tile-service    |   ORDER BY population DESC
tile-service    | ) AS capital_names WHERE "way" && ST_SetSRID('BOX3D(-20037508 -1252344.271424999,1252344.271424999 20037508)'::box3d, 3857)'
tile-service    |
tile-service    | [2024-01-08 15:57:01] 5379 start import from seq-nr , replag is
tile-service    | [2024-01-08 15:58:01] 5402 start import from seq-nr , replag is
ghevge commented 8 months ago

Seems to be docker related https://stackoverflow.com/questions/56751565/pq-could-not-resize-shared-memory-segment-no-space-left-on-device . Will close the issue.