Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Mysterious hang in save_as_png #89

Closed
kkaefer opened this Issue Mar 3, 2012 · 24 comments

Comments

Projects
None yet
2 participants
Member

kkaefer commented Mar 3, 2012

Member

kkaefer commented Mar 3, 2012

Same problem with most recent c06e0d4

Member

kkaefer commented Mar 3, 2012

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Map[]>
<Map srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over">


<Style name="countries" filter-mode="first">
  <Rule>
    <PolygonSymbolizer fill="#000000" />
  </Rule>
</Style>
<Layer name="countries"
  srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over">
    <StyleName>countries</StyleName>
    <Datasource>
       <Parameter name="file"><![CDATA[/Users/kkaefer/Documents/MapBox/project/world/layers/countries/82945364-10m-admin-0-countries.shp]]></Parameter>
       <Parameter name="type"><![CDATA[shape]]></Parameter>
    </Datasource>
  </Layer>

</Map>

The tile that hangs is always 0/0/0. Happens around 1/15 tries.

Owner

springmeyer commented Mar 3, 2012

happening inside tilemill, or in a standalone node.js script? Possible to post a testcase of a script? I tried first to replicate via python (nik2img.py) but no luck yet.

Also, what libpng version?

Member

kkaefer commented Mar 3, 2012

I'm using tilelive.js in the schemes branch and run

bin/copy --from="mapnik://./world.xml" --to="bigtiles://./out.bigtiles" --list=list.txt

List is:

0/0/0
1/0/0
1/0/1
1/1/0
1/1/1
2/0/0
2/0/1
2/0/2
2/0/3
2/1/0
2/1/1
2/1/2
2/1/3
2/2/0
2/2/1
2/2/2
2/2/3
2/3/0
2/3/1
2/3/2
2/3/3
3/0/0
3/0/1
3/0/2
3/0/3
3/0/4
3/0/5
3/0/6
3/0/7
3/1/0
3/1/1
3/1/2
3/1/3
3/1/4
3/1/5
3/1/6
3/1/7
3/2/0
3/2/1
3/2/2
3/2/3
3/2/4
3/2/5
3/2/6
3/2/7
3/3/0
3/3/1
3/3/2
3/3/3
3/3/4
3/3/5
3/3/6
3/3/7
3/4/0
3/4/1
3/4/2
3/4/3
3/4/4
3/4/5
3/4/6
3/4/7
3/5/0
3/5/1
3/5/2
3/5/3
3/5/4
3/5/5
3/5/6
3/5/7
3/6/0
3/6/1
3/6/2
3/6/3
3/6/4
3/6/5
3/6/6
3/6/7
3/7/0
3/7/1
3/7/2
3/7/3
3/7/4
3/7/5
3/7/6
3/7/7
Member

kkaefer commented Mar 3, 2012

Also using tilelive-mapnik skipblank HEAD and node-bigtiles master HEAD

Member

kkaefer commented Mar 3, 2012

libpng is /usr/X11/lib/libpng15.15.dylib with libpng version 1.5.1 - February 3, 2011

Member

kkaefer commented Mar 3, 2012

Recompiled with libpng 1.5.9:

~/Code/v4/tilelive.js ▶ otool -L /usr/local/lib/libmapnik.dylib
/usr/local/lib/libmapnik.dylib:
    /usr/local/lib/libmapnik.dylib (compatibility version 2.0.0, current version 2.0.0)
    /usr/X11/lib/libfreetype.6.dylib (compatibility version 14.0.0, current version 14.2.0)
    /usr/lib/libltdl.7.dylib (compatibility version 10.0.0, current version 10.2.0)
    /Users/kkaefer/Code/mapnik/local/lib/libpng15.15.dylib (compatibility version 25.0.0, current version 25.0.0)
    /usr/local/lib/libtiff.3.dylib (compatibility version 13.0.0, current version 13.5.0)
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
    /usr/local/lib/libjpeg.8.dylib (compatibility version 13.0.0, current version 13.0.0)
    /usr/local/lib/libproj.0.6.6.dylib (compatibility version 7.0.0, current version 7.6.0)
    /usr/local/Cellar/icu4c/4.8.1.1/lib/libicuuc.48.1.1.dylib (compatibility version 48.0.0, current version 48.1.1)
    /usr/local/lib/libboost_filesystem-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
    /usr/local/lib/libboost_system-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
    /usr/local/lib/libboost_regex-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
    /usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.3.0)
    /usr/local/lib/libboost_thread-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
    /usr/local/Cellar/cairomm/1.8.4/lib/libcairomm-1.0.1.dylib (compatibility version 6.0.0, current version 6.0.0)
    /usr/local/Cellar/cairo/1.10.2/lib/libcairo.2.dylib (compatibility version 11003.0.0, current version 11003.2.0)
    /usr/local/Cellar/libsigc++/2.2.8/lib/libsigc-2.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)

