Created attachment 669344 [details] emerge --info Hi, I got segmentation fault while adding elements to schematic. Reproduction: 1. Open any schematic, 2. Click on "place symbol" and click anywhere on schematic, 3. Type: 13700 and select LM13700 4. Place it anywhere, 5. Click on schematic to select another element, 6. Press any key, 7. Segmentation fault. When running kicad with gdb i get: >Thread 1 "kicad" received signal SIGSEGV, Segmentation fault. >0x00007ffff7e8ce3e in wxDataViewCtrlInternal::BuildBranch (this=0x555566be5eb0, node=0x0) > at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/gtk/dataview.cpp:3523 >3523 if (node->GetChildCount() == 0) Flags: >[ebuild R ] x11-libs/wxGTK-3.0.4-r302:3.0-gtk3::gentoo USE="X gstreamer libnotify opengl sdl tiff (-aqua) -debug -doc -webkit" ABI_X86="(64) -32 (-x32)" 0 KiB >[ebuild R ] sci-electronics/kicad-5.1.7::gentoo USE="github ngspice oce openmp python -doc -examples -occ" PYTHON_SINGLE_TARGET="python3_7 -python3_6 -python3_8 -python3_9" 0 KiB Backtrack: >#0 0x00007ffff7e8ce3e in wxDataViewCtrlInternal::BuildBranch(wxGtkTreeModelNode*) (this=0x555566be5eb0, node=0x0) > at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/gtk/dataview.cpp:3523 >#1 0x00007ffff7e8fca7 in wxDataViewCtrlInternal::iter_nth_child(_GtkTreeIter*, _GtkTreeIter*, int) (this=0x555566be5eb0, iter=0x7fffffffa320, parent=<optimized out>, n=<optimized out>) > at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/gtk/dataview.cpp:4127 >#2 0x00007ffff688dadb in () at /usr/lib64/libgtk-3.so.0 >#3 0x00007ffff688de04 in gtk_tree_row_reference_free () at /usr/lib64/libgtk-3.so.0 >#4 0x00007ffff68aaa5f in () at /usr/lib64/libgtk-3.so.0 >#5 0x00007ffff689a850 in () at /usr/lib64/libgtk-3.so.0 >#6 0x00007ffff689a8bb in gtk_tree_selection_unselect_all () at /usr/lib64/libgtk-3.so.0 >#7 0x00007ffff7e9130d in wxDataViewCtrl::UnselectAll() (this=0x55555bd97720) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/gtk/dataview.cpp:5087 >#8 0x00007fffe39bea21 in LIB_TREE_MODEL_ADAPTER::UpdateSearchString(wxString const&) (this=0x55555affcf00, aSearch=...) > at /usr/src/debug/sci-electronics/kicad-5.1.7/kicad-5.1.7/common/lib_tree_model_adapter.cpp:163 >#9 0x00007fffe3930fb4 in LIB_TREE::Regenerate(bool) (this=0x55555b5e0310, aKeepState=<optimized out>) at /usr/include/wx-3.0-gtk3/wx/object.h:300 >#10 0x00007fffe39311eb in LIB_TREE::onQueryText(wxCommandEvent&) (this=<optimized out>, aEvent=...) at /usr/src/debug/sci-electronics/kicad-5.1.7/kicad-5.1.7/common/widgets/lib_tree.cpp:308 >#11 0x00007ffff74e9f4e in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) > (entry=<optimized out>, entry=<optimized out>, event=..., handler=<optimized out>) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/event.cpp:1390 >#12 wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) (entry=<optimized out>, handler=<optimized out>, event=...) > at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/event.cpp:1365 >#13 0x00007ffff74ea2ca in wxEvtHandler::SearchDynamicEventTable(wxEvent&) (this=this@entry=0x55555bd925d0, event=...) > at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/event.cpp:1749 >#14 0x00007ffff74ea360 in wxEvtHandler::TryHereOnly(wxEvent&) (this=0x55555bd925d0, event=...) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/event.cpp:1583 >#15 0x00007ffff74ea41b in wxEvtHandler::TryBeforeAndHere(wxEvent&) (event=..., this=0x55555bd925d0) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/include/wx/event.h:3690 >#16 wxEvtHandler::TryBeforeAndHere(wxEvent&) (event=..., this=0x55555bd925d0) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/include/wx/event.h:3690 >#17 wxEvtHandler::ProcessEventLocally(wxEvent&) (this=0x55555bd925d0, event=...) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/event.cpp:1520 >#18 0x00007ffff74ea4f1 in wxEvtHandler::ProcessEvent(wxEvent&) (this=0x55555bd925d0, event=...) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/event.cpp:1493 >#19 0x00007ffff74ea247 in wxEvtHandler::SafelyProcessEvent(wxEvent&) (this=<optimized out>, event=...) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/event.cpp:1611 >#20 0x00007ffff7a4776c in wxWindowBase::HandleWindowEvent(wxEvent&) const (this=this@entry=0x55555bd925d0, event=...) > at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/wincmn.cpp:1525 >#21 0x00007ffff7a35d42 in wxTextEntryBase::SendTextUpdatedEvent(wxWindow*) (win=0x55555bd925d0) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/textentrycmn.cpp:388 >#22 0x00007ffff641f174 in g_closure_invoke () at /usr/lib64/libgobject-2.0.so.0 >#23 0x00007ffff6431275 in () at /usr/lib64/libgobject-2.0.so.0 >#24 0x00007ffff6437817 in g_signal_emit_valist () at /usr/lib64/libgobject-2.0.so.0 >#25 0x00007ffff6437fc7 in g_signal_emit_by_name () at /usr/lib64/libgobject-2.0.so.0 >#26 0x00007ffff66daa71 in () at /usr/lib64/libgtk-3.so.0 >#27 0x00007ffff66e023b in () at /usr/lib64/libgtk-3.so.0 >#28 0x00007ffff641f174 in g_closure_invoke () at /usr/lib64/libgobject-2.0.so.0 >#29 0x00007ffff6430c90 in () at /usr/lib64/libgobject-2.0.so.0 >#30 0x00007ffff6437817 in g_signal_emit_valist () at /usr/lib64/libgobject-2.0.so.0 >#31 0x00007ffff6437fc7 in g_signal_emit_by_name () at /usr/lib64/libgobject-2.0.so.0 >#32 0x00007ffff66dab05 in () at /usr/lib64/libgtk-3.so.0 >#33 0x00007ffff66e2805 in () at /usr/lib64/libgtk-3.so.0 >#34 0x00007ffff6421ffa in g_cclosure_marshal_VOID__STRINGv () at /usr/lib64/libgobject-2.0.so.0 >#35 0x00007ffff641f3ec in () at /usr/lib64/libgobject-2.0.so.0 >#36 0x00007ffff6437b89 in g_signal_emit_valist () at /usr/lib64/libgobject-2.0.so.0 >#37 0x00007ffff6437fc7 in g_signal_emit_by_name () at /usr/lib64/libgobject-2.0.so.0 >#38 0x00007ffff6421ffa in g_cclosure_marshal_VOID__STRINGv () at /usr/lib64/libgobject-2.0.so.0 >#39 0x00007ffff641f3ec in () at /usr/lib64/libgobject-2.0.so.0 >#40 0x00007ffff6437b89 in g_signal_emit_valist () at /usr/lib64/libgobject-2.0.so.0 >#41 0x00007ffff6437fc7 in g_signal_emit_by_name () at /usr/lib64/libgobject-2.0.so.0 >#42 0x00007ffff67526f8 in () at /usr/lib64/libgtk-3.so.0 >#43 0x00007ffff675367a in () at /usr/lib64/libgtk-3.so.0 >#44 0x00007ffff78985f8 in gtk_window_key_press_callback(GtkWidget*, GdkEventKey*, wxWindow*) (gdk_event=0x555555f10e60, win=0x55555bd925d0) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/gtk/window.cpp:1022 >#45 0x00007ffff691f48b in () at /usr/lib64/libgtk-3.so.0 >#46 0x00007ffff641f174 in g_closure_invoke () at /usr/lib64/libgobject-2.0.so.0 >#47 0x00007ffff6431275 in () at /usr/lib64/libgobject-2.0.so.0 >#48 0x00007ffff6437366 in g_signal_emit_valist () at /usr/lib64/libgobject-2.0.so.0 >#49 0x00007ffff6437d87 in g_signal_emit () at /usr/lib64/libgobject-2.0.so.0 >#50 0x00007ffff68c829c in () at /usr/lib64/libgtk-3.so.0 >#51 0x00007ffff68ea08b in gtk_window_propagate_key_event () at /usr/lib64/libgtk-3.so.0 >#52 0x00007ffff7886b09 in wxgtk_tlw_key_press_event(GtkWidget*, GdkEventKey*) (widget=0x55555699b220, event=0x555555f10e60) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/gtk/toplevel.cpp:229 >#53 0x00007ffff691f48b in () at /usr/lib64/libgtk-3.so.0 >#54 0x00007ffff641f174 in g_closure_invoke () at /usr/lib64/libgobject-2.0.so.0 >#55 0x00007ffff6431275 in () at /usr/lib64/libgobject-2.0.so.0 >#56 0x00007ffff6437366 in g_signal_emit_valist () at /usr/lib64/libgobject-2.0.so.0 >#57 0x00007ffff6437d87 in g_signal_emit () at /usr/lib64/libgobject-2.0.so.0 >#58 0x00007ffff68c829c in () at /usr/lib64/libgtk-3.so.0 >#59 0x00007ffff67749e1 in () at /usr/lib64/libgtk-3.so.0 >#60 0x00007ffff67765c3 in gtk_main_do_event () at /usr/lib64/libgtk-3.so.0 >#61 0x00007ffff6491f85 in () at /usr/lib64/libgdk-3.so.0 >#62 0x00007ffff64c6c42 in () at /usr/lib64/libgdk-3.so.0 >#63 0x00007ffff617d9bb in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0 >#64 0x00007ffff617dc78 in () at /usr/lib64/libglib-2.0.so.0 >#65 0x00007ffff617df73 in g_main_loop_run () at /usr/lib64/libglib-2.0.so.0 >#66 0x00007ffff677559d in gtk_main () at /usr/lib64/libgtk-3.so.0 >#67 0x00007ffff7874445 in wxGUIEventLoop::DoRun() (this=0x7fffffffca10) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/gtk/evtloop.cpp:65 >#68 0x00007ffff73ca21d in wxEventLoopBase::Run() (this=this@entry=0x7fffffffca10) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/evtloopcmn.cpp:78 >#69 0x00007fffe39718b7 in DIALOG_SHIM::ShowQuasiModal() (this=0x7fffffffcd30) at /usr/src/debug/sci-electronics/kicad-5.1.7/kicad-5.1.7/common/dialog_shim.cpp:389 >#70 0x00007fffe377e74c in SCH_BASE_FRAME::SelectComponentFromLibTree(SCHLIB_FILTER const*, std::vector<SCH_BASE_FRAME::COMPONENT_SELECTION, std::allocator<SCH_BASE_FRAME::COMPONENT_SELECTION> >&, bool, int, int, bool, LIB_ID const*, bool) (this=0x5555562862f0, aFilter=0x0, aHistoryList=std::vector of length 1, capacity 1 = {...}, aAllowBrowser=<optimized out>, aUnit=<optimized out>, aConvert=1, aShowFootprints=false, aHighlight=0x0, aAllowFields=true) at /usr/src/debug/sci-electronics/kicad-5.1.7/kicad-5.1.7/eeschema/getpart.cpp:174 >#71 0x00007fffe377f7dc in SCH_EDIT_FRAME::Load_Component(SCHLIB_FILTER const*, std::vector<SCH_BASE_FRAME::COMPONENT_SELECTION, std::allocator<SCH_BASE_FRAME::COMPONENT_SELECTION> >&, bool) (this=this@entry=0x5555562862f0, aFilter=aFilter@entry=0x0, aHistoryList=std::vector of length 1, capacity 1 = {...}, aAllowBrowser=aAllowBrowser@entry=true) at /usr/src/debug/sci-electronics/kicad-5.1.7/kicad-5.1.7/eeschema/getpart.cpp:223 >#72 0x00007fffe37b4066 in SCH_EDIT_FRAME::OnLeftClick(wxDC*, wxPoint const&) (this=0x5555562862f0, aDC=0x0, aPosition=...) at /usr/src/debug/sci-electronics/kicad-5.1.7/kicad-5.1.7/eeschema/onleftclick.cpp:300 >#73 0x00007fffe37ccb7f in SCH_DRAW_PANEL::OnMouseEvent(wxMouseEvent&) (this=0x5555562c4250, event=...) at /usr/src/debug/sci-electronics/kicad-5.1.7/kicad-5.1.7/eeschema/sch_draw_panel.cpp:383 >#74 0x00007ffff74e9f4e in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) (entry=<optimized out>, entry=<optimized out>, event=..., handler=<optimized out>) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/event.cpp:1390 >#75 wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) (entry=<optimized out>, handler=<optimized out>, event=...) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/event.cpp:1365 >#76 0x00007ffff74ea2ca in wxEvtHandler::SearchDynamicEventTable(wxEvent&) (this=this@entry=0x5555562c42c8, event=...) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/event.cpp:1749 >#77 0x00007ffff74ea360 in wxEvtHandler::TryHereOnly(wxEvent&) (this=0x5555562c42c8, event=...) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/event.cpp:1583 >#78 0x00007ffff74ea41b in wxEvtHandler::TryBeforeAndHere(wxEvent&) (event=..., this=0x5555562c42c8) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/include/wx/event.h:3690 >#79 wxEvtHandler::TryBeforeAndHere(wxEvent&) (event=..., this=0x5555562c42c8) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/include/wx/event.h:3690 >#80 wxEvtHandler::ProcessEventLocally(wxEvent&) (this=0x5555562c42c8, event=...) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/event.cpp:1520 >#81 0x00007ffff74ea4f1 in wxEvtHandler::ProcessEvent(wxEvent&) (this=0x5555562c42c8, event=...) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/event.cpp:1493 >#82 0x00007ffff74eafb4 in wxEvtHandler::ProcessPendingEvents() (this=0x5555562c42c8) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/event.cpp:54 >#83 0x00007ffff7391aaf in wxAppConsoleBase::ProcessPendingEvents() (this=0x5555557aaa00) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/include/wx/dynarray.h:837 >#84 wxAppConsoleBase::ProcessPendingEvents() (this=0x5555557aaa00) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/appbase.cpp:499 >#85 0x00007ffff7859be9 in wxApp::DoIdle() (this=0x5555557aaa00) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/gtk/app.cpp:157 >#86 0x00007ffff7859d03 in wxapp_idle_callback(gpointer) () at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/gtk/app.cpp:107 >#87 0x00007ffff617d8c8 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0 >#88 0x00007ffff617dc78 in () at /usr/lib64/libglib-2.0.so.0 >#89 0x00007ffff617df73 in g_main_loop_run () at /usr/lib64/libglib-2.0.so.0 >#90 0x00007ffff677559d in gtk_main () at /usr/lib64/libgtk-3.so.0 >#91 0x00007ffff7874445 in wxGUIEventLoop::DoRun() (this=0x5555557ccbd0) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/gtk/evtloop.cpp:65 >#92 0x00007ffff73ca21d in wxEventLoopBase::Run() (this=0x5555557ccbd0) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/evtloopcmn.cpp:78 >#93 0x00007ffff7392425 in wxAppConsoleBase::MainLoop() (this=0x5555557aaa00) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/appbase.cpp:334 >#94 0x00005555555ec839 in APP_KICAD::OnRun() (this=<optimized out>) at /usr/src/debug/sci-electronics/kicad-5.1.7/kicad-5.1.7/kicad/kicad.cpp:271 >#95 0x00007ffff740d498 in wxEntry(int&, wchar_t**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/x11-libs/wxGTK-3.0.4-r302/wxWidgets-3.0.4/src/common/init.cpp:506 >#96 0x00005555555d71f8 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/sci-electronics/kicad-5.1.7/kicad-5.1.7/kicad/kicad.cpp:302
Upstream is aware of the issue, see: https://gitlab.com/kicad/code/kicad/-/issues/6102 I've tried applying the https://gitlab.com/kicad/code/kicad/-/commit/222d44a8d8ab4c8ef7edc47b7189ea1d0309c419 commit, but it does not resolve the issue. So for now it seems 5.1.7 is broken. However good news is that I have KiCad 5.1.8 submitted in https://github.com/gentoo/gentoo/pull/18212 and it does not seem to exhibit the issue.
Newer version of KiCad is in the tree, which includes upstream's fix.