Open stevage opened 4 years ago
Oh, I see I'm a couple of versions behind. Trying again with 1.34.6
Slightly different output but still crashed:
Going to try keeping the biggest 17.31% of the features to make it fit
Segmentation fault080
@stevage thanks for reporting and helping narrow this down. Getting a backtrace out of the core dump would be ideal, since it should show where the crash is happening. That way we might be able to fix without replicating.
https://jvns.ca/blog/2018/04/28/debugging-a-segfault-on-linux/ looks good, but skip the valgrind
step since that will slow down the program so much it might not be tenable. Also, you could use https://github.com/mapbox/logbt which does all the things in that blog post automatically.
Ah, great. Ok, I'm trying the logbt option.
$ ~/logbt/logbt -- ./4-make-tiles.js parcels
[logbt] using corefile location: /tmp/logbt-coredumps
[logbt] using core_pattern: core.%p.%E
4: Generating vector tiles
tippecanoe --output=mbtiles/parcels.mbtiles --force --read-parallel --minimum-zoom=13 --maximum-zoom=15 --generate-ids --simplification=10 --simplify-only-low-zooms --attribute-type='ATTOM ID:int' --include='ATTOM ID' --include=APN --include=CountyFIPS --coalesce-smallest-as-needed --base-zoom=14 --accumulate-attribute=APN:comma --accumulate-attribute='ATTOM ID:comma' --layer=parcels data/parcels.json
Read 1.64 million features
Ok, I have emailed you the dump.
Ok, finally got there.
tile 13/2352/3121 size is 506338 with detail 12, >500000
Going to try keeping the biggest 20.25% of the features to make it fit
Segmentation fault (core dumped)
Tiles for parcels:parcels failed in 4.02 h.
[logbt] saw './4-make-tiles.js' exit with code:139 (SEGV)
[logbt] Found corefile (non-tracked) at /tmp/logbt-coredumps/core.28612.!home!steve_bennett_cherre_com!tippecanoe!tippecanoe
[logbt] Processing cores...
[New LWP 30669]
[New LWP 30671]
[New LWP 30670]
[New LWP 30675]
[New LWP 30672]
[New LWP 30676]
[New LWP 30673]
[New LWP 30674]
[New LWP 28612]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `tippecanoe --output=mbtiles/parcels.mbtiles --force --read-parallel --minimum-z'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 deserialize_ulong_long (zigzag=<synthetic pointer>, f=<synthetic pointer>) at serial.cpp:97
97 if ((**f & 0x80) == 0) {
[Current thread is 1 (Thread 0x7fc3a6d8a700 (LWP 30669))]
Thread 9 (Thread 0x7fc479cdbb80 (LWP 28612)):
#0 0x00007fc479386d2d in __GI___pthread_timedjoin_ex (threadid=140478294566656, thread_return=thread_return@entry=0x7ffe69de6bd8, abstime=abstime@entry=0x0, block=block@entry=true) at pthread_join_common.c:89
#1 0x00007fc479386b5c in __pthread_join (threadid=<optimized out>, thread_return=thread_return@entry=0x7ffe69de6bd8) at pthread_join.c:24
#2 0x00005645c7c7a394 in traverse_zooms (geomfd=<optimized out>, geom_size=<optimized out>, metabase=<optimized out>, stringpool=<optimized out>, midx=<optimized out>, midy=<optimized out>, maxzoom=<optimized out>, minzoom=<optimized out>, outdb=<optimized out>, outdir=<optimized out>, buffer=<optimized out>, fname=<optimized out>, tmpdir=<optimized out>, gamma=<optimized out>, full_detail=<optimized out>, low_detail=<optimized out>, min_detail=<optimized out>, meta_off=<optimized out>, pool_off=<optimized out>, initial_x=<optimized out>, initial_y=<optimized out>, simplification=<optimized out>, layermaps=..., prefilter=<optimized out>, postfilter=<optimized out>, attribute_accum=<optimized out>, filter=<optimized out>) at tile.cpp:2857
#3 0x00005645c7cdf1f4 in read_input (sources=..., fname=<optimized out>, maxzoom=<optimized out>, minzoom=<optimized out>, basezoom=<optimized out>, basezoom_marker_width=<optimized out>, outdb=<optimized out>, outdir=<optimized out>, exclude=<optimized out>, include=<optimized out>, exclude_all=<optimized out>, filter=<optimized out>, droprate=<optimized out>, buffer=<optimized out>, tmpdir=<optimized out>, gamma=<optimized out>, read_parallel=<optimized out>, forcetable=<optimized out>, attribution=<optimized out>, uses_gamma=<optimized out>, file_bbox=<optimized out>, prefilter=<optimized out>, postfilter=<optimized out>, description=<optimized out>, guess_maxzoom=<optimized out>, attribute_types=<optimized out>, pgm=<optimized out>, attribute_accum=<optimized out>, attribute_descriptions=..., commandline=...) at main.cpp:2270
#4 0x00005645c7c6aa1e in main (argc=<optimized out>, argv=0x7ffe69de8de8) at main.cpp:3183
Thread 8 (Thread 0x7fc3a858d700 (LWP 30674)):
#0 0x00007fc4798a9050 in ?? () from /lib/x86_64-linux-gnu/libz.so.1
#1 0x00007fc4798aaf98 in ?? () from /lib/x86_64-linux-gnu/libz.so.1
#2 0x00007fc4798ac1ed in deflate () from /lib/x86_64-linux-gnu/libz.so.1
#3 0x00005645c7ccae78 in compress (input="\032\357\333\027x\002\n\aparcels(\200 \032\nCountyFIPS\032\bATTOM ID\032\003APN\"\a\n\005\061\067\060\063\061\"\324\003\n\321\003\061\067\065\063\071\067\071\071\070,175398001,38953317,175397945,175397946,175394271,175403029,176078222,175908302,155105428,39004835,174897369,174897370,174897371,49"..., output="\037\213\b\000\000\000\000\000\002\003l\275}\350\377\313r\037\304\071\347\236s\356\375\334$7\017m-\027J\313\347/ů\272\063\263\217\224\326\304\346\201H\215\001\373O\251\bR\202\265\212\212\017\324\374W\255\210P\020\305H\244 b\251\004\n\202i\323H\203QӦ-\242\064\066\372\207R\005\021\"\221j[\251\264\330bug\037f\367\065\357{\370q\276\063\237\367>\314\316\356\316\316\316\316\316~\363\257\374ſ\343_\376\364\365\345?\367\217\377\363\277\373\307\376\351\177\341\357\374\375\277雯\337\366\317\376K\377̿\370\343?\370\303?\372\217|\363\253\337\367;~\307?\374\017\375\246\037\376\376o~\366}?\372#\357/_\237S\tB"...) at mvt.cpp:100
#4 0x00005645c7c83e27 in write_tile (geoms=geoms@entry=0x7fb02800fb70, geompos_in=geompos_in@entry=0x7fc3a858ceb0, metabase=<optimized out>, stringpool=<optimized out>, z=<optimized out>, tx=<optimized out>, ty=<optimized out>, detail=<optimized out>, min_detail=<optimized out>, outdb=<optimized out>, outdir=<optimized out>, buffer=<optimized out>, fname=<optimized out>, geomfile=<optimized out>, minzoom=<optimized out>, maxzoom=<optimized out>, todo=<optimized out>, along=<optimized out>, alongminus=<optimized out>, gamma=<optimized out>, child_shards=<optimized out>, meta_off=<optimized out>, pool_off=<optimized out>, initial_x=<optimized out>, initial_y=<optimized out>, running=<optimized out>, simplification=<optimized out>, layermaps=<optimized out>, layer_unmaps=<optimized out>, tiling_seg=<optimized out>, pass=<optimized out>, passes=<optimized out>, mingap=<optimized out>, minextent=<optimized out>, fraction=<optimized out>, prefilter=<optimized out>, postfilter=<optimized out>, filter=<optimized out>, arg=<optimized out>) at tile.cpp:2422
#5 0x00005645c7c86046 in run_thread (vargs=0x5645c8dc9cb0) at tile.cpp:2585
#6 0x00007fc4793856db in start_thread (arg=0x7fc3a858d700) at pthread_create.c:463
#7 0x00007fc47876f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 7 (Thread 0x7fc3a8d8e700 (LWP 30673)):
#0 0x00007fc4786e520a in tcache_get (tc_idx=28) at malloc.c:2943
#1 __GI___libc_malloc (bytes=464) at malloc.c:3050
#2 0x00007fc479088258 in operator new(unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00005645c7c86ecb in __gnu_cxx::new_allocator<draw>::allocate (this=0x7fb034537148, __n=29) at /usr/include/c++/7/ext/new_allocator.h:111
#4 std::allocator_traits<std::allocator<draw> >::allocate (__a=..., __n=29) at /usr/include/c++/7/bits/alloc_traits.h:436
#5 std::_Vector_base<draw, std::allocator<draw> >::_M_allocate (this=0x7fb034537148, __n=29) at /usr/include/c++/7/bits/stl_vector.h:172
#6 std::_Vector_base<draw, std::allocator<draw> >::_M_create_storage (__n=<optimized out>, this=0x7fb034537148) at /usr/include/c++/7/bits/stl_vector.h:187
#7 std::_Vector_base<draw, std::allocator<draw> >::_Vector_base (__a=..., __n=<optimized out>, this=0x7fb034537148) at /usr/include/c++/7/bits/stl_vector.h:138
#8 std::vector<draw, std::allocator<draw> >::vector (this=0x7fb034537148, __x=std::vector of length 29, capacity 29 = {...}) at /usr/include/c++/7/bits/stl_vector.h:328
#9 0x00005645c7c8d7b8 in coalesce::coalesce (this=0x7fb0345370e0) at tile.cpp:84
#10 0x00005645c7c8205c in __gnu_cxx::new_allocator<coalesce>::construct<coalesce, coalesce const&> (this=0x7fb034007000, __p=<optimized out>) at /usr/include/c++/7/ext/new_allocator.h:136
#11 std::allocator_traits<std::allocator<coalesce> >::construct<coalesce, coalesce const&> (__a=..., __p=<optimized out>) at /usr/include/c++/7/bits/alloc_traits.h:475
#12 std::vector<coalesce, std::allocator<coalesce> >::push_back (__x=..., this=0x7fb034007000) at /usr/include/c++/7/bits/stl_vector.h:943
#13 write_tile (geoms=geoms@entry=0x7fb0341fb4a0, geompos_in=geompos_in@entry=0x7fc3a8d8deb0, metabase=<optimized out>, stringpool=<optimized out>, z=<optimized out>, tx=<optimized out>, ty=<optimized out>, detail=<optimized out>, min_detail=<optimized out>, outdb=<optimized out>, outdir=<optimized out>, buffer=<optimized out>, fname=<optimized out>, geomfile=<optimized out>, minzoom=<optimized out>, maxzoom=<optimized out>, todo=<optimized out>, along=<optimized out>, alongminus=<optimized out>, gamma=<optimized out>, child_shards=<optimized out>, meta_off=<optimized out>, pool_off=<optimized out>, initial_x=<optimized out>, initial_y=<optimized out>, running=<optimized out>, simplification=<optimized out>, layermaps=<optimized out>, layer_unmaps=<optimized out>, tiling_seg=<optimized out>, pass=<optimized out>, passes=<optimized out>, mingap=<optimized out>, minextent=<optimized out>, fraction=<optimized out>, prefilter=<optimized out>, postfilter=<optimized out>, filter=<optimized out>, arg=<optimized out>) at tile.cpp:2169
#14 0x00005645c7c86046 in run_thread (vargs=0x5645c8dc9b50) at tile.cpp:2585
#15 0x00007fc4793856db in start_thread (arg=0x7fc3a8d8e700) at pthread_create.c:463
#16 0x00007fc47876f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 6 (Thread 0x7fc3a5d88700 (LWP 30676)):
#0 0x00005645c7cb745e in std::__adjacent_find<__gnu_cxx::__normal_iterator<long long*, std::vector<long long, std::allocator<long long> > >, __gnu_cxx::__ops::_Iter_equal_to_iter> (__last=..., __first=63, __binary_pred=...) at /usr/include/c++/7/bits/stl_algo.h:953
#1 std::__unique<__gnu_cxx::__normal_iterator<long long*, std::vector<long long, std::allocator<long long> > >, __gnu_cxx::__ops::_Iter_equal_to_iter> (__binary_pred=..., __last=681, __first=31) at /usr/include/c++/7/bits/stl_algo.h:966
#2 std::unique<__gnu_cxx::__normal_iterator<long long*, std::vector<long long, std::allocator<long long> > > > (__last=..., __first=...) at /usr/include/c++/7/bits/stl_algo.h:1005
#3 mapbox::geometry::wagyu::pop_from_scanbeam<long long> (Y=@0x7fc3a5d86cc0: 668, scanbeam=std::vector of length 74, capacity 256 = {...}) at ./mapbox/geometry/wagyu/scanbeam.hpp:21
#4 0x00005645c7cbdeb2 in mapbox::geometry::wagyu::build_hot_pixels<long long> (minima_list=std::deque with 156 elements = {...}, manager=...) at ./mapbox/geometry/wagyu/snap_rounding.hpp:181
#5 0x00005645c7ca3c5b in mapbox::geometry::wagyu::wagyu<long long>::execute<long long> (clip_fill_type=mapbox::geometry::wagyu::fill_type_positive, subject_fill_type=mapbox::geometry::wagyu::fill_type_positive, solution=..., cliptype=mapbox::geometry::wagyu::clip_type_union, this=0x7fc3a5d86e20) at ./mapbox/geometry/wagyu/wagyu.hpp:128
#6 clean_or_clip_poly (geom=std::vector of length 791, capacity 1024 = {...}, z=z@entry=0, buffer=buffer@entry=0, clip=clip@entry=false) at geometry.cpp:272
#7 0x00005645c7c7658c in partial_feature_worker (v=0x7fb01c0a84f0) at tile.cpp:501
#8 0x00005645c7c844ee in write_tile (geoms=geoms@entry=0x7fb01c03a2e0, geompos_in=geompos_in@entry=0x7fc3a5d87eb0, metabase=<optimized out>, stringpool=<optimized out>, z=<optimized out>, tx=<optimized out>, ty=<optimized out>, detail=<optimized out>, min_detail=<optimized out>, outdb=<optimized out>, outdir=<optimized out>, buffer=<optimized out>, fname=<optimized out>, geomfile=<optimized out>, minzoom=<optimized out>, maxzoom=<optimized out>, todo=<optimized out>, along=<optimized out>, alongminus=<optimized out>, gamma=<optimized out>, child_shards=<optimized out>, meta_off=<optimized out>, pool_off=<optimized out>, initial_x=<optimized out>, initial_y=<optimized out>, running=<optimized out>, simplification=<optimized out>, layermaps=<optimized out>, layer_unmaps=<optimized out>, tiling_seg=<optimized out>, pass=<optimized out>, passes=<optimized out>, mingap=<optimized out>, minextent=<optimized out>, fraction=<optimized out>, prefilter=<optimized out>, postfilter=<optimized out>, filter=<optimized out>, arg=<optimized out>) at tile.cpp:2115
#9 0x00005645c7c86046 in run_thread (vargs=0x5645c8dc9f70) at tile.cpp:2585
#10 0x00007fc4793856db in start_thread (arg=0x7fc3a5d88700) at pthread_create.c:463
#11 0x00007fc47876f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 5 (Thread 0x7fc3a958f700 (LWP 30672)):
#0 0x00005645c7caf95a in mapbox::geometry::wagyu::round_towards_min<long long> (val=1132.8500000000211) at ./mapbox/geometry/wagyu/ring_util.hpp:91
#1 mapbox::geometry::wagyu::get_edge_min_x<long long> (current_y=2974, edge=...) at ./mapbox/geometry/wagyu/ring_util.hpp:126
#2 mapbox::geometry::wagyu::hot_pixel_set_left_to_right<long long> (add_end_point=false, end=<synthetic pointer>{x = 954, y = 3299}, itr=Python Exception <class 'gdb.error'> value has been optimized out:
<synthetic pointer>, rings=..., bnd=..., end_x=1154, start_x=731, y=2974) at ./mapbox/geometry/wagyu/ring_util.hpp:171
#3 mapbox::geometry::wagyu::insert_hot_pixels_in_path<long long> (bnd=..., end_pt=..., rings=..., add_end_point=add_end_point@entry=false) at ./mapbox/geometry/wagyu/ring_util.hpp:296
#4 0x00005645c7cafc74 in mapbox::geometry::wagyu::add_point_to_ring<long long> (bnd=..., pt=..., rings=...) at ./mapbox/geometry/wagyu/ring_util.hpp:327
#5 0x00005645c7cbe985 in mapbox::geometry::wagyu::add_point<long long> (bnd=..., active_bounds=std::vector of length 2, capacity 4 = {...}, pt=..., rings=...) at ./mapbox/geometry/wagyu/ring_util.hpp:352
#6 0x00005645c7cbebb8 in mapbox::geometry::wagyu::add_local_maximum_point<long long> (b1=..., b2=..., pt=..., rings=..., active_bounds=std::vector of length 2, capacity 4 = {...}) at ./mapbox/geometry/wagyu/ring_util.hpp:623
#7 0x00005645c7cc0c7c in mapbox::geometry::wagyu::do_maxima<long long> (active_bounds=std::vector of length 2, capacity 4 = {...}, manager=..., clip_fill_type=mapbox::geometry::wagyu::fill_type_positive, subject_fill_type=mapbox::geometry::wagyu::fill_type_positive, cliptype=mapbox::geometry::wagyu::clip_type_union, bndMaxPair=Python Exception <class 'gdb.error'> value has been optimized out:
<synthetic pointer>, bnd=0x7fb02c01d920) at ./mapbox/geometry/wagyu/process_maxima.hpp:44
#8 mapbox::geometry::wagyu::process_edges_at_top_of_scanbeam<long long> (top_y=<optimized out>, active_bounds=std::vector of length 2, capacity 4 = {...}, scanbeam=std::vector of length 0, capacity 8, minima_sorted=std::vector of length 4, capacity 4 = {...}, current_lm=0xc040b33333333333, manager=..., cliptype=mapbox::geometry::wagyu::clip_type_union, subject_fill_type=mapbox::geometry::wagyu::fill_type_positive, clip_fill_type=mapbox::geometry::wagyu::fill_type_positive) at ./mapbox/geometry/wagyu/process_maxima.hpp:84
#9 0x00005645c7cc1016 in mapbox::geometry::wagyu::execute_vatti<long long> (minima_list=std::deque with 4 elements = {...}, manager=..., cliptype=cliptype@entry=mapbox::geometry::wagyu::clip_type_union, subject_fill_type=subject_fill_type@entry=mapbox::geometry::wagyu::fill_type_positive, clip_fill_type=clip_fill_type@entry=mapbox::geometry::wagyu::fill_type_positive) at ./mapbox/geometry/wagyu/vatti.hpp:53
#10 0x00005645c7ca3c7d in mapbox::geometry::wagyu::wagyu<long long>::execute<long long> (clip_fill_type=mapbox::geometry::wagyu::fill_type_positive, subject_fill_type=mapbox::geometry::wagyu::fill_type_positive, solution=..., cliptype=mapbox::geometry::wagyu::clip_type_union, this=0x7fc3a958de20) at ./mapbox/geometry/wagyu/wagyu.hpp:130
#11 clean_or_clip_poly (geom=std::vector of length 24, capacity 32 = {...}, z=z@entry=0, buffer=buffer@entry=0, clip=clip@entry=false) at geometry.cpp:272
#12 0x00005645c7c7658c in partial_feature_worker (v=0x7fb02c056b00) at tile.cpp:501
#13 0x00005645c7c844ee in write_tile (geoms=geoms@entry=0x7fb02c09b9c0, geompos_in=geompos_in@entry=0x7fc3a958eeb0, metabase=<optimized out>, stringpool=<optimized out>, z=<optimized out>, tx=<optimized out>, ty=<optimized out>, detail=<optimized out>, min_detail=<optimized out>, outdb=<optimized out>, outdir=<optimized out>, buffer=<optimized out>, fname=<optimized out>, geomfile=<optimized out>, minzoom=<optimized out>, maxzoom=<optimized out>, todo=<optimized out>, along=<optimized out>, alongminus=<optimized out>, gamma=<optimized out>, child_shards=<optimized out>, meta_off=<optimized out>, pool_off=<optimized out>, initial_x=<optimized out>, initial_y=<optimized out>, running=<optimized out>, simplification=<optimized out>, layermaps=<optimized out>, layer_unmaps=<optimized out>, tiling_seg=<optimized out>, pass=<optimized out>, passes=<optimized out>, mingap=<optimized out>, minextent=<optimized out>, fraction=<optimized out>, prefilter=<optimized out>, postfilter=<optimized out>, filter=<optimized out>, arg=<optimized out>) at tile.cpp:2115
#14 0x00005645c7c86046 in run_thread (vargs=0x5645c8dc99f0) at tile.cpp:2585
#15 0x00007fc4793856db in start_thread (arg=0x7fc3a958f700) at pthread_create.c:463
#16 0x00007fc47876f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 4 (Thread 0x7fc3a6589700 (LWP 30675)):
#0 std::__move_merge_adaptive_backward<__gnu_cxx::__normal_iterator<mapbox::geometry::wagyu::local_minimum<long long>**, std::vector<mapbox::geometry::wagyu::local_minimum<long long>*, std::allocator<mapbox::geometry::wagyu::local_minimum<long long>*> > >, mapbox::geometry::wagyu::local_minimum<long long>**, __gnu_cxx::__normal_iterator<mapbox::geometry::wagyu::local_minimum<long long>**, std::vector<mapbox::geometry::wagyu::local_minimum<long long>*, std::allocator<mapbox::geometry::wagyu::local_minimum<long long>*> > >, __gnu_cxx::__ops::_Iter_comp_iter<mapbox::geometry::wagyu::local_minimum_sorter<long long> > > (__comp=..., __result=0x7fb03c9ece80, __last2=0x7fb03c3c61a0, __first2=0x7fb03c3c6190, __last1=0x7fb03c1bbf60, __first1=...) at /usr/include/c++/7/bits/stl_algo.h:2362
#1 std::__merge_adaptive<__gnu_cxx::__normal_iterator<mapbox::geometry::wagyu::local_minimum<long long>**, std::vector<mapbox::geometry::wagyu::local_minimum<long long>*, std::allocator<mapbox::geometry::wagyu::local_minimum<long long>*> > >, long, mapbox::geometry::wagyu::local_minimum<long long>**, __gnu_cxx::__ops::_Iter_comp_iter<mapbox::geometry::wagyu::local_minimum_sorter<long long> > > (__first=0x7fb03c3c5680, __middle=..., __last=0x7fb03c223610, __len1=<optimized out>, __len2=12, __buffer=0x7fb03c3c6190, __buffer_size=25, __comp=...) at /usr/include/c++/7/bits/stl_algo.h:2431
#2 0x00005645c7cb2add in std::__stable_sort_adaptive<__gnu_cxx::__normal_iterator<mapbox::geometry::wagyu::local_minimum<long long>**, std::vector<mapbox::geometry::wagyu::local_minimum<long long>*, std::allocator<mapbox::geometry::wagyu::local_minimum<long long>*> > >, mapbox::geometry::wagyu::local_minimum<long long>**, long, __gnu_cxx::__ops::_Iter_comp_iter<mapbox::geometry::wagyu::local_minimum_sorter<long long> > > (__first=0x7fb03c9ece80, __last=<error reading variable: Cannot access memory at address 0x770>, __last@entry=0x7fb03c223610, __buffer=__buffer@entry=0x7fb03c3c6190, __buffer_size=__buffer_size@entry=25, __comp=...) at /usr/include/c++/7/bits/stl_algo.h:2751
#3 0x00005645c7cc18a8 in std::__stable_sort<__gnu_cxx::__normal_iterator<mapbox::geometry::wagyu::local_minimum<long long>**, std::vector<mapbox::geometry::wagyu::local_minimum<long long>*, std::allocator<mapbox::geometry::wagyu::local_minimum<long long>*> > >, __gnu_cxx::__ops::_Iter_comp_iter<mapbox::geometry::wagyu::local_minimum_sorter<long long> > > (__comp=..., __last=..., __first=...) at /usr/include/c++/7/bits/stl_algo.h:5008
#4 std::stable_sort<__gnu_cxx::__normal_iterator<mapbox::geometry::wagyu::local_minimum<long long>**, std::vector<mapbox::geometry::wagyu::local_minimum<long long>*, std::allocator<mapbox::geometry::wagyu::local_minimum<long long>*> > >, mapbox::geometry::wagyu::local_minimum_sorter<long long> > (__last=..., __first=..., __comp=...) at /usr/include/c++/7/bits/stl_algo.h:5077
#5 mapbox::geometry::wagyu::execute_vatti<long long> (minima_list=std::deque with 25 elements = {...}, manager=..., cliptype=cliptype@entry=mapbox::geometry::wagyu::clip_type_union, subject_fill_type=subject_fill_type@entry=mapbox::geometry::wagyu::fill_type_positive, clip_fill_type=clip_fill_type@entry=mapbox::geometry::wagyu::fill_type_positive) at ./mapbox/geometry/wagyu/vatti.hpp:36
#6 0x00005645c7ca3c7d in mapbox::geometry::wagyu::wagyu<long long>::execute<long long> (clip_fill_type=mapbox::geometry::wagyu::fill_type_positive, subject_fill_type=mapbox::geometry::wagyu::fill_type_positive, solution=..., cliptype=mapbox::geometry::wagyu::clip_type_union, this=0x7fc3a6587e20) at ./mapbox/geometry/wagyu/wagyu.hpp:130
#7 clean_or_clip_poly (geom=std::vector of length 120, capacity 128 = {...}, z=z@entry=0, buffer=buffer@entry=0, clip=clip@entry=false) at geometry.cpp:272
#8 0x00005645c7c7658c in partial_feature_worker (v=0x7fb03d494b70) at tile.cpp:501
#9 0x00005645c7c844ee in write_tile (geoms=geoms@entry=0x7fb03c27c710, geompos_in=geompos_in@entry=0x7fc3a6588eb0, metabase=<optimized out>, stringpool=<optimized out>, z=<optimized out>, tx=<optimized out>, ty=<optimized out>, detail=<optimized out>, min_detail=<optimized out>, outdb=<optimized out>, outdir=<optimized out>, buffer=<optimized out>, fname=<optimized out>, geomfile=<optimized out>, minzoom=<optimized out>, maxzoom=<optimized out>, todo=<optimized out>, along=<optimized out>, alongminus=<optimized out>, gamma=<optimized out>, child_shards=<optimized out>, meta_off=<optimized out>, pool_off=<optimized out>, initial_x=<optimized out>, initial_y=<optimized out>, running=<optimized out>, simplification=<optimized out>, layermaps=<optimized out>, layer_unmaps=<optimized out>, tiling_seg=<optimized out>, pass=<optimized out>, passes=<optimized out>, mingap=<optimized out>, minextent=<optimized out>, fraction=<optimized out>, prefilter=<optimized out>, postfilter=<optimized out>, filter=<optimized out>, arg=<optimized out>) at tile.cpp:2115
#10 0x00005645c7c86046 in run_thread (vargs=0x5645c8dc9e10) at tile.cpp:2585
#11 0x00007fc4793856db in start_thread (arg=0x7fc3a6589700) at pthread_create.c:463
#12 0x00007fc47876f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 3 (Thread 0x7fc3a758b700 (LWP 30670)):
#0 0x00007fc4798a907c in ?? () from /lib/x86_64-linux-gnu/libz.so.1
#1 0x00007fc4798aaf98 in ?? () from /lib/x86_64-linux-gnu/libz.so.1
#2 0x00007fc4798ac1ed in deflate () from /lib/x86_64-linux-gnu/libz.so.1
#3 0x00005645c7ccae78 in compress (input="\032\224\315\021x\002\n\aparcels(\200 \032\nCountyFIPS\032\bATTOM ID\032\003APN\"\a\n\005\064\070\063\067\065\"[\nY165089343,244128855,164887659,166242411,244128854,244569663,245221457,167882610,251930128\"\177\n}R065162012000,R065162011900,R065162045680,R065162"..., output="\037\213\b\000\000\000\000\000\002\003d\275K\250\377\301\222\330\005wfr\357=\367\225;w&\213\001\061\234\225\342Ytw\365s\031\024!\213h\320lĕ\210;Q\361\001\272\020EA\204\370\b\030P\f1&DF\006$\032\334J$\v%\276 00\340#F\207Ġ\213HF\023#\001\355\252\356\256\356\317?gq~]\337~W\277\252\252\253\252\177\345\017\376\267?\375g\277\363\361\335\177\342\037\372'\377\341\177\344\037\375\247\376\266\177\361w\376\312\307\337\371\217\377\063\377\330?\375\317\375ݿ\373\367\376\375\277\362\275\337\365\373~\337\337\373{~\347\357\376\273~\345\347~\327\357\375{>\277\373\361\v\271K+\237\377\340\307?\020k\t"...) at mvt.cpp:100
#4 0x00005645c7c83e27 in write_tile (geoms=geoms@entry=0x7fb0384ba820, geompos_in=geompos_in@entry=0x7fc3a758aeb0, metabase=<optimized out>, stringpool=<optimized out>, z=<optimized out>, tx=<optimized out>, ty=<optimized out>, detail=<optimized out>, min_detail=<optimized out>, outdb=<optimized out>, outdir=<optimized out>, buffer=<optimized out>, fname=<optimized out>, geomfile=<optimized out>, minzoom=<optimized out>, maxzoom=<optimized out>, todo=<optimized out>, along=<optimized out>, alongminus=<optimized out>, gamma=<optimized out>, child_shards=<optimized out>, meta_off=<optimized out>, pool_off=<optimized out>, initial_x=<optimized out>, initial_y=<optimized out>, running=<optimized out>, simplification=<optimized out>, layermaps=<optimized out>, layer_unmaps=<optimized out>, tiling_seg=<optimized out>, pass=<optimized out>, passes=<optimized out>, mingap=<optimized out>, minextent=<optimized out>, fraction=<optimized out>, prefilter=<optimized out>, postfilter=<optimized out>, filter=<optimized out>, arg=<optimized out>) at tile.cpp:2422
#5 0x00005645c7c86046 in run_thread (vargs=0x5645c8dc9730) at tile.cpp:2585
#6 0x00007fc4793856db in start_thread (arg=0x7fc3a758b700) at pthread_create.c:463
#7 0x00007fc47876f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 2 (Thread 0x7fc3a7d8c700 (LWP 30671)):
#0 0x00007fc4786d5df2 in _IO_getc (fp=0x7fb0300737e0) at getc.c:39
#1 0x00005645c7cd3592 in deserialize_ulong_long_io (geompos=0x7fc3a7d8beb0, zigzag=<synthetic pointer>, f=0x7fb0300737e0) at serial.cpp:132
#2 deserialize_long_long_io (f=f@entry=0x7fb0300737e0, n=n@entry=0x7fc3a7d8aba0, geompos=geompos@entry=0x7fc3a7d8beb0) at serial.cpp:122
#3 0x00005645c7c9e4e8 in decode_geometry (meta=meta@entry=0x7fb0300737e0, geompos=geompos@entry=0x7fc3a7d8beb0, z=z@entry=13, tx=tx@entry=2401, ty=ty@entry=3076, bbox=0x7fc3a7d8afd8, initial_x=733864672, initial_y=1714676128) at geometry.cpp:51
#4 0x00005645c7cd4370 in deserialize_feature (geoms=0x7fb0300737e0, geompos_in=0x7fc3a7d8beb0, metabase=0x7fc477f7f000 <error: Cannot access memory at address 0x7fc477f7f000>, meta_off=0x7ffe69de6ff0, z=13, tx=2401, ty=3076, initial_x=0x7ffe69de7160, initial_y=0x7ffe69de7110) at serial.cpp:279
#5 0x00005645c7c76c0f in next_feature (geoms=geoms@entry=0x7fb0300737e0, geompos_in=geompos_in@entry=0x7fc3a7d8beb0, metabase=metabase@entry=0x7fc477f7f000 <error: Cannot access memory at address 0x7fc477f7f000>, meta_off=meta_off@entry=0x7ffe69de6ff0, z=z@entry=13, tx=<optimized out>, ty=<optimized out>, initial_x=<optimized out>, initial_y=<optimized out>, original_features=<optimized out>, unclipped_features=<optimized out>, nextzoom=<optimized out>, maxzoom=<optimized out>, minzoom=<optimized out>, max_zoom_increment=<optimized out>, pass=<optimized out>, passes=<optimized out>, along=<optimized out>, alongminus=<optimized out>, buffer=<optimized out>, within=<optimized out>, first_time=<optimized out>, geomfile=<optimized out>, geompos=<optimized out>, oprogress=<optimized out>, todo=todo@entry=12998412398, fname=<optimized out>, child_shards=<optimized out>, filter=<optimized out>, stringpool=<optimized out>, pool_off=<optimized out>, layer_unmaps=<optimized out>) at tile.cpp:1317
#6 0x00005645c7c80c8d in write_tile (geoms=geoms@entry=0x7fb0300737e0, geompos_in=geompos_in@entry=0x7fc3a7d8beb0, metabase=<optimized out>, stringpool=<optimized out>, z=<optimized out>, tx=<optimized out>, ty=<optimized out>, detail=<optimized out>, min_detail=<optimized out>, outdb=<optimized out>, outdir=<optimized out>, buffer=<optimized out>, fname=<optimized out>, geomfile=<optimized out>, minzoom=<optimized out>, maxzoom=<optimized out>, todo=<optimized out>, along=<optimized out>, alongminus=<optimized out>, gamma=<optimized out>, child_shards=<optimized out>, meta_off=<optimized out>, pool_off=<optimized out>, initial_x=<optimized out>, initial_y=<optimized out>, running=<optimized out>, simplification=<optimized out>, layermaps=<optimized out>, layer_unmaps=<optimized out>, tiling_seg=<optimized out>, pass=<optimized out>, passes=<optimized out>, mingap=<optimized out>, minextent=<optimized out>, fraction=<optimized out>, prefilter=<optimized out>, postfilter=<optimized out>, filter=<optimized out>, arg=<optimized out>) at tile.cpp:1861
#7 0x00005645c7c86046 in run_thread (vargs=0x5645c8dc9890) at tile.cpp:2585
#8 0x00007fc4793856db in start_thread (arg=0x7fc3a7d8c700) at pthread_create.c:463
#9 0x00007fc47876f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 1 (Thread 0x7fc3a6d8a700 (LWP 30669)):
#0 deserialize_ulong_long (zigzag=<synthetic pointer>, f=<synthetic pointer>) at serial.cpp:97
#1 deserialize_long_long (n=<synthetic pointer>, f=<synthetic pointer>) at serial.cpp:88
#2 deserialize_feature (geoms=0x7fb024138d70, geompos_in=0x7fc3a6d89eb0, metabase=0x7fc477f7f000 <error: Cannot access memory at address 0x7fc477f7f000>, meta_off=0x7ffe69de6ff0, z=4294967249, tx=2197946775, ty=33667841, initial_x=0x7ffe69de7160, initial_y=0x7ffe69de7110) at serial.cpp:295
#3 0x00005645c7c76c0f in next_feature (geoms=geoms@entry=0x7fb024138d70, geompos_in=geompos_in@entry=0x7fc3a6d89eb0, metabase=metabase@entry=0x7fc477f7f000 <error: Cannot access memory at address 0x7fc477f7f000>, meta_off=meta_off@entry=0x7ffe69de6ff0, z=z@entry=-47, tx=<optimized out>, ty=<optimized out>, initial_x=<optimized out>, initial_y=<optimized out>, original_features=<optimized out>, unclipped_features=<optimized out>, nextzoom=<optimized out>, maxzoom=<optimized out>, minzoom=<optimized out>, max_zoom_increment=<optimized out>, pass=<optimized out>, passes=<optimized out>, along=<optimized out>, alongminus=<optimized out>, buffer=<optimized out>, within=<optimized out>, first_time=<optimized out>, geomfile=<optimized out>, geompos=<optimized out>, oprogress=<optimized out>, todo=todo@entry=12998412398, fname=<optimized out>, child_shards=<optimized out>, filter=<optimized out>, stringpool=<optimized out>, pool_off=<optimized out>, layer_unmaps=<optimized out>) at tile.cpp:1317
#4 0x00005645c7c80c8d in write_tile (geoms=geoms@entry=0x7fb024138d70, geompos_in=geompos_in@entry=0x7fc3a6d89eb0, metabase=<optimized out>, stringpool=<optimized out>, z=<optimized out>, tx=<optimized out>, ty=<optimized out>, detail=<optimized out>, min_detail=<optimized out>, outdb=<optimized out>, outdir=<optimized out>, buffer=<optimized out>, fname=<optimized out>, geomfile=<optimized out>, minzoom=<optimized out>, maxzoom=<optimized out>, todo=<optimized out>, along=<optimized out>, alongminus=<optimized out>, gamma=<optimized out>, child_shards=<optimized out>, meta_off=<optimized out>, pool_off=<optimized out>, initial_x=<optimized out>, initial_y=<optimized out>, running=<optimized out>, simplification=<optimized out>, layermaps=<optimized out>, layer_unmaps=<optimized out>, tiling_seg=<optimized out>, pass=<optimized out>, passes=<optimized out>, mingap=<optimized out>, minextent=<optimized out>, fraction=<optimized out>, prefilter=<optimized out>, postfilter=<optimized out>, filter=<optimized out>, arg=<optimized out>) at tile.cpp:1861
#5 0x00005645c7c86046 in run_thread (vargs=0x5645c8dc95d0) at tile.cpp:2585
#6 0x00007fc4793856db in start_thread (arg=0x7fc3a6d8a700) at pthread_create.c:463
#7 0x00007fc47876f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
s
With this command line the crash did not occur:
~/logbt/logbt -- tippecanoe --output=mbtiles/parcels.mbtiles --force --read-parallel --minimum-zoom=13 --maximum-zoom=15 --generate-ids --simplification=10 --simplify-only-low-zooms --include=APN --include=CountyFIPS --coalesce-smallest-as-needed --base-zoom=14 --accumulate-attribute=APN:comma --layer=parcels data/parcels.json
Thanks @stevage - this is the key line that appears to be causing the segfault:
deserialize_ulong_long (zigzag=
, f= ) at serial.cpp:97
@ericfischer any idea how to fix this?
I'd also be interested to hear any possible workarounds.
Thanks. This must be indexing off the end of the buffer that encodes a variable-length number, either because it was encoded wrong in the first place, or because the metadata pointer is pointing to the wrong place.
I wish I had a workaround to offer immediately, but it looks like it's not as easy as I thought to substitute a different representation for serialized numbers. I'll keep investigating.
The workaround seems to be to insert inline_meta = true
before this check:
https://github.com/mapbox/tippecanoe/blob/ddb79937d932f753edd5fba994b23281ff45f19c/serial.cpp#L654
but I'm still not sure what is causing the externalized metadata to be misencoded.
Is there anything more I can do to help?
OIC. I'll try patching that and see if it prevents the crash.
Sorry for the dumb question, but will there be side-effects from that change? I'm not really sure what "externalized metadata" is.
Sorry to be unclear. The "separate metadata" file is basically a holdover from an older version of Tippecanoe in which most of the characteristics of a feature were stored in a separate file so they wouldn't have to be duplicated across temporary files when a feature was clipped into many sub-features in different tiles. I gradually moved more and more things into the "geometry" file, so all it has in it now is a table of indices of key/value attribute pairs into the attribute pool, and is only populated when a feature is expected to span a large number of tiles.
I should probably just get rid of it, since it doesn't seem to work reliably and is another thing that has to be handled as a special case when it exists.
Could you please try https://github.com/mapbox/tippecanoe/pull/845 and see if it fixes the problem for you?
It crashed as before:
Going to try keeping the biggest 20.25% of the features to make it fit
Segmentation fault073035818/2695646785
Tiles for parcels:parcels failed in 4.14 h.
I forgot to use logbt, so will do that now.
Hmm, so much for that idea. Any chance you could share your data file so I can try to reproduce the exact circumstances?
Trying to find a way to do that. It's 81GB uncompressed, and also subject to licensing rules which I'm trying to get clarity on.
In the meantime, here's logbt:
mfile=0x7fff97437b60, fname=0x7fff9743bfda "mbtiles/parcels.mbtiles", t=<optimized out>, layer=<optimized out>, feature_minzoom=<optimized out>, child_shards=<optimized out>, max_zoom_increment=<optimized out>, seq=0, tippecanoe_minzoom=<optimized out>, tippecanoe_maxzoom=<optimized out>, segment=<optimized out>, initial_x=0x7fff97438240, initial_y=0x7fff974381f0, metakeys=std::vector of length 3, capacity 4 = {...}, metavals=std::vector of length 3, capacity 4 = {...}, has_id=true, id=21697592808, index=0, extent=9824) at tile.cpp:348
#6 0x00005594d9a1fa35 in next_feature (geoms=geoms@entry=0x7f41245b7100, geompos_in=geompos_in@entry=0x7f54a5ae2eb0, z=z@entry=13, tx=tx@entry=1416, ty=ty@entry=3285, initial_x=<optimized out>, initial_y=<optimized out>, original_features=<optimized out>, unclipped_features=<optimized out>, nextzoom=<optimized out>, maxzoom=<optimized out>, minzoom=<optimized out>, max_zoom_increment=<optimized out>, pass=<optimized out>, passes=<optimized out>, along=<optimized out>, alongminus=<optimized out>, buffer=<optimized out>, within=<optimized out>, first_time=<optimized out>, geomfile=<optimized out>, geompos=<optimized out>, oprogress=<optimized out>, todo=todo@entry=12849808566, fname=<optimized out>, child_shards=<optimized out>, filter=<optimized out>, stringpool=<optimized out>, pool_off=<optimized out>, layer_unmaps=<optimized out>) at tile.cpp:1343
#7 0x00005594d9a28930 in write_tile (geoms=geoms@entry=0x7f41245b7100, geompos_in=geompos_in@entry=0x7f54a5ae2eb0, stringpool=<optimized out>, z=<optimized out>, tx=<optimized out>, ty=<optimized out>, detail=<optimized out>, min_detail=<optimized out>, outdb=<optimized out>, outdir=<optimized out>, buffer=<optimized out>, fname=<optimized out>, geomfile=<optimized out>, minzoom=<optimized out>, maxzoom=<optimized out>, todo=<optimized out>, along=<optimized out>, alongminus=<optimized out>, gamma=<optimized out>, child_shards=<optimized out>, pool_off=<optimized out>, initial_x=<optimized out>, initial_y=<optimized out>, running=<optimized out>, simplification=<optimized out>, layermaps=<optimized out>, layer_unmaps=<optimized out>, tiling_seg=<optimized out>, pass=<optimized out>, passes=<optimized out>, mingap=<optimized out>, minextent=<optimized out>, fraction=<optimized out>, prefilter=<optimized out>, postfilter=<optimized out>, filter=<optimized out>, arg=<optimized out>) at tile.cpp:1852
#8 0x00005594d9a2dd6a in run_thread (vargs=0x5594dad981d0) at tile.cpp:2576
#9 0x00007f5575c0f6db in start_thread (arg=0x7f54a5ae3700) at pthread_create.c:463
#10 0x00007f5574ff988f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 2 (Thread 0x7f54a32de700 (LWP 7280)):
#0 serialize_ulong_long (out=out@entry=0x5594dad96d50, zigzag=<optimized out>, fpos=fpos@entry=0x7f54a32dd330, fname=fname@entry=0x7fff9743bfda "mbtiles/parcels.mbtiles") at serial.cpp:68
#1 0x00005594d9a7bb46 in serialize_long_long (fname=0x7fff9743bfda "mbtiles/parcels.mbtiles", fpos=0x7f54a32dd330, n=<optimized out>, out=0x5594dad96d50) at serial.cpp:45
#2 write_geometry (wy=51470034, wx=38823941, fname=0x7fff9743bfda "mbtiles/parcels.mbtiles", out=0x5594dad96d50, fpos=0x7f54a32dd330, dv=std::vector of length 16, capacity 16 = {...}) at serial.cpp:180
#3 serialize_feature (geomfile=0x5594dad96d50, sf=sf@entry=0x7f54a32dccc0, geompos=geompos@entry=0x7f54a32dd330, fname=fname@entry=0x7fff9743bfda "mbtiles/parcels.mbtiles", wx=<optimized out>, wy=<optimized out>, include_minzoom=true) at serial.cpp:219
#4 0x00005594d9a1de65 in rewrite (geom=std::vector of length 16, capacity 16 = {...}, z=z@entry=13, nextzoom=14, maxzoom=<optimized out>, bbox=bbox@entry=0x7f54a32dd1a0, tx=tx@entry=2369, ty=<optimized out>, buffer=<optimized out>, within=0x7f54a32dd350, geompos=0x7f54a32dd320, geomfile=0x7fff97437ba0, fname=0x7fff9743bfda "mbtiles/parcels.mbtiles", t=<optimized out>, layer=<optimized out>, feature_minzoom=<optimized out>, child_shards=<optimized out>, max_zoom_increment=<optimized out>, seq=0, tippecanoe_minzoom=<optimized out>, tippecanoe_maxzoom=<optimized out>, segment=<optimized out>, initial_x=0x7fff97438240, initial_y=0x7fff974381f0, metakeys=std::vector of length 3, capacity 4 = {...}, metavals=std::vector of length 3, capacity 4 = {...}, has_id=true, id=10857074377, index=0, extent=42052) at tile.cpp:348
#5 0x00005594d9a1fa35 in next_feature (geoms=geoms@entry=0x7f41300084a0, geompos_in=geompos_in@entry=0x7f54a32ddeb0, z=z@entry=13, tx=tx@entry=2369, ty=ty@entry=3141, initial_x=<optimized out>, initial_y=<optimized out>, original_features=<optimized out>, unclipped_features=<optimized out>, nextzoom=<optimized out>, maxzoom=<optimized out>, minzoom=<optimized out>, max_zoom_increment=<optimized out>, pass=<optimized out>, passes=<optimized out>, along=<optimized out>, alongminus=<optimized out>, buffer=<optimized out>, within=<optimized out>, first_time=<optimized out>, geomfile=<optimized out>, geompos=<optimized out>, oprogress=<optimized out>, todo=todo@entry=12849808566, fname=<optimized out>, child_shards=<optimized out>, filter=<optimized out>, stringpool=<optimized out>, pool_off=<optimized out>, layer_unmaps=<optimized out>) at tile.cpp:1343
#6 0x00005594d9a28930 in write_tile (geoms=geoms@entry=0x7f41300084a0, geompos_in=geompos_in@entry=0x7f54a32ddeb0, stringpool=<optimized out>, z=<optimized out>, tx=<optimized out>, ty=<optimized out>, detail=<optimized out>, min_detail=<optimized out>, outdb=<optimized out>, outdir=<optimized out>, buffer=<optimized out>, fname=<optimized out>, geomfile=<optimized out>, minzoom=<optimized out>, maxzoom=<optimized out>, todo=<optimized out>, along=<optimized out>, alongminus=<optimized out>, gamma=<optimized out>, child_shards=<optimized out>, pool_off=<optimized out>, initial_x=<optimized out>, initial_y=<optimized out>, running=<optimized out>, simplification=<optimized out>, layermaps=<optimized out>, layer_unmaps=<optimized out>, tiling_seg=<optimized out>, pass=<optimized out>, passes=<optimized out>, mingap=<optimized out>, minextent=<optimized out>, fraction=<optimized out>, prefilter=<optimized out>, postfilter=<optimized out>, filter=<optimized out>, arg=<optimized out>) at tile.cpp:1852
#7 0x00005594d9a2dd6a in run_thread (vargs=0x5594dad98470) at tile.cpp:2576
#8 0x00007f5575c0f6db in start_thread (arg=0x7f54a32de700) at pthread_create.c:463
#9 0x00007f5574ff988f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 1 (Thread 0x7f54a3adf700 (LWP 7274)):
#0 0x00005594d9a7c531 in deserialize_feature (geoms=0x7f41181e4650, geompos_in=0x7f54a3adeeb0, z=4294967292, tx=2736259840, ty=3397699503, initial_x=0x7fff97438240, initial_y=0x7fff974381f0) at serial.cpp:275
#1 0x00005594d9a1ebb6 in next_feature (geoms=geoms@entry=0x7f41181e4650, geompos_in=geompos_in@entry=0x7f54a3adeeb0, z=z@entry=-4, tx=tx@entry=2736259840, ty=ty@entry=3397699503, initial_x=<optimized out>, initial_y=<optimized out>, original_features=<optimized out>, unclipped_features=<optimized out>, nextzoom=<optimized out>, maxzoom=<optimized out>, minzoom=<optimized out>, max_zoom_increment=<optimized out>, pass=<optimized out>, passes=<optimized out>, along=<optimized out>, alongminus=<optimized out>, buffer=<optimized out>, within=<optimized out>, first_time=<optimized out>, geomfile=<optimized out>, geompos=<optimized out>, oprogress=<optimized out>, todo=todo@entry=12849808566, fname=<optimized out>, child_shards=<optimized out>, filter=<optimized out>, stringpool=<optimized out>, pool_off=<optimized out>, layer_unmaps=<optimized out>) at tile.cpp:1318
#2 0x00005594d9a28930 in write_tile (geoms=geoms@entry=0x7f41181e4650, geompos_in=geompos_in@entry=0x7f54a3adeeb0, stringpool=<optimized out>, z=<optimized out>, tx=<optimized out>, ty=<optimized out>, detail=<optimized out>, min_detail=<optimized out>, outdb=<optimized out>, outdir=<optimized out>, buffer=<optimized out>, fname=<optimized out>, geomfile=<optimized out>, minzoom=<optimized out>, maxzoom=<optimized out>, todo=<optimized out>, along=<optimized out>, alongminus=<optimized out>, gamma=<optimized out>, child_shards=<optimized out>, pool_off=<optimized out>, initial_x=<optimized out>, initial_y=<optimized out>, running=<optimized out>, simplification=<optimized out>, layermaps=<optimized out>, layer_unmaps=<optimized out>, tiling_seg=<optimized out>, pass=<optimized out>, passes=<optimized out>, mingap=<optimized out>, minextent=<optimized out>, fraction=<optimized out>, prefilter=<optimized out>, postfilter=<optimized out>, filter=<optimized out>, arg=<optimized out>) at tile.cpp:1852
#3 0x00005594d9a2dd6a in run_thread (vargs=0x5594dad97c90) at tile.cpp:2576
#4 0x00007f5575c0f6db in start_thread (arg=0x7f54a3adf700) at pthread_create.c:463
#5 0x00007f5574ff988f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
@ericfischer Were you able to make any progress with the file I sent back in Feb? I emailed it to the address on your Github profile page.
@stevage I am facing the exact problem. Did you get a solution over the past year and half now?
I have been processing a file which is 81GB of newline-delimited JSON. I have processed it a couple of times successfully on this machine. Just now I changed the parameters slightly:
and got a seg fault:
Now, following this I'll try running it again to actually get the core dump, which seems to not be written by default.
The changes between "worked" and "crashed" are:
Somewhere in the log I also noticed there was one tile that tippecanoe couldn't make small enough. What does it actually do in that situation? Previously I thought I had seen it abort altogether.
I have also managed to process a subset of this dataset successfully, with these exact settings.
I'm not sure how to share the source file with you, given its size. Any ideas?
tippecanoe v1.32.12