but the error persists.

Owner

springmeyer commented Mar 3, 2012

okay, getting those pieces set up to replicate. I have to leave in a 20 minutes for most of the day, so I'll try to solve this tonight or tomorrow night when I can find another free moment.

Owner

springmeyer commented Mar 3, 2012

Is this the expected output of the script?

(no hanging so far in a couple runs)

/usr/share/tilemill/node_modules/tilelive[schemes]$ bin/copy --from="mapnik://./world.xml" --to="bigtiles://./out.bigtiles" --list=list.txt
Persisting state in state-2012-03-03T17-02-46.540Z
copied: 0/85    speed: 0/s  remaining: 85   unique: 0   dupes: 0    skipped: 0  failed: 0[ { z: 3, x: 7, y: 4 } ]
copied: 85/85   speed: 415/s    remaining: 0    unique: 78  dupes: 4    skipped: 3  failed: 0
finished
Member

kkaefer commented Mar 3, 2012

yes, this is the expected output. I'm using for i in {0..10} ; do bin/copy --from="mapnik://./world.xml" --to="bigtiles://./out3.bigtiles" --list=list.txt ; if [ $? -gt 0 ] ; then break ; fi ; done to repeatedly run this.

Owner

springmeyer commented Mar 3, 2012

Unable to replicate with that script, also tried concurrent runs:


rm *bigtiles

CMD="bin/copy --from=\"mapnik://./world.xml\" --list=list.txt --to=\"bigtiles://"
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
$CMD"./$RANDOM.bigtiles" &
Owner

springmeyer commented Mar 3, 2012

I am still unable to replicate. @kkaefer - can you do a full "sample" in activity monitor and post the result (or use instruments) so I can see what the other threads are doing when this hang occurs in libpng?

Member

kkaefer commented Mar 3, 2012

I recompiled mapnik, but I can still reproduce:

Owner

springmeyer commented Mar 3, 2012

seems like next step is to recompile mapnik with -g3 -ggdb flags and -O1 or -O2.

for the -g flags I've been tending to do:


diff --git a/SConstruct b/SConstruct
index 28d3cb9..1559dc6 100644
--- a/SConstruct
+++ b/SConstruct
@@ -1412,7 +1412,7 @@ if not preconfigured:

         # Common debugging flags.
         debug_flags  = '-g -DDEBUG -DMAPNIK_DEBUG'
-        ndebug_flags = '-DNDEBUG'
+        ndebug_flags = '-g3 -ggdb'


         # Customizing the C++ compiler flags depending on: 

to be able to get debugging without the debug output. You can set the optimization flag like:

./configure OPTIMIZATION=0

Then see if you can replicate and when you hit the hang the backtrace should be more detailed and include argument values.

Attach to the hung process in gdb:

gdb --pid <pid>

And post the full trace:

thread apply all bt

then ensure all the variable values at https://github.com/mapnik/mapnik/blob/master/include/mapnik/png_io.hpp#L89-103 are sane by doing:

frame <N>
p compression
p strategy
p image.height()
p image.width()
p image
Member

kkaefer commented Mar 4, 2012

Unfortunately, I can't reproduce this issue anymore :/

Owner

springmeyer commented Mar 4, 2012

okay then :) Let' keep open for a while to see if we ever hit this again?

Owner

springmeyer commented Apr 12, 2012

going to close this as it was a mystery and not reproducible anymore.

Owner

springmeyer commented Apr 27, 2012

