openstreetmap / openstreetmap/mod_tile

render_list does not save any tiles if killed due to running out of memory

Open
#477 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
318
Forks
199
PR merge metrics
No merged PRs in 30d

Description

Attempting to pre-render tiles for the UK using https://github.com/alx77/render_list_geo.pl:

./render_list_geo.pl -n 4 -x -9.5 -X 2.72 -y 49.39 -Y 61.26 -z 8 -Z 16

Output:

Rendering started at: Mon Mar 24 14:14:43 UTC 2025

render_list -a -z 8 -Z 8 -x 121 -X 135 -y 72 -Y 87 -n 4
Rendering client
Starting 4 rendering threads
Rendering all tiles from zoom 8 to zoom 8
Rendering all tiles for zoom 8 from (121, 72) to (135, 87)
Waiting for rendering threads to finish

*****************************************************
*****************************************************
Total for all tiles rendered
Meta tiles rendered: Rendered 0 tiles in 0.00 seconds (0.00 tiles/s)
Total tiles rendered: Rendered 0 tiles in 0.00 seconds (0.00 tiles/s)
Total tiles handled: Rendered 4 tiles in 0.00 seconds (1545.60 tiles/s)
*****************************************************
*****************************************************
*****************************************************

Zoom factor: 8 finished at
Mon Mar 24 14:14:43 UTC 2025
render_list -a -z 9 -Z 9 -x 242 -X 263 -y 145 -Y 175 -n 4
Rendering client
Starting 4 rendering threads
Rendering all tiles from zoom 9 to zoom 9
Rendering all tiles for zoom 9 from (242, 145) to (263, 175)
Waiting for rendering threads to finish

*****************************************************
*****************************************************
Total for all tiles rendered
Meta tiles rendered: Rendered 0 tiles in 0.00 seconds (0.00 tiles/s)
Total tiles rendered: Rendered 0 tiles in 0.00 seconds (0.00 tiles/s)
Total tiles handled: Rendered 12 tiles in 0.00 seconds (4876.07 tiles/s)
*****************************************************
*****************************************************
*****************************************************

Zoom factor: 9 finished at
Mon Mar 24 14:14:43 UTC 2025
render_list -a -z 10 -Z 10 -x 484 -X 519 -y 290 -Y 351 -n 4
Rendering client
Starting 4 rendering threads
Rendering all tiles from zoom 10 to zoom 10
Rendering all tiles for zoom 10 from (484, 290) to (519, 351)
Waiting for rendering threads to finish
connection to renderd lostsleeping for 30 secondsconnection to renderd lostsleeping for 30 secondsconnection to renderd lostsleeping for 30 secondsconnection to renderd lostsleeping for 30 seconds
Zoom factor: 10 finished at
Mon Mar 24 14:16:56 UTC 2025

I'm using https://github.com/Overv/openstreetmap-tile-server, and the renderd process is being killed due to running out of memory.

I have two issues with this:

  1. It doesn't seem to have saved anything? Why isn't it saving the tiles it managed to render before it gets killed?
  2. Running this for a smaller area works within the memory constraints, so surely it could be a bit smarter about this if there isn't enough memory available to do the whole task in one go?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the render_list and renderd entry points, using the render_list_geo.pl command and the reported out-of-memory run as a reproduction. Trace how connection loss and completed tiles are handled, then verify whether tiles rendered before renderd is killed remain available and whether the task can continue safely in smaller portions.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.