On Sat, 2009-02-28 at 11:20 +0000, Dave Stubbs wrote:
> The renderd process had crashed for some reason.. I've restarted it. I
> deleted all the z18 tiles the other day because we're running out of
> tile cache space (about 400GB)... a combination of that and the
> process crash means that it's been churning out 404s for a while.
> Anyway should all be working now.

I'd be interested if you could obtain a backtrace for any crashes and
I'll investigate them. Capturing the core file by running the renderd
from a shell with "ulimit -c unlimited" seems to be the best way to do
this.

Over the past couple of days I've seen several crashes on the main OSM
site and I've just tracked one of them back to an infinite recursion
problem in the agg code. Applying the attached patch seems to fix it,
provided you build with INTERNAL_LIBAGG=True. 

I have not been able to figure out which OSM feature was triggering
this, but it occurs when rendering the metatile containing:
http://tile.openstreetmap.org/17/78728/52568.png

        Jon
Index: agg/include/agg_rasterizer_cells_aa.h
===================================================================
--- agg/include/agg_rasterizer_cells_aa.h	(revision 930)
+++ agg/include/agg_rasterizer_cells_aa.h	(working copy)
@@ -323,6 +323,12 @@
         {
             int cx = (x1 + x2) >> 1;
             int cy = (y1 + y2) >> 1;
+
+            // Bail if values are so large they are likely to wrap
+            if ((abs(x1) >= INT_MAX/2) || (abs(y1) >= INT_MAX/2) ||
+                (abs(x2) >= INT_MAX/2) || (abs(y2) >= INT_MAX/2))
+                    return;
+
             line(x1, y1, cx, cy);
             line(cx, cy, x2, y2);
         }
_______________________________________________
talk mailing list
talk@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk

Reply via email to