OpenGL Crash - ESC when moving Line

Bug #1606332 reported by Justin Partain on 2016-07-25
26
This bug affects 3 people
Affects Status Importance Assigned to Milestone
KiCad
High
Maciej Suminski

Bug Description

KiCad crashes when moving a drawn line (silkscreen, board edge, fab, etc.) and pressing the ESC key. Seems to only happen in OpenGL mode, but within Footprint Editor as well as PCBNew.

This version of KiCad was downloaded from ppa:js-reynaud/ppa-kicad.

-----------

Application: kicad
Version: 4.1.0-alpha+201607250105+6992~46~ubuntu16.04.1-product, release build
Libraries: wxWidgets 3.0.2
           libcurl/7.47.0 OpenSSL/1.0.2g zlib/1.2.8 libidn/1.32 librtmp/2.3
Platform: Linux 4.4.0-31-generic x86_64, 64 bit, Little endian, wxGTK
- Build Info -
wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.58.0
Curl: 7.47.0
KiCad - Compiler: GCC 5.4.0 with C++ ABI 1009
        Settings: USE_WX_GRAPHICS_CONTEXT=OFF
                  USE_WX_OVERLAY=OFF
                  KICAD_SCRIPTING=ON
                  KICAD_SCRIPTING_MODULES=ON
                  KICAD_SCRIPTING_WXPYTHON=ON
                  USE_FP_LIB_TABLE=HARD_CODED_ON
                  BUILD_GITHUB_PLUGIN=ON

Related branches

PCB Wiz (1-pcb-wiz) wrote :

Move-Segment via M works fine here, on OpenGL, as does drag-edge of Fill polyline.
ESC simply releases the operation, as expected.
Win64 build, June 19th.

I've just tested and seen the same crash on Windows.

--------

Application: kicad
Version: (2016-07-24 BZR 6992, Git 9c5e872)-product, release build
Libraries: wxWidgets 3.0.2
           libcurl/7.46.0 OpenSSL/1.0.2d zlib/1.2.8 libidn/1.32 libssh2/1.6.0 librtmp/2.3
Platform: Windows 7 (build 7601, Service Pack 1), 64-bit edition, 64 bit, Little endian, wxMSW
- Build Info -
wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.57.0
Curl: 7.46.0
KiCad - Compiler: GCC 5.2.0 with C++ ABI 1009
        Settings: USE_WX_GRAPHICS_CONTEXT=OFF
                  USE_WX_OVERLAY=OFF
                  KICAD_SCRIPTING=ON
                  KICAD_SCRIPTING_MODULES=ON
                  KICAD_SCRIPTING_WXPYTHON=ON
                  USE_FP_LIB_TABLE=HARD_CODED_ON
                  BUILD_GITHUB_PLUGIN=ON

Chris Pavlina (pavlina-chris) wrote :

I can confirm here. For anyone who can't repro this, make sure you hit escape _while moving the line_.

Changed in kicad:
status: New → Confirmed
importance: Critical → High
tags: added: cern gal
removed: footprint-editor
Chris Pavlina (pavlina-chris) wrote :
Download full text (5.9 KiB)

Trace:

(gdb) bt full
#0 0x00007fffe641e84c in TOOL_MANAGER::dispatchInternal (this=0x3aa3860, aEvent=...) at /home/cmp/git/kicad/common/tool/tool_manager.cpp:499
        curIt = 56224096
        st = 0x0
        it = 0
#1 0x00007fffe641dbdc in TOOL_MANAGER::ProcessEvent (this=0x3aa3860, aEvent=...) at /home/cmp/git/kicad/common/tool/tool_manager.cpp:678
No locals.
#2 0x00007fffe587492e in PCB_EDIT_FRAME::RestoreCopyFromUndoList (this=0x1fb9000, aEvent=...) at /home/cmp/git/kicad/pcbnew/board_undo_redo.cpp:691
        event = {m_category = TC_MESSAGE, m_actions = TA_UNDO_REDO, m_scope = AS_GLOBAL, m_mouseDelta = {<VECTOR2_TRAITS<double>> = {<No data fields>}, x = 0, y = 0}, m_mousePos = {<VECTOR2_TRAITS<double>> = {<No data fields>}, x = 0,
            y = 0}, m_mouseDragOrigin = {<VECTOR2_TRAITS<double>> = {<No data fields>}, x = 0, y = 0}, m_mouseButtons = 0, m_keyCode = 0, m_modifiers = 0, m_param = 0x0,
          m_commandId = {<boost::optional_detail::optional_base<int>> = {<boost::optional_detail::optional_tag> = {<No data fields>}, m_initialized = false, m_storage = {dummy_ = {data = "\000\000\000",
                  aligner_ = {<No data fields>}}}}, <No data fields>}, m_commandStr = {<boost::optional_detail::optional_base<std::__cxx11::basic_string<char> >> = {<boost::optional_detail::optional_tag> = {<No data fields>},
              m_initialized = false, m_storage = {dummy_ = {data = "X\270\243\003\000\000\000\000\240T{\002\000\000\000\000\060O{\002\000\000\000\000\\\030\270\345\377\177\000", aligner_ = {<No data fields>}}}}, <No data fields>}}
        List = 0x27b4f10
#3 0x00007fffe5bb22eb in EDIT_TOOL::Main (this=0x3ad7f60, aEvent=...) at /home/cmp/git/kicad/pcbnew/tools/edit_tool.cpp:327
        dummy = <incomplete type>
        controls = 0x379a440
        editFrame = 0x1fb9000
        originalCursorPos = {<VECTOR2_TRAITS<int>> = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = -9223372036854775808}, x = -32367, y = 32818163}
        selection = @0x3ab8448: {items = {m_Status = UR_UNSPECIFIED, m_TransformPoint = {x = 0, y = 0}, m_ItemsList = std::vector of length 0, capacity 1}, group = 0x3ab8c00}
        unselect = false
        restore = true
        lockOverride = false
        totalMovement = {x = -500000, y = -1077282704}
        grid = {m_anchors = std::vector of length 0, capacity 16, m_frame = 0x1fb9000, m_auxAxis = {<boost::optional_detail::optional_base<VECTOR2<int> >> = {<boost::optional_detail::optional_tag> = {<No data fields>},
              m_initialized = true, m_storage = {dummy_ = {data = "\000\000\000\000@KL", aligner_ = {<No data fields>}}}}, <No data fields>}, m_diagonalAuxAxesEnable = true}
        evt = {<boost::optional_detail::optional_base<TOOL_EVENT>> = {<boost::optional_detail::optional_tag> = {<No data fields>}, m_initialized = true, m_storage = {dummy_ = {
                data = "\004\000\000\000\000 \000\000\003\000\000\000\377\177", '\000' <repeats 62 times>, "\001", '\000' <repeats 27 times>, "pR\221\003\000\000\000\000\026\000\000\000\000\000\000\000\026\000\000\000\000\000\000\000\300\220;\003\000\000\000", aligner_ = {<No data fields>}}}}, <No data fields>}
        ratsne...

Read more...

PCB Wiz (1-pcb-wiz) wrote :

"For anyone who can't repro this, make sure you hit escape _while moving the line_."
I've checked again, and my Win64 June 19 build is fine, shifting the mouse and hitting ESC is ok.
The other builds reporting are newer, this could be a recent artifact ?

Recently installed another nightly, this is seemingly fixed in this version:

Application: kicad_nightly
Version: (2016-08-01 BZR 7000, Git e6129ca)-product, release build
Libraries: wxWidgets 3.0.2
           libcurl/7.46.0 OpenSSL/1.0.2d zlib/1.2.8 libidn/1.32 libssh2/1.6.0 librtmp/2.3
Platform: Windows 7 (build 7601, Service Pack 1), 64-bit edition, 64 bit, Little endian, wxMSW
- Build Info -
wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.57.0
Curl: 7.46.0
KiCad - Compiler: GCC 5.2.0 with C++ ABI 1009
        Settings: USE_WX_GRAPHICS_CONTEXT=OFF
                  USE_WX_OVERLAY=OFF
                  KICAD_SCRIPTING=ON
                  KICAD_SCRIPTING_MODULES=ON
                  KICAD_SCRIPTING_WXPYTHON=ON
                  USE_FP_LIB_TABLE=HARD_CODED_ON
                  BUILD_GITHUB_PLUGIN=ON

Maciej Suminski (orsonmmz) wrote :

It is likely to be fixed by commits 7001 & 7002, but anyway I am glad it works now.

Changed in kicad:
status: Confirmed → Fix Committed
Wayne Stambaugh (stambaughw) wrote :

I think we were a bit premature on calling this fixed. I am still seeing this issue 100% of the time on both 32 (release) and 64 (debug) bit builds on msys2 running on 64 bit windows 7 pro. All you have to do is keep moving the mouse after hitting the escape key to drop the moving line and it will segfault.

Maciej Suminski (orsonmmz) wrote :

Changed to 'Confirmed' due to Wayne's comment.

Changed in kicad:
status: Fix Committed → Confirmed
Cezary Zieliński (olek13) wrote :

The same Pcbnew crash is observed when moving dimension of fill zone (BZR 7005 or earlier, Windows 10, OpenGL mode).

Cezary Zieliński (olek13) wrote :

Errata
Should be: ..."when moving dimension OR fill zone"...

Changed in kicad:
assignee: nobody → Maciej Sumiński (orsonmmz)
Changed in kicad:
status: Confirmed → Fix Committed

This bug now exists in 4.0.3, at least in the footprint editor.

Changed in kicad:
status: Fix Committed → Confirmed
Maciej Suminski (orsonmmz) wrote :

It is already fixed in both stable & product branches. There is 4.0.4 in preparation, but we have no way to fix it in 4.0.3. It is marked as 'Fix Committed' to tell everyone that we do not have to work on the problem anymore.

Changed in kicad:
status: Confirmed → Fix Committed
Changed in kicad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers