Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 751958

Summary: sci-electronics/kicad-5.1.7:segfault at 28 ip 00007f3bcf345e3e sp 00007ffd7e73f9d0 error 4 in libwx_gtk3u_adv-3.0-gtk3.so.0.4.0[7f3bcf288000+d0000]
Product: Gentoo Linux Reporter: lekto
Component: Current packagesAssignee: Zoltan Puskas <zoltan>
Status: RESOLVED FIXED    
Severity: normal CC: jstein, proxy-maint
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: emerge --info

Description lekto 2020-10-30 20:18:31 UTC
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
Comment 1 Zoltan Puskas 2020-11-10 14:04:57 UTC
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.
Comment 2 Zoltan Puskas 2021-02-13 02:13:39 UTC
Newer version of KiCad is in the tree, which includes upstream's fix.