Crash on opening board setup dialog

Bug #1819426 reported by Michael Kavanagh
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
KiCad
Fix Released
High
Seth Hillbrand

Bug Description

Application: kicad
Version: (5.1.0-4-g5059b932c), debug build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.54.0 LibreSSL/2.6.4 zlib/1.2.11 nghttp2/1.24.1
Platform: Mac OS X (Darwin 18.2.0 x86_64), 64 bit, Little endian, wxMac
Build Info:
    wxWidgets: 3.0.4 (UTF-8,STL containers,compatible with 2.8)
    Boost: 1.68.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.54.0
    Compiler: Clang 9.0.0 with C++ ABI 1002

Build settings:
    USE_WX_GRAPHICS_CONTEXT=ON
    USE_WX_OVERLAY=ON
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=OFF
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Revision history for this message
Michael Kavanagh (michaelkavanagh) wrote :
Revision history for this message
Jeff Young (jeyjey) wrote :

@Seth, in 76600e343616ba016eefef5ab859bd7301effdf1 you changed the calculation of the m_originalColWidths and added a call to set the width. The SetColSize() call ends up sending a size event to the window, which then calls SETUP_NETCLASSES::OnSizeNetclassGrid(wxSizeEvent&) before we've initialized the rest of m_originalColWidths.

Is the SetColSize() call needed? We could put a re-entrancy check in, but the size event at the end of the constructor /should/ result in an OnSizeNetclassGrid() call to set all the column sizes.

Changed in kicad:
status: New → Triaged
importance: Undecided → High
milestone: none → 5.1.1
Revision history for this message
Seth Hillbrand (sethh) wrote :

@Jeff- The column sizes are not correctly set under Linux, hence the extra effort there. We could add a Freeze() to the window before initializing the panels.

Also, this is an assert, not a crash. If Michael says continue instead of stop, what happens? Note, I cannot trigger this crash under Mac. Does it happen every time?

Application: kicad
Version: (5.1.0-4-ga47a8ca9b), debug build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.54.0 LibreSSL/2.6.4 zlib/1.2.11 nghttp2/1.24.1
Platform: Mac OS X (Darwin 18.2.0 x86_64), 64 bit, Little endian, wxMac
Build Info:
    wxWidgets: 3.0.4 (UTF-8,STL containers,compatible with 2.8)
    Boost: 1.68.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.54.0
    Compiler: Clang 9.0.0 with C++ ABI 1002

Build settings:
    USE_WX_GRAPHICS_CONTEXT=ON
    USE_WX_OVERLAY=ON
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=OFF
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Revision history for this message
Jeff Young (jeyjey) wrote : Re: [Bug 1819426] Re: Crash on opening board setup dialog

I’ve had it happen once or twice, but I wasn’t paying attention to the steps. Clicking continue seems to be fine, but I’d rather not rely on it. The freeze/thaw seems like a reasonable idea.

Revision history for this message
Michael Kavanagh (michaelkavanagh) wrote :

It doesn't always happen first go, but closing the dialog and opening it again gets it (max three attempts needed for me).

The assert dialog keeps popping up every time you press continue (aka No button) and you can only progress if you suppress further warnings (Cancel button).

Revision history for this message
KiCad Janitor (kicad-janitor) wrote :

Fixed in revision a300ae105d3e2c17672d3482aa4f768eec97b79a
https://git.launchpad.net/kicad/patch/?id=a300ae105d3e2c17672d3482aa4f768eec97b79a

Changed in kicad:
status: Triaged → Fix Committed
assignee: nobody → Seth Hillbrand (sethh)
Changed in kicad:
status: Fix Committed → Fix Released
Changed in kicad:
status: Fix Released → Fix Committed
Changed in kicad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.