re-opening. Just hit this while running the latest tilelive-mapnik tests, after fixing other test failures (I'm now at 1e7ff700fee).

Owner

springmeyer commented Apr 27, 2012

first saw this:

then recompiled and now see:

Owner

springmeyer commented Apr 27, 2012

it seems to happen even when encoding is just in one or two threads.


(gdb) bt
#0  0x00007fff864bbd14 in memmove$VARIANT$sse42 ()
#1  0x0000000132212a37 in png_write_row (png_ptr=0x7ffdba00ac00, row=0x100ffffffff <Address 0x100ffffffff out of bounds>) at pngwrite.c:753
#2  0x00000001319cec50 in mapnik::save_as_png<std::ostream, mapnik::image_view<mapnik::ImageData<unsigned int> > > ()
#3  0x00000001319c80f5 in mapnik::save_to_stream<mapnik::image_view<mapnik::ImageData<unsigned int> > > ()
#4  0x00000001319c920d in mapnik::save_to_string<mapnik::image_view<mapnik::ImageData<unsigned int> > > ()
#5  0x000000013183d0ae in ImageView::EIO_Encode (req=<value temporarily unavailable, due to optimizations>) at mapnik_image_view.cpp:316
#6  0x00000001081a97b8 in uv__work (eio=0x7ffdb9d34140) at fs.c:667
#7  0x00000001081c07e1 in eio_execute (self=0x7ffdb9e12ea0, req=0x7ffdb9d34140) at eio.c:2283
#8  0x00000001081bfa1a in etp_proc (thr_arg=0x7ffdb9e12ea0) at eio.c:2089
#9  0x00007fff864e28bf in _pthread_start ()
#10 0x00007fff864e5b75 in thread_start ()
Owner

springmeyer commented Apr 27, 2012

ugh, no luck yet tracking this down. but pretty replicable for me.

@springmeyer springmeyer reopened this Apr 28, 2012

Owner

springmeyer commented Apr 29, 2012

another crash log:

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: 0x000000000000000d, 0x0000000000000000

VM Regions Near 0:
--> 
    __TEXT                 0000000106856000-0000000106cd2000 [ 4592K] r-x/rwx SM=COW  /usr/local/bin/node

Application Specific Information:
objc[40367]: garbage collection is OFF

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libstdc++.6.dylib               0x00007fff86bb79d4 std::_Rb_tree_increment(std::_Rb_tree_node_base*) + 34
1   _mapnik.node                    0x00000001301596f6 _ZN11node_mapnikL14write_featuresIN6mapnik13hit_grid_viewINS1_9ImageDataItEEEEEEvRKT_RN2v85LocalINS9_6ObjectEEERKSt6vectorINS6_11lookup_typeESaISF_EE + 566 (stl_tree.h:292)
2   _mapnik.node                    0x000000013015a617 GridView::EIO_AfterEncode(uv_work_s*) + 343 (mapnik_grid_view.cpp:389)
3   node                            0x0000000106aae805 uv__after_work + 69
4   node                            0x0000000106ac4397 eio_finish + 55
5   node                            0x0000000106ac17a5 etp_poll + 373
6   node                            0x0000000106ac1629 eio_poll + 9
7   node                            0x0000000106ab8757 uv_eio_want_poll_notifier_cb + 103
8   node                            0x0000000106aaaeb4 uv__async + 68
9   node                            0x0000000106abae49 ev_invoke_pending + 169
10  node                            0x0000000106abb433 ev_run + 1491
11  node                            0x0000000106aaa0c3 uv_run + 35
12  node                            0x000000010685c0e4 node::Start(int, char**) + 116 (node.cc:2643)
13  node                            0x0000000106857164 start + 52

Thread 1:: SamplerThread
0   libsystem_kernel.dylib          0x00007fff874726b6 semaphore_wait_trap + 10
1   node                            0x00000001069de69b v8::internal::RuntimeProfilerRateLimiter::SuspendIfNecessary() + 75
2   node                            0x00000001069ca108 v8::internal::SamplerThread::Run() + 56
3   node                            0x00000001069c9b47 _ZN2v88internalL11ThreadEntryEPv + 55
4   libsystem_c.dylib               0x00007fff864e28bf _pthread_start + 335
5   libsystem_c.dylib               0x00007fff864e5b75 thread_start + 13

Thread 2:
0   libsystem_kernel.dylib          0x00007fff87473bca __psynch_cvwait + 10
1   libsystem_c.dylib               0x00007fff864e6274 _pthread_cond_wait + 840
2   node                            0x0000000106ac494c etp_proc + 252
3   libsystem_c.dylib               0x00007fff864e28bf _pthread_start + 335
4   libsystem_c.dylib               0x00007fff864e5b75 thread_start + 13

Thread 3:
0   libmapnik.dylib                 0x000000013031a88a agg::conv_adaptor_vpgen<mapnik::geometry<double, mapnik::vertex_vector>, agg::vpgen_clip_polyline>::vertex(double*, double*) + 154
1   libmapnik.dylib                 0x0000000130318dbf mapnik::coord_transform2<mapnik::CoordTransform, agg::conv_clip_polyline<mapnik::geometry<double, mapnik::vertex_vector> > >::vertex(double*, double*) + 63
2   libmapnik.dylib                 0x0000000130434d51 agg::conv_adaptor_vcgen<mapnik::coord_transform2<mapnik::CoordTransform, agg::conv_clip_polyline<mapnik::geometry<double, mapnik::vertex_vector> > >, agg::vcgen_stroke, agg::null_markers>::vertex(double*, double*) + 113
3   libmapnik.dylib                 0x00000001304347ab void agg::rasterizer_scanline_aa<agg::rasterizer_sl_clip<agg::ras_conv_int> >::add_path<agg::conv_stroke<mapnik::coord_transform2<mapnik::CoordTransform, agg::conv_clip_polyline<mapnik::geometry<double, mapnik::vertex_vector> > >, agg::null_markers> >(agg::conv_stroke<mapnik::coord_transform2<mapnik::CoordTransform, agg::conv_clip_polyline<mapnik::geometry<double, mapnik::vertex_vector> > >, agg::null_markers>&, unsigned int) + 219
4   libmapnik.dylib                 0x00000001304336e8 mapnik::agg_renderer<mapnik::image_32>::process(mapnik::line_symbolizer const&, boost::shared_ptr<mapnik::feature_impl> const&, mapnik::proj_transform const&) + 4392
5   libmapnik.dylib                 0x000000013025929e mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::render_style(mapnik::layer const&, mapnik::agg_renderer<mapnik::image_32>&, mapnik::feature_type_style*, std::string const&, boost::shared_ptr<mapnik::Featureset>, mapnik::proj_transform const&, double) + 910
6   libmapnik.dylib                 0x0000000130258506 mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::apply_to_layer(mapnik::layer const&, mapnik::agg_renderer<mapnik::image_32>&, mapnik::projection const&, double, std::set<std::string, std::less<std::string>, std::allocator<std::string> >&) + 6086
7   libmapnik.dylib                 0x0000000130256a6c mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::apply() + 572
8   _mapnik.node                    0x000000013013d274 Map::EIO_RenderImage(uv_work_s*) + 148 (mapnik_map.cpp:1559)
9   node                            0x0000000106aae7b8 uv__work + 56
10  node                            0x0000000106ac57e1 eio_execute + 3313
11  node                            0x0000000106ac4a1a etp_proc + 458
12  libsystem_c.dylib               0x00007fff864e28bf _pthread_start + 335
13  libsystem_c.dylib               0x00007fff864e5b75 thread_start + 13

Thread 4:
0   libsystem_kernel.dylib          0x00007fff87473bca __psynch_cvwait + 10
1   libsystem_c.dylib               0x00007fff864e6274 _pthread_cond_wait + 840
2   node                            0x0000000106ac494c etp_proc + 252
3   libsystem_c.dylib               0x00007fff864e28bf _pthread_start + 335
4   libsystem_c.dylib               0x00007fff864e5b75 thread_start + 13

Thread 5:
0   libmapnik.dylib                 0x0000000130459c95 agg::vcgen_stroke::vertex(double*, double*) + 501
1   libmapnik.dylib                 0x0000000130434e3e agg::conv_adaptor_vcgen<mapnik::coord_transform2<mapnik::CoordTransform, agg::conv_clip_polyline<mapnik::geometry<double, mapnik::vertex_vector> > >, agg::vcgen_stroke, agg::null_markers>::vertex(double*, double*) + 350
2   libmapnik.dylib                 0x00000001304347e2 void agg::rasterizer_scanline_aa<agg::rasterizer_sl_clip<agg::ras_conv_int> >::add_path<agg::conv_stroke<mapnik::coord_transform2<mapnik::CoordTransform, agg::conv_clip_polyline<mapnik::geometry<double, mapnik::vertex_vector> > >, agg::null_markers> >(agg::conv_stroke<mapnik::coord_transform2<mapnik::CoordTransform, agg::conv_clip_polyline<mapnik::geometry<double, mapnik::vertex_vector> > >, agg::null_markers>&, unsigned int) + 274
3   libmapnik.dylib                 0x00000001304336e8 mapnik::agg_renderer<mapnik::image_32>::process(mapnik::line_symbolizer const&, boost::shared_ptr<mapnik::feature_impl> const&, mapnik::proj_transform const&) + 4392
4   libmapnik.dylib                 0x000000013025929e mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::render_style(mapnik::layer const&, mapnik::agg_renderer<mapnik::image_32>&, mapnik::feature_type_style*, std::string const&, boost::shared_ptr<mapnik::Featureset>, mapnik::proj_transform const&, double) + 910
5   libmapnik.dylib                 0x0000000130258506 mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::apply_to_layer(mapnik::layer const&, mapnik::agg_renderer<mapnik::image_32>&, mapnik::projection const&, double, std::set<std::string, std::less<std::string>, std::allocator<std::string> >&) + 6086
6   libmapnik.dylib                 0x0000000130256a6c mapnik::feature_style_processor<mapnik::agg_renderer<mapnik::image_32> >::apply() + 572
7   _mapnik.node                    0x000000013013d274 Map::EIO_RenderImage(uv_work_s*) + 148 (mapnik_map.cpp:1559)
8   node                            0x0000000106aae7b8 uv__work + 56
9   node                            0x0000000106ac57e1 eio_execute + 3313
10  node                            0x0000000106ac4a1a etp_proc + 458
11  libsystem_c.dylib               0x00007fff864e28bf _pthread_start + 335
12  libsystem_c.dylib               0x00007fff864e5b75 thread_start + 13

Thread 6:
0   libmapnik.dylib                 0x0000000130319abb mapnik::coord_transform2<mapnik::CoordTransform, mapnik::geometry<double, mapnik::vertex_vector> >::vertex(double*, double*) + 219
1   libmapnik.dylib                 0x0000000130430622 void agg::rasterizer_scanline_aa<agg::rasterizer_sl_clip<agg::ras_conv_int> >::add_path<mapnik::coord_transform2<mapnik::CoordTransform, mapnik::geometry<double, mapnik::vertex_vector> > >(mapnik::coord_transform2<mapnik::CoordTransform, mapnik::geometry<double, mapnik::vertex_vector> >&, unsigned int) + 226
2   libmapnik.dylib                 0x0000000130453261 mapnik::grid_renderer<mapnik::hit_grid<unsigned short> >::process(mapnik::polygon_symbolizer const&, boost::shared_ptr<mapnik::feature_impl> const&, mapnik::proj_transform const&) + 481
3   libmapnik.dylib                 0x000000013025592e mapnik::feature_style_processor<mapnik::grid_renderer<mapnik::hit_grid<unsigned short> > >::render_style(mapnik::layer const&, mapnik::grid_renderer<mapnik::hit_grid<unsigned short> >&, mapnik::feature_type_style*, std::string const&, boost::shared_ptr<mapnik::Featureset>, mapnik::proj_transform const&, double) + 910
4   libmapnik.dylib                 0x0000000130254516 mapnik::feature_style_processor<mapnik::grid_renderer<mapnik::hit_grid<unsigned short> > >::apply_to_layer(mapnik::layer const&, mapnik::grid_renderer<mapnik::hit_grid<unsigned short> >&, mapnik::projection const&, double, std::set<std::string, std::less<std::string>, std::allocator<std::string> >&) + 6086
5   libmapnik.dylib                 0x0000000130254e11 mapnik::feature_style_processor<mapnik::grid_renderer<mapnik::hit_grid<unsigned short> > >::apply(mapnik::layer const&, std::set<std::string, std::less<std::string>, std::allocator<std::string> >&) + 145
6   _mapnik.node                    0x000000013013da55 Map::EIO_RenderGrid(uv_work_s*) + 1317 (mapnik_map.cpp:1503)
7   node                            0x0000000106aae7b8 uv__work + 56
8   node                            0x0000000106ac57e1 eio_execute + 3313
9   node                            0x0000000106ac4a1a etp_proc + 458
10  libsystem_c.dylib               0x00007fff864e28bf _pthread_start + 335
11  libsystem_c.dylib               0x00007fff864e5b75 thread_start + 13

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0xf000000000000000  rbx: 0x00007f8cdd4048f0  rcx: 0x0000000000003990  rdx: 0x00007f8cdd404670
  rdi: 0x00007f8cdd4049a0  rsi: 0x00007f8cdd400000  rbp: 0x00007fff66453db0  rsp: 0x00007fff66453db0
   r8: 0x0000000000000027   r9: 0x0000000000000000  r10: 0x0000000098818e75  r11: 0x00000000ffffff7f
  r12: 0x00007f8cdb52b170  r13: 0x00007fff66453ee8  r14: 0x00007f8cdb52bf01  r15: 0x00007fff664540c0
  rip: 0x00007fff86bb79d4  rfl: 0x0000000000010246  cr2: 0x00000001302b251c
Logical CPU: 6
Owner

springmeyer commented Apr 29, 2012

my hunch is this is a race condition of some sort that is a result of the use of feature_ptrs after mapnik/mapnik@915addc and mapnik/mapnik@07d7d7d - mapnik/mapnik#1198

Owner

springmeyer commented Jul 12, 2012

have not seen this recently, but #110 might be another symptom.

springmeyer pushed a commit that referenced this issue Jul 12, 2012

reference count Grid objects in use by GridView objects to avoid poss…
…ible scope issues resulting in segfaults when v8 garbage collects - closes #110, refs #89
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment