The MapPacker process sends a message to a mapgl-tile-renderer task worker to create a rendered offline map and updates the database post-rendering, marking it as SUCCEEDED or FAILED. However, issues such as memory or storage limits can kill a renderer container in the middle of a rendering process, leaving the map request status as PROCESSING indefinitely. To address this, we should detect such failures, set the status to FAILED, provide an error message indicating an unknown error, and write this update directly to the database.
Proposed Implementation:
I'm not sure if we want to set up a dedicated watchdog service to handle this, that seems like overkill; and I think it's better for this concern to sit with map-packer than mapgl-tile-renderer. We can have map-packer perform this check server-side every time the MapDashboard component is requested by a user, before the page is hydrated.
What should a reasonable timeframe be? I reckon 24 hours is good.
The MapPacker process sends a message to a mapgl-tile-renderer task worker to create a rendered offline map and updates the database post-rendering, marking it as SUCCEEDED or FAILED. However, issues such as memory or storage limits can kill a renderer container in the middle of a rendering process, leaving the map request status as PROCESSING indefinitely. To address this, we should detect such failures, set the status to FAILED, provide an error message indicating an unknown error, and write this update directly to the database.
Proposed Implementation:
I'm not sure if we want to set up a dedicated watchdog service to handle this, that seems like overkill; and I think it's better for this concern to sit with map-packer than mapgl-tile-renderer. We can have map-packer perform this check server-side every time the MapDashboard component is requested by a user, before the page is hydrated.
What should a reasonable timeframe be? I reckon 24 hours is good.