{"action":"opened","issue":{"url":"https://api.github.com/repos/marekr/kicad-issue-test/issues/344","labels_url":"https://api.github.com/repos/marekr/kicad-issue-test/issues/344/labels{/name}","comments_url":"https://api.github.com/repos/marekr/kicad-issue-test/issues/344/comments","events_url":"https://api.github.com/repos/marekr/kicad-issue-test/issues/344/events","html_url":"https://github.com/marekr/kicad-issue-test/issues/344","id":120599340,"number":344,"title":"another boost::polygon segfault in 3D","user":{"login":"marekr","id":1838013,"avatar_url":"https://avatars.githubusercontent.com/u/1838013?v=3","gravatar_id":"","url":"https://api.github.com/users/marekr","html_url":"https://github.com/marekr","followers_url":"https://api.github.com/users/marekr/followers","following_url":"https://api.github.com/users/marekr/following{/other_user}","gists_url":"https://api.github.com/users/marekr/gists{/gist_id}","starred_url":"https://api.github.com/users/marekr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marekr/subscriptions","organizations_url":"https://api.github.com/users/marekr/orgs","repos_url":"https://api.github.com/users/marekr/repos","events_url":"https://api.github.com/users/marekr/events{/privacy}","received_events_url":"https://api.github.com/users/marekr/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-12-06T01:01:05Z","updated_at":"2015-12-06T01:01:05Z","closed_at":null,"body":"This PCB file segfaults the 3D viewer:\n\nhttp://misc.c4757p.com/noname.kicad_pcb\n\nIt's not even necessary to have the models present on the system - I don't.\n\nbzr-5871\nApplication: pcbnew\nVersion: (after 2015-may-25 BZR unknown)-product debug build\nwxWidgets: Version 3.0.2 (debug,wchar_t,compiler with C++ ABI 1002,GCC 4.2.1,wx containers,compatible with 2.8)\nPlatform: Linux 4.0.5-1-ARCH x86_64, 64 bit, Little endian, wxGTK\nBoost version: 1.58.0\n         USE_WX_GRAPHICS_CONTEXT=OFF\n         USE_WX_OVERLAY=OFF\n         KICAD_SCRIPTING=ON\n         KICAD_SCRIPTING_MODULES=ON\n         KICAD_SCRIPTING_WXPYTHON=ON\n         USE_FP_LIB_TABLE=HARD_CODED_ON\n         BUILD_GITHUB_PLUGIN=ON\n\n\nProgram received signal SIGSEGV, Segmentation fault.\nboost::polygon::polygon_arbitrary_formation<int>::active_tail_arbitrary::pushPoint (this=0x1007fffffffa410, point=...) at /usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1063\n1063\t        if(head_) {\n(gdb) bt\n#0  boost::polygon::polygon_arbitrary_formation<int>::active_tail_arbitrary::pushPoint (this=0x1007fffffffa410, point=...) at /usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1063\n#1  0x00007fffe6464cc0 in boost::polygon::polygon_arbitrary_formation<int>::processEvent_<std::vector<boost::polygon::polygon_data<int>, std::allocator<boost::polygon::polygon_data<int> > >, __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > > > (this=0x7fffffffa398, output=std::vector of length 14, capacity 4361 = {...}, inputBegin=..., inputEnd=...)\n    at /usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1761\n#2  0x00007fffe646374b in boost::polygon::polygon_arbitrary_formation<int>::scan<std::vector<boost::polygon::polygon_data<int>, std::allocator<boost::polygon::polygon_data<int> > >, __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > > > (this=0x7fffffffa398, output=std::vector of length 14, capacity 4361 = {...}, inputBegin=..., inputEnd=...)\n    at /usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361\n#3  0x00007fffe64630dd in boost::polygon::polygon_set_data<int>::get_fracture<std::vector<boost::polygon::polygon_data<int>, std::allocator<boost::polygon::polygon_data<int> > >, boost::polygon::polygon_concept> (this=0x7fffffffa4a0, \n    container=std::vector of length 14, capacity 4361 = {...}, fracture_holes=false) at /usr/include/boost/polygon/polygon_set_data.hpp:801\n#4  0x00007fffe6462d82 in boost::polygon::polygon_set_data<int>::get_dispatch<std::vector<boost::polygon::polygon_data<int>, std::allocator<boost::polygon::polygon_data<int> > > > (this=0x7fffffffa4a0, output=std::vector of length 14, capacity 4361 = {...}, tag=...)\n    at /usr/include/boost/polygon/polygon_set_data.hpp:784\n#5  0x00007fffe6462d4d in boost::polygon::polygon_set_data<int>::get<std::vector<boost::polygon::polygon_data<int>, std::allocator<boost::polygon::polygon_data<int> > > > (this=0x7fffffffa4a0, output=std::vector of length 14, capacity 4361 = {...})\n    at /usr/include/boost/polygon/polygon_set_data.hpp:236\n#6  0x00007fffe646266e in boost::polygon::polygon_set_mutable_traits<std::vector<boost::polygon::polygon_data<int>, std::allocator<boost::polygon::polygon_data<int> > > >::set<__gnu_cxx::__normal_iterator<std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int> const*, std::vector<std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>, std::allocator<std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int> > > > > (\n    polygon_set=std::vector of length 14, capacity 4361 = {...}, input_begin=..., input_end=...) at /usr/include/boost/polygon/polygon_set_traits.hpp:100\n#7  0x00007fffe64d91d8 in boost::polygon::self_assignment_boolean_op<std::vector<boost::polygon::polygon_data<int>, std::allocator<boost::polygon::polygon_data<int> > >, std::vector<boost::polygon::polygon_data<int>, std::allocator<boost::polygon::polygon_data<int> > >, 3> (\n    lvalue_=std::vector of length 14, capacity 4361 = {...}, rvalue_=std::vector of length 24, capacity 24 = {...}) at /usr/include/boost/polygon/detail/polygon_set_view.hpp:199\n#8  0x00007fffe64d913d in boost::polygon::operators::operator-=<std::vector<boost::polygon::polygon_data<int>, std::allocator<boost::polygon::polygon_data<int> > >, std::vector<boost::polygon::polygon_data<int>, std::allocator<boost::polygon::polygon_data<int> > > > (\n    lvalue=std::vector of length 14, capacity 4361 = {...}, rvalue=std::vector of length 24, capacity 24 = {...}) at /usr/include/boost/polygon/polygon_set_concept.hpp:440\n#9  0x00007fffe697b098 in EDA_3D_CANVAS::buildBoard3DView (this=0x2e68400, aBoardList=2, aBodyOnlyList=3, aErrorMessages=0x7fffffffb0d0, aActivity=0x7fffffffb0a8) at /home/cmp/git/kicad/3d-viewer/3d_draw.cpp:930\n#10 0x00007fffe6977dc5 in EDA_3D_CANVAS::CreateDrawGL_List (this=0x2e68400, aErrorMessages=0x7fffffffb0d0, aActivity=0x7fffffffb0a8) at /home/cmp/git/kicad/3d-viewer/3d_draw.cpp:1423\n#11 0x00007fffe6978aa1 in EDA_3D_CANVAS::Redraw (this=0x2e68400) at /home/cmp/git/kicad/3d-viewer/3d_draw.cpp:414\n#12 0x00007fffe69706aa in EDA_3D_CANVAS::OnPaint (this=0x2e68400, event=...) at /home/cmp/git/kicad/3d-viewer/3d_canvas.cpp:527\n#13 0x00007ffff6393fd9 in wxAppConsoleBase::HandleEvent (this=0x72e800, handler=0x2e68400, func=(void (wxEvtHandler::*)(wxEvtHandler * const, wxEvent &)) 0x7fffe6970680 <EDA_3D_CANVAS::OnPaint(wxPaintEvent&)>, event=...) at ./src/common/appbase.cpp:611\n#14 0x00007ffff639404c in wxAppConsoleBase::CallEventHandler (this=0x72e800, handler=0x2e68400, functor=..., event=...) at ./src/common/appbase.cpp:623\n#15 0x00007ffff64b6d7a in wxEvtHandler::ProcessEventIfMatchesId (entry=..., handler=0x2e68400, event=...) at ./src/common/event.cpp:1392\n#16 0x00007ffff64b5a8b in wxEventHashTable::HandleEvent (this=0x7fffe783ddc0 <EDA_3D_CANVAS::sm_eventHashTable>, event=..., self=0x2e68400) at ./src/common/event.cpp:998\n#17 0x00007ffff64b729b in wxEvtHandler::TryHereOnly (this=0x2e68400, event=...) at ./src/common/event.cpp:1589\n#18 0x00007ffff64b8c81 in wxEvtHandler::TryBeforeAndHere (this=0x2e68400, event=...) at ./include/wx/event.h:3671\n#19 0x00007ffff64b709f in wxEvtHandler::ProcessEventLocally (this=0x2e68400, event=...) at ./src/common/event.cpp:1522\n#20 0x00007ffff64b7037 in wxEvtHandler::ProcessEvent (this=0x2e68400, event=...) at ./src/common/event.cpp:1495\n#21 0x00007ffff64b734b in wxEvtHandler::SafelyProcessEvent (this=0x2e68400, event=...) at ./src/common/event.cpp:1613\n#22 0x00007ffff6df3da0 in wxWindowBase::HandleWindowEvent (this=0x2e68400, event=...) at ./src/common/wincmn.cpp:1525\n#23 0x00007ffff7bd101f in gtk_glwindow_map_callback (win=0x2e68400) at ./src/gtk/glcanvas.cpp:49\n#24 0x00007ffff2ede2f5 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0\n#25 0x00007ffff2ef002c in ?? () from /usr/lib/libgobject-2.0.so.0\n#26 0x00007ffff2ef8688 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0\n#27 0x00007ffff2ef88ef in g_signal_emit () from /usr/lib/libgobject-2.0.so.0\n#28 0x00007ffff362406e in gtk_widget_map () from /usr/lib/libgtk-x11-2.0.so.0\n#29 0x00007ffff34c4068 in ?? () from /usr/lib/libgtk-x11-2.0.so.0\n#30 0x00007ffff348ac1f in ?? () from /usr/lib/libgtk-x11-2.0.so.0\n#31 0x00007ffff2ede472 in ?? () from /usr/lib/libgobject-2.0.so.0\n#32 0x00007ffff2ef7f97 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0\n#33 0x00007ffff2ef88ef in g_signal_emit () from /usr/lib/libgobject-2.0.so.0\n#34 0x00007ffff362406e in gtk_widget_map () from /usr/lib/libgtk-x11-2.0.so.0\n#35 0x00007ffff345761a in ?? () from /usr/lib/libgtk-x11-2.0.so.0\n#36 0x00007ffff348ac1f in ?? () from /usr/lib/libgtk-x11-2.0.so.0\n#37 0x00007ffff2ede472 in ?? () from /usr/lib/libgobject-2.0.so.0\n#38 0x00007ffff2ef7f97 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0\n#39 0x00007ffff2ef88ef in g_signal_emit () from /usr/lib/libgobject-2.0.so.0\n#40 0x00007ffff362406e in gtk_widget_map () from /usr/lib/libgtk-x11-2.0.so.0\n#41 0x00007ffff3634532 in ?? () from /usr/lib/libgtk-x11-2.0.so.0\n#42 0x00007ffff2ede524 in ?? () from /usr/lib/libgobject-2.0.so.0\n#43 0x00007ffff2ef7f97 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0\n#44 0x00007ffff2ef88ef in g_signal_emit () from /usr/lib/libgobject-2.0.so.0\n#45 0x00007ffff362406e in gtk_widget_map () from /usr/lib/libgtk-x11-2.0.so.0\n#46 0x00007ffff362e52e in ?? () from /usr/lib/libgtk-x11-2.0.so.0\n#47 0x00007ffff2ede524 in ?? () from /usr/lib/libgobject-2.0.so.0\n#48 0x00007ffff2ef7f97 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0\n#49 0x00007ffff2ef88ef in g_signal_emit () from /usr/lib/libgobject-2.0.so.0\n#50 0x00007ffff3623606 in gtk_widget_show () from /usr/lib/libgtk-x11-2.0.so.0\n#51 0x00007ffff6c509c2 in wxWindow::Show (this=0x2e61200, show=true) at ./src/gtk/window.cpp:3191\n#52 0x00007ffff6c43f7b in wxTopLevelWindowGTK::Show (this=0x2e61200, show=true) at ./src/gtk/toplevel.cpp:1051\n#53 0x00007fffe618905e in PCB_EDIT_FRAME::Show3D_Frame (this=0xf18070, event=...) at /home/cmp/git/kicad/pcbnew/pcbframe.cpp:656\n#54 0x00007ffff6393fd9 in wxAppConsoleBase::HandleEvent (this=0x72e800, handler=0xf18070, func=&virtual table offset 2504, event=...) at ./src/common/appbase.cpp:611\n#55 0x00007ffff639404c in wxAppConsoleBase::CallEventHandler (this=0x72e800, handler=0xf18070, functor=..., event=...) at ./src/common/appbase.cpp:623\n#56 0x00007ffff64b6d7a in wxEvtHandler::ProcessEventIfMatchesId (entry=..., handler=0xf18070, event=...) at ./src/common/event.cpp:1392\n#57 0x00007ffff64b5a8b in wxEventHashTable::HandleEvent (this=0x7fffe7835150 <PCB_EDIT_FRAME::sm_eventHashTable>, event=..., self=0xf18070) at ./src/common/event.cpp:998\n#58 0x00007ffff64b729b in wxEvtHandler::TryHereOnly (this=0xf18070, event=...) at ./src/common/event.cpp:1589\n#59 0x00007ffff64b8c81 in wxEvtHandler::TryBeforeAndHere (this=0xf18070, event=...) at ./include/wx/event.h:3671\n#60 0x00007ffff64b7022 in wxEvtHandler::ProcessEvent (this=0xf18070, event=...) at ./src/common/event.cpp:1491\n#61 0x00007fffe6c3d66d in EDA_BASE_FRAME::ProcessEvent (this=0xf18070, aEvent=...) at /home/cmp/git/kicad/common/basicframe.cpp:164\n#62 0x00007ffff64b713a in wxEvtHandler::DoTryChain (this=0xf18418, event=...) at ./src/common/event.cpp:1554\n#63 0x00007ffff64b70b6 in wxEvtHandler::ProcessEventLocally (this=0xf18418, event=...) at ./src/common/event.cpp:1522\n#64 0x00007ffff64b7037 in wxEvtHandler::ProcessEvent (this=0xf18418, event=...) at ./src/common/event.cpp:1495\n#65 0x00007ffff6df9b6c in wxWindowBase::TryAfter (this=0x2975e20, event=...) at ./src/common/wincmn.cpp:3427\n#66 0x00007ffff64b706a in wxEvtHandler::ProcessEvent (this=0x2975e20, event=...) at ./src/common/event.cpp:1508\n#67 0x00007ffff64b734b in wxEvtHandler::SafelyProcessEvent (this=0x2975e20, event=...) at ./src/common/event.cpp:1613\n#68 0x00007ffff6df3da0 in wxWindowBase::HandleWindowEvent (this=0x2975e20, event=...) at ./src/common/wincmn.cpp:1525\n#69 0x00007ffff6da65b4 in wxMenuBase::SendEvent (this=0x29be220, itemid=6600, checked=-1) at ./src/common/menucmn.cpp:666\n---Type <return> to continue, or q <return> to quit---\n#70 0x00007ffff6cb3c7d in menuitem_activate (item=0x29ca0a0) at ./src/gtk/menu.cpp:582\n#71 0x00007ffff2ede2f5 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0\n#72 0x00007ffff2ef002c in ?? () from /usr/lib/libgobject-2.0.so.0\n#73 0x00007ffff2ef8688 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0\n#74 0x00007ffff2ef88ef in g_signal_emit () from /usr/lib/libgobject-2.0.so.0\n#75 0x00007ffff361c24c in ?? () from /usr/lib/libgtk-x11-2.0.so.0\n#76 0x00007ffff2ede2f5 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0\n#77 0x00007ffff2ef002c in ?? () from /usr/lib/libgobject-2.0.so.0\n#78 0x00007ffff2ef8195 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0\n#79 0x00007ffff2ef88ef in g_signal_emit () from /usr/lib/libgobject-2.0.so.0\n#80 0x00007ffff34439de in gtk_accel_group_activate () from /usr/lib/libgtk-x11-2.0.so.0\n#81 0x00007ffff3444db1 in gtk_accel_groups_activate () from /usr/lib/libgtk-x11-2.0.so.0\n#82 0x00007ffff3633dc5 in gtk_window_activate_key () from /usr/lib/libgtk-x11-2.0.so.0\n#83 0x00007ffff6c41a3b in wxgtk_tlw_key_press_event (widget=0x8821d0, event=0x2fb75d0) at ./src/gtk/toplevel.cpp:246\n#84 0x00007ffff350690f in ?? () from /usr/lib/libgtk-x11-2.0.so.0\n#85 0x00007ffff2ede2f5 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0\n#86 0x00007ffff2ef002c in ?? () from /usr/lib/libgobject-2.0.so.0\n#87 0x00007ffff2ef8195 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0\n#88 0x00007ffff2ef88ef in g_signal_emit () from /usr/lib/libgobject-2.0.so.0\n#89 0x00007ffff361dbac in ?? () from /usr/lib/libgtk-x11-2.0.so.0\n#90 0x00007ffff350512f in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0\n#91 0x00007ffff35054eb in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0\n#92 0x00007ffff317a2cc in ?? () from /usr/lib/libgdk-x11-2.0.so.0\n#93 0x00007ffff21bd9fd in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0\n#94 0x00007ffff21bdce0 in ?? () from /usr/lib/libglib-2.0.so.0\n#95 0x00007ffff21be002 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0\n#96 0x00007ffff3504467 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0\n#97 0x00007ffff6c2fce9 in wxGUIEventLoop::DoRun (this=0x2e92820) at ./src/gtk/evtloop.cpp:65\n#98 0x00007ffff63d2509 in wxEventLoopBase::Run (this=0x2e92820) at ./src/common/evtloopcmn.cpp:78\n#99 0x00007ffff63933f4 in wxAppConsoleBase::MainLoop (this=0x72e800) at ./src/common/appbase.cpp:334\n#100 0x00007ffff6393119 in wxAppConsoleBase::OnRun (this=0x72e800) at ./src/common/appbase.cpp:259\n#101 0x00007ffff6ce82ff in wxAppBase::OnRun (this=0x72e800) at ./src/common/appcmn.cpp:304\n#102 0x0000000000423b8b in APP_SINGLE_TOP::OnRun (this=0x72e800) at /home/cmp/git/kicad/common/single_top.cpp:159\n#103 0x00007ffff6408256 in wxEntry (argc=@0x7ffff677ab50: 2, argv=0x72bb60) at ./src/common/init.cpp:495\n#104 0x00007ffff640832c in wxEntry (argc=@0x7fffffffe248: 2, argv=0x7fffffffe338) at ./src/common/init.cpp:507\n#105 0x000000000041c8d6 in main (argc=2, argv=0x7fffffffe338) at /home/cmp/git/kicad/common/single_top.cpp:196"